# Agente TI Extrema

Aplicativo Android institucional em Kotlin (`br.gov.extrema.agenteti`) para inventário técnico periódico de tablets e smartphones. Min SDK 23, target/compile SDK 36.

## Arquitetura

- `device/`: coleta técnica usando somente APIs oficiais;
- `network/`: cliente HTTPS/JSON com token individual, timestamp e nonce;
- `security/`: token cifrado com AES-GCM e chave não exportável no Android Keystore;
- `repository/`: ativação, sincronização e diagnóstico;
- `worker/`: WorkManager periódico (15/30/60/120 minutos) e retry exponencial;
- `ui/`: ativação e painel local minimalista;
- `data/`: modelos locais.

O Manifest não solicita câmera, microfone, contatos, localização, armazenamento externo, telefonia nem `QUERY_ALL_PACKAGES`. O agente consulta somente pacotes declarados em `<queries>`. Para um aplicativo próprio adicional, inclua seu package também no Manifest antes de publicar uma nova versão.

## Build validado

No ambiente de entrega foram executados com sucesso:

```text
gradle testDebugUnitTest assembleDebug lintDebug
gradle lint assembleRelease
```

Artefatos gerados:

- debug assinado pela chave de desenvolvimento: `app/build/outputs/apk/debug/app-debug.apk`;
- release verificado, ainda sem assinatura institucional: `app/build/outputs/apk/release/app-release-unsigned.apk`.

## Abrir no Android Studio

1. Abra a pasta `agente_android`.
2. Confirme JDK 17 e Android SDK Platform 36 / Build Tools 36.0.0.
3. Aguarde o Gradle Sync.
4. Rode `app` em um aparelho Android 6.0 ou superior.

## Assinar a versão institucional

No Android Studio: **Build > Generate Signed App Bundle / APK > APK > Create new**.

- arquivo sugerido: `Prefeitura-Extrema-Agente-TI.jks`;
- alias sugerido: `agente-ti-extrema`;
- validade: 30 anos ou conforme política institucional;
- use senha longa, exclusiva e gerenciada pela Prefeitura;
- não coloque `.jks`, senha, `key.properties` ou variáveis de assinatura no Git, no site ou no APK de debug.

Guarde a keystore em cofre institucional com backup cifrado offline e acesso de, no mínimo, dois responsáveis autorizados. Todas as atualizações devem ser assinadas pela mesma chave. Após gerar o release, renomeie-o para `Agente-TI-Extrema.apk` e publique em `downloads/`.

Servidor padrão: `https://extrema.dev.br/manutencao_ti/api/tablets`.
