> For the complete documentation index, see [llms.txt](https://portal-integracao.intelbras.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://portal-integracao.intelbras.com.br/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/atualizacoes.md).

# Atualizações

APIs de atualização de firmware para integração: upload multipart, update por URL ou nuvem (CloudUpgrader), estado/progresso e cancelamento; parâmetros de busca/exportação de logs.

## Dicas & Boas Práticas <a href="#dicas-and-boas-praticas" id="dicas-and-boas-praticas"></a>

* Sempre que suportado pelo dispositivo, utilize **HTTPS** em conjunto com **HTTP Digest Authentication** para garantir confidencialidade e integridade dos dados trafegados.
* Para APIs que utilizam **streaming**, conexões persistentes ou respostas multipart, utilize clientes compatíveis com comunicação contínua.
* Implemente tratamento de exceções, controle de timeout e mecanismos de reconexão automática para evitar falhas em ambientes de rede instáveis.
* Monitore o consumo de CPU, memória e conexões simultâneas durante operações prolongadas como leitura de logs ou atualização de firmware.
* Evite executar atualizações de firmware em horários críticos de operação.
* Após qualquer atualização, valide a versão instalada e o estado geral do sistema antes de liberar o dispositivo em produção.

***

### Tabela de Parâmetros

| Name                 | Type      | Description                                                                                     | Example                |
| -------------------- | --------- | ----------------------------------------------------------------------------------------------- | ---------------------- |
| condition            | object    | Condição de consulta de logs                                                                    | —                      |
| StartTime            | char\[20] | Hora inicial do log (local), formato `yyyy-mm-dd hh:mm:ss`                                      | `2010-04-01 00:00:00`  |
| EndTime              | char\[20] | Hora final do log (local), formato `yyyy-mm-dd hh:mm:ss`                                        | `2010-04-08 00:00:00`  |
| StartTimeRealUTC     | char\[32] | Hora inicial do log em UTC (`yyyy-mm-ddThh:mm:ssZ`). Prioritário se coexistir com horário local | `2010-05-25T04:05:00Z` |
| EndTimeRealUTC       | char\[32] | Hora final do log em UTC (`yyyy-mm-ddThh:mm:ssZ`). Prioritário se coexistir com horário local   | `2010-05-25T04:10:00Z` |
| Type                 | char\[]   | Tipo de log (`System`, `Config`, `Event`, `Storage`, `Account`, `Data`, `File`, `CourseRecord`) | `System`               |
| Password             | char\[]   | Senha usada para exportação de logs criptografados (ZIP)                                        | `12345`                |
| token                | uint      | Token da consulta. Valor > 0 indica que logs foram encontrados                                  | `46878`                |
| count                | uint      | Quantidade total de logs correspondentes à condição de busca                                    | `100`                  |
| found                | uint      | Quantidade de logs efetivamente encontrados                                                     | `2`                    |
| items                | object\[] | Lista de registros de log retornados                                                            | —                      |
| RecNo                | uint      | Número sequencial do log                                                                        | `789`                  |
| Time                 | char\[32] | Hora do log em tempo local                                                                      | `2011-05-20 11:59:21`  |
| TimeRealUTC          | char\[32] | Hora do log em UTC (`yyyy-mm-ddThh:mm:ssZ`)                                                     | `2011-05-20T03:59:21Z` |
| User                 | char\[]   | Usuário associado ao evento de log                                                              | `System`               |
| Detail               | object    | Detalhes adicionais do log                                                                      | —                      |
| Compression          | char\[]   | Tipo de compressão envolvida no log                                                             | `H.264->MJPG`          |
| Data                 | char\[]   | Informação adicional registrada no log                                                          | `Encode`               |
| DebugInfoRedir       | object    | Configuração de redirecionamento de logs da porta serial                                        | —                      |
| SerialPortLogLevel   | uint8     | Nível de log redirecionado (0–7). Padrão: 4                                                     | `4`                    |
| SerialPortLogType    | uint8     | Tipo de log redirecionado (0: chip principal; 1: principal + subchip)                           | `0`                    |
| SDlogStore           | object    | Configuração de armazenamento de logs da porta serial no cartão SD                              | —                      |
| EnableSDlogOverWrite | bool      | Habilita sobrescrita automática de logs no SD (padrão: true)                                    | `true`                 |

***

### Seção de Segurança Avançada&#x20;

#### Controle de Acesso

* Definir níveis de permissão para atualização (ex: apenas admin).
* Bloquear múltiplas atualizações simultâneas.
* Registrar IP e usuário que iniciou o upgrade.

#### Validação de Integridade

* Validar **assinatura digital do firmware** (se suportado).
* Comparar checksum antes e após upload.
* Bloquear downgrade para versões vulneráveis.

***

### Fluxo Completo de Atualização (Passo a Passo)

#### Fluxo recomendado (Manual)

1. Verificar versão atual
2. Validar compatibilidade do firmware
3. Upload do firmware
4. Monitorar estado (`getState`)
5. Confirmar `Success`
6. Reiniciar dispositivo
7. Validar versão instalada

***

### Upload de Firmware

**Tópicos:** Permite atualizar o firmware enviando manualmente um arquivo binário para o dispositivo via requisição multipart.

* **Métodos: `POST`**` ``/cgi-bin/upgrader.cgi?action=uploadFirmware`

**Exemplo:**

```http
POST /cgi-bin/upgrader.cgi?action=uploadFirmware HTTP/1.1
Host: 192.168.1.108
Content-Type: multipart/form-data; boundary=----------------8655433224198

----------------8655433224198
Content-Disposition: form-data; name="upgrade"; filename="firmware.bin"
Content-Type: application/octet-stream

(binary firmware data)
----------------8655433224198--
```

**Resposta:**

```
OK
```

### Obter Estado de Atualização

**Tópicos:** Consulta o estado atual do processo de atualização.

* **Métodos: `GET`**` ``/cgi-bin/upgrader.cgi?action=getState`

**Exemplo:**

```http
http://<ip>/cgi-bin/upgrader.cgi?action=getState
```

**Resposta:**

```powershell
state.State=Upgrading 
state.Progress=45 
```

**Estados possíveis**

* Idle
* Upgrading
* Success
* Failed

### Definir URL do Atualizador

**Tópicos:** Inicia atualização a partir de um firmware hospedado externamente.

* **Métodos: `GET`**` ``/cgi-bin/upgrader.cgi?action=updateFirmwareByUrl`

**Exemplo:**

```powershell
/cgi-bin/upgrader.cgi?action=updateFirmwareByUrl
&url=https://server/firmware.bin
&checkType=0
&checkSum=f38ad920
```

**Resposta:**

```
OK
```

### Cancelar Atualização

**Tópicos:** Interrompe uma atualização em andamento.

* **Métodos: `GET`**` ``/cgi-bin/upgrader.cgi?action=cancel`

**Exemplo:**

```http
http://<ip>/cgi-bin/upgrader.cgi?action=cancel
```

**Resposta:**

```
OK
```

### Verificar a Versão de Atualização na Nuvem

**Tópicos:** Consulta o serviço de atualização online para verificar novas versões.

* **Métodos: `GET`**` ``/cgi-bin/api/CloudUpgrader/check`

**Exemplo:**

```http
{
  "way": 0,
  "proxy": {
    "IP": "<ip>",
    "Port": 8080
  }
}
```

**Resposta:**

```http
{ 
 "info" : { 
  "State" : "None", 
  "PackageType" : "all", 
  "OldVersion" : "0000", 
  "NewVersion" : "0004", 
  "Attention" : "What is new", 
  "PackageUrl" : "https://example.com/1.zip", 
  "PackageId" : "1d2ee7", 
  "CheckSum" : "F3D288AB" 
  "BuildTime" : "12-10-2018 01:01:02" 
 } 
} 
```

### Realizar Atualização Online

**Tópicos:** Realiza a atualização usando o pacote retornado pela verificação.

* **Métodos: `GET`**` ``/cgi-bin/api/CloudUpgrader/execute`

**Exemplo:**

```http
{
  "NewVersion": "2.42.00.001",
  "way": 0,
  "proxy": {
    "IP": "<ip>",
    "Port": 8080
  },
  "info": {
    "PackageUrl": "https://example.com/1.zip",
    "PackageId": "1d2ee7",
    "CheckSum": "F3D288AB"
  }
}
```

**Resposta:**

```
{} 
```

### Cancelar Atualização Online

**Tópicos:** Interrompe uma atualização iniciada via serviço de nuvem.

* **Métodos: `GET`**` ``/cgi-bin/api/CloudUpgrader/cancel`

**Resposta:**

```
{} 
```

***

Notas finais:

* Durante a atualização de firmware, o dispositivo pode ficar **temporariamente indisponível**.
* Não interrompa o fornecimento de energia enquanto o processo de atualização estiver em andamento.
* Após a conclusão da atualização, recomenda-se **reinicializar o dispositivo** e verificar a versão instalada.
* Logs de atualização devem ser monitorados para diagnóstico em caso de falha.

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://portal-integracao.intelbras.com.br/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/atualizacoes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
