{"id":42527685,"url":"https://github.com/juninmd/detect-wifi","last_synced_at":"2026-02-15T06:08:33.201Z","repository":{"id":331991057,"uuid":"1132333950","full_name":"juninmd/detect-wifi","owner":"juninmd","description":"detect-wifi","archived":false,"fork":false,"pushed_at":"2026-02-09T04:40:43.000Z","size":552,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-09T10:53:14.314Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juninmd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-11T19:06:09.000Z","updated_at":"2026-02-09T04:38:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/juninmd/detect-wifi","commit_stats":null,"previous_names":["juninmd/detect-wifi"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/juninmd/detect-wifi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fdetect-wifi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fdetect-wifi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fdetect-wifi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fdetect-wifi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juninmd","download_url":"https://codeload.github.com/juninmd/detect-wifi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fdetect-wifi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29471204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T05:26:30.465Z","status":"ssl_error","status_checked_at":"2026-02-15T05:26:21.858Z","response_time":118,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-28T16:08:38.292Z","updated_at":"2026-02-15T06:08:33.196Z","avatar_url":"https://github.com/juninmd.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Presence Detector \u0026 Segurança Anti-Furto\n\n[![CI/CD Pipeline](https://github.com/juninmd/detect-wifi/actions/workflows/ci.yml/badge.svg)](https://github.com/juninmd/detect-wifi/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/juninmd/detect-wifi/graph/badge.svg)](https://codecov.io/gh/juninmd/detect-wifi)\n\nUm 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.\n\n## 🌟 Principais Recursos\n\n### 🏠 Monitor de Presença Residencial\n*   **Radar WiFi:** Detecta presença analisando flutuações de sinal WiFi.\n*   **Scanner Bluetooth:** Detecção secundária (fallback) usando dispositivos BLE.\n*   **Monitoramento por Câmera:** Detecção visual de presença usando a câmera do dispositivo.\n*   **Alertas Remotos:** Envia notificações via Telegram quando presença é detectada.\n\n### 🛡️ Segurança Móvel (Anti-Furto)\n*   **Alarme de Movimento:** Dispara se o dispositivo for movido.\n*   **Modo Bolso:** Alarma se o dispositivo for removido do bolso/bolsa enquanto armado.\n*   **Guarda de Carregador:** Alarma se o carregador for desconectado.\n*   **Selfie de Intruso:** Captura uma foto do intruso após tentativas erradas de desbloqueio (requer configuração específica).\n*   **Desarme Biométrico:** Requer Impressão Digital/FaceID para parar o alarme.\n\n### 🔌 Integrações\n*   **Bot Telegram:** Receba fotos e alertas diretamente no Telegram.\n\n## 📱 Requisitos\n\n*   **Android Mínimo:** Android 8.0 (Oreo) recomendado para melhor performance em segundo plano.\n*   **Android Alvo:** Android 15 (Vanilla Ice Cream).\n*   **Hardware:** WiFi, Bluetooth, Câmera, Acelerômetro, Sensor de Proximidade.\n\n## 🚀 Instalação e Configuração\n\n### 1. Pré-requisitos\n*   Android Studio Koala ou mais recente.\n*   JDK 21.\n*   Android SDK Platform 35.\n\n### 2. Instruções de Build\n\n**Nota:** Este projeto requer uma configuração válida do Android SDK.\n\n1.  **Configurar SDK:**\n    Crie um arquivo `local.properties` na raiz do projeto se ele não existir:\n    ```properties\n    sdk.dir=/caminho/para/seu/android/sdk\n    ```\n    *(No Windows: `C:\\\\Users\\\\\u003cUsuario\u003e\\\\AppData\\\\Local\\\\Android\\\\Sdk`)*\n    *(No Mac/Linux: `/Users/\u003cUsuario\u003e/Library/Android/sdk` ou `/usr/lib/android-sdk`)*\n\n2.  **Compilar o APK:**\n    ```bash\n    ./gradlew assembleDebug\n    ```\n\n3.  **Instalar:**\n    ```bash\n    ./gradlew installDebug\n    ```\n\n### 3. Configuração do App\n\n**Permissões:**\nAo iniciar pela primeira vez, você deve conceder:\n*   **Localização:** \"Permitir o tempo todo\" é necessário para varredura WiFi/BLE em background.\n*   **Notificações:** Necessário para status persistente do serviço e alertas.\n*   **Câmera:** Para monitoramento e selfies de intruso.\n*   **Sobreposição:** (Opcional) Para certos recursos visuais do alarme.\n\n**Integrações:**\n*   **Telegram:** Vá em Configurações -\u003e Integrações -\u003e Telegram. Insira seu Bot Token e Chat ID.\n\n## 🛠️ Detalhes Técnicos\n\n*   **Linguagem:** Kotlin 1.9.22\n*   **Arquitetura:** Baseada em Serviços com Managers Singleton.\n*   **Processamento em Background:** Usa Foreground Services com tipos `location` e `specialUse` para cumprir as restrições do Android 14+.\n*   **Dependências:**\n    *   `LibVLC` para processamento de vídeo.\n    *   `AndroidX Biometric` para autenticação.\n    *   `Coroutines` para tarefas assíncronas.\n\n## 📦 Processo de Release\n\nO 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).\n\n### Tipos de Release\n\n1.  **Release Automática (Staging/Nightly):**\n    *   Gerada automaticamente a cada push na branch `main`.\n    *   A versão segue o número da build do GitHub Actions (ex: `v1.1.42`).\n    *   Inclui APKs de debug e release (não assinado por padrão).\n\n2.  **Release de Produção (Stable):**\n    *   Gerada ao criar uma tag Git (ex: `v1.2.0`).\n    *   Inclui APK assinado (se as chaves estiverem configuradas).\n    *   Para criar:\n        ```bash\n        git tag v1.2.0\n        git push origin v1.2.0\n        ```\n\n### Configuração de Assinatura (Opcional)\n\nPara gerar APKs assinados automaticamente, configure os seguintes **Secrets** no repositório GitHub (Settings -\u003e Secrets and variables -\u003e Actions):\n\n*   `RELEASE_KEYSTORE_BASE64`: Conteúdo do arquivo keystore (.jks) codificado em Base64 (`base64 -w 0 seu-keystore.jks`).\n*   `KEYSTORE_PASSWORD`: Senha do keystore.\n*   `KEY_ALIAS`: Alias da chave.\n*   `KEY_PASSWORD`: Senha da chave.\n\nSe esses segredos não estiverem configurados, a release conterá um APK não assinado (ou assinado com debug key, dependendo da configuração local).\n\n## 🤝 Contribuição\n\nPor favor, leia `CONTRIBUTING.md` para padrões de código e diretrizes de CI/CD antes de submeter um Pull Request.\n\n## 📄 Licença\n\nEste projeto está licenciado sob a MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuninmd%2Fdetect-wifi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuninmd%2Fdetect-wifi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuninmd%2Fdetect-wifi/lists"}