https://github.com/juninmd/detect-wifi
detect-wifi
https://github.com/juninmd/detect-wifi
Last synced: 4 months ago
JSON representation
detect-wifi
- Host: GitHub
- URL: https://github.com/juninmd/detect-wifi
- Owner: juninmd
- Created: 2026-01-11T19:06:09.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-02-09T04:40:43.000Z (4 months ago)
- Last Synced: 2026-02-09T10:53:14.314Z (4 months ago)
- Language: Kotlin
- Size: 539 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Presence Detector & Segurança Anti-Furto
[](https://github.com/juninmd/detect-wifi/actions/workflows/ci.yml)
[](https://codecov.io/gh/juninmd/detect-wifi)
Um aplicativo Android abrangente que combina detecção de presença residencial (WiFi/Bluetooth/Câmera) com medidas ativas de proteção anti-furto. Desenvolvido com Kotlin moderno e otimizado para Android 15.
## 🌟 Principais Recursos
### 🏠 Monitor de Presença Residencial
* **Radar WiFi:** Detecta presença analisando flutuações de sinal WiFi.
* **Scanner Bluetooth:** Detecção secundária (fallback) usando dispositivos BLE.
* **Monitoramento por Câmera:** Detecção visual de presença usando a câmera do dispositivo.
* **Alertas Remotos:** Envia notificações via Telegram quando presença é detectada.
### 🛡️ Segurança Móvel (Anti-Furto)
* **Alarme de Movimento:** Dispara se o dispositivo for movido.
* **Modo Bolso:** Alarma se o dispositivo for removido do bolso/bolsa enquanto armado.
* **Guarda de Carregador:** Alarma se o carregador for desconectado.
* **Selfie de Intruso:** Captura uma foto do intruso após tentativas erradas de desbloqueio (requer configuração específica).
* **Desarme Biométrico:** Requer Impressão Digital/FaceID para parar o alarme.
### 🔌 Integrações
* **Bot Telegram:** Receba fotos e alertas diretamente no Telegram.
## 📱 Requisitos
* **Android Mínimo:** Android 8.0 (Oreo) recomendado para melhor performance em segundo plano.
* **Android Alvo:** Android 15 (Vanilla Ice Cream).
* **Hardware:** WiFi, Bluetooth, Câmera, Acelerômetro, Sensor de Proximidade.
## 🚀 Instalação e Configuração
### 1. Pré-requisitos
* Android Studio Koala ou mais recente.
* JDK 21.
* Android SDK Platform 35.
### 2. Instruções de Build
**Nota:** Este projeto requer uma configuração válida do Android SDK.
1. **Configurar SDK:**
Crie um arquivo `local.properties` na raiz do projeto se ele não existir:
```properties
sdk.dir=/caminho/para/seu/android/sdk
```
*(No Windows: `C:\\Users\\\\AppData\\Local\\Android\\Sdk`)*
*(No Mac/Linux: `/Users//Library/Android/sdk` ou `/usr/lib/android-sdk`)*
2. **Compilar o APK:**
```bash
./gradlew assembleDebug
```
3. **Instalar:**
```bash
./gradlew installDebug
```
### 3. Configuração do App
**Permissões:**
Ao iniciar pela primeira vez, você deve conceder:
* **Localização:** "Permitir o tempo todo" é necessário para varredura WiFi/BLE em background.
* **Notificações:** Necessário para status persistente do serviço e alertas.
* **Câmera:** Para monitoramento e selfies de intruso.
* **Sobreposição:** (Opcional) Para certos recursos visuais do alarme.
**Integrações:**
* **Telegram:** Vá em Configurações -> Integrações -> Telegram. Insira seu Bot Token e Chat ID.
## 🛠️ Detalhes Técnicos
* **Linguagem:** Kotlin 1.9.22
* **Arquitetura:** Baseada em Serviços com Managers Singleton.
* **Processamento em Background:** Usa Foreground Services com tipos `location` e `specialUse` para cumprir as restrições do Android 14+.
* **Dependências:**
* `LibVLC` para processamento de vídeo.
* `AndroidX Biometric` para autenticação.
* `Coroutines` para tarefas assíncronas.
## 📦 Processo de Release
O projeto utiliza GitHub Actions para automatizar a geração de releases e garantir a qualidade do código com testes automatizados e verificações de segurança (Gitleaks, Trivy).
### Tipos de Release
1. **Release Automática (Staging/Nightly):**
* Gerada automaticamente a cada push na branch `main`.
* A versão segue o número da build do GitHub Actions (ex: `v1.1.42`).
* Inclui APKs de debug e release (não assinado por padrão).
2. **Release de Produção (Stable):**
* Gerada ao criar uma tag Git (ex: `v1.2.0`).
* Inclui APK assinado (se as chaves estiverem configuradas).
* Para criar:
```bash
git tag v1.2.0
git push origin v1.2.0
```
### Configuração de Assinatura (Opcional)
Para gerar APKs assinados automaticamente, configure os seguintes **Secrets** no repositório GitHub (Settings -> Secrets and variables -> Actions):
* `RELEASE_KEYSTORE_BASE64`: Conteúdo do arquivo keystore (.jks) codificado em Base64 (`base64 -w 0 seu-keystore.jks`).
* `KEYSTORE_PASSWORD`: Senha do keystore.
* `KEY_ALIAS`: Alias da chave.
* `KEY_PASSWORD`: Senha da chave.
Se esses segredos não estiverem configurados, a release conterá um APK não assinado (ou assinado com debug key, dependendo da configuração local).
## 🤝 Contribuição
Por favor, leia `CONTRIBUTING.md` para padrões de código e diretrizes de CI/CD antes de submeter um Pull Request.
## 📄 Licença
Este projeto está licenciado sob a MIT License.