Skip to content

robycinix/CallGuardian

CallGuardian

CallGuardian logo

Protezione chiamate Android, locale e privacy-first.

Filtra spam, chiamate anonime, numeri sospetti e prefissi indesiderati senza account, senza server obbligatorio e senza caricare la rubrica nel cloud.

Android Kotlin Privacy Build

CallGuardian - protezione chiamate locale

Perché Esiste

CallGuardian nasce per dare controllo reale sulle chiamate in arrivo: bloccare ciò che è rischioso, avvisare quando serve prudenza e lasciare passare i contatti importanti. Il punto forte è il modello locale: regole, log, statistiche e classificazione restano sul dispositivo.

Funzionalità

  • Protezione chiamate tramite CallScreeningService Android.
  • Blocco di numeri, prefissi, range, nazioni e chiamate anonime.
  • Whitelist locale per contatti e numeri sempre consentiti.
  • Gestione chiamate estere con modalità avviso, blocco selettivo o blocco per nazione.
  • Classificazione locale a punteggio con priorità regole configurabile.
  • Registro eventi con azione, motivo, punteggio, paese e regola applicata.
  • Statistiche locali su chiamate bloccate, categorie, orari e paesi.
  • Notifiche e overlay opzionale per chiamate sospette.
  • Backup/export JSON locale.
  • Tema chiaro, scuro o automatico, con palette selezionabili.
  • Database locale cifrato con SQLCipher e chiave protetta da Android Keystore.
  • Interfaccia localizzata in italiano, inglese, spagnolo, francese, tedesco e portoghese.

Anteprima

Protezione Regole Registro Statistiche Opzioni
Schermata Protezione Schermata Regole Schermata Registro Schermata Statistiche Schermata Opzioni

Privacy

CallGuardian è progettata per funzionare completamente in locale.

Non invia obbligatoriamente a server esterni:

  • rubrica;
  • cronologia chiamate;
  • blacklist o whitelist;
  • statistiche;
  • numeri telefonici;
  • regole configurate dall'utente.

Il database dell'app è cifrato localmente. I backup automatici Android escludono i dati sensibili configurati nelle regole di backup del progetto.

Come Funziona

flowchart LR
    A["Chiamata in arrivo"] --> B["Android CallScreeningService"]
    B --> C["Normalizzazione numero"]
    C --> D["Regole locali e rubrica"]
    D --> E["Classificatore a punteggio"]
    E --> F{"Decisione"}
    F --> G["Consenti"]
    F --> H["Avvisa"]
    F --> I["Silenzia"]
    F --> J["Blocca"]
    E --> K["Log e statistiche locali"]
Loading

Nota Android: per bloccare davvero le chiamate, l'utente deve assegnare a CallGuardian il ruolo di app "ID chiamante e spam" (ROLE_CALL_SCREENING). L'app guida l'utente nella configurazione.

Stack

  • Kotlin
  • Android SDK 35
  • Jetpack Compose e Material 3
  • MVVM
  • Hilt
  • Room
  • SQLCipher
  • WorkManager
  • Gson
  • libphonenumber
  • JUnit

Requisiti

  • Android Studio Ladybug o superiore
  • JDK 17
  • Android SDK con compileSdk 35
  • Gradle Wrapper incluso
  • Dispositivo o emulatore Android API 29+

Avvio Rapido

Build debug:

.\gradlew.bat :app:assembleDebug

Unit test:

.\gradlew.bat :app:testDebugUnitTest

APK generato:

app/build/outputs/apk/debug/app-debug.apk

Smoke test ADB, con dispositivo collegato e debug USB attivo:

.\scripts\test-adb.ps1

Gli artefatti dello smoke test vengono salvati in build/adb-smoke/.

Struttura

.
|-- app/
|   |-- src/main/java/com/callguardian/app/
|   |   |-- core/          # modelli, permessi e logica dominio
|   |   |-- data/          # Room, repository, backup e classificatore
|   |   |-- di/            # moduli Hilt
|   |   |-- telephony/     # CallScreeningService, normalizzazione e notifiche
|   |   |-- ui/            # Compose UI, navigazione, tema e schermate
|   |   `-- viewmodel/     # ViewModel MVVM
|   `-- src/test/          # unit test
|-- docs/
|   |-- assets/            # screenshot e materiali GitHub
|   `-- play/              # schede, privacy policy e asset Play Store
|-- release/               # pacchetto pubblicazione Play Store
|-- scripts/               # smoke test ADB
|-- BUILD_AND_TEST.md
|-- GENERATED_FILES.md
`-- callguardian_specifica_tecnica_completa.md

Documentazione

Roadmap

  • Validazione su più dispositivi Android reali.
  • Test strumentali Compose sulle schermate principali.
  • Import backup cifrato oltre all'export JSON.
  • Miglioramento statistiche con serie temporali più ricche.
  • Eventuale sincronizzazione opzionale, esplicita e disattivata di default.

Contribuire

Leggi CONTRIBUTING.md prima di aprire una pull request. Per bug e nuove idee sono disponibili i template GitHub in .github/ISSUE_TEMPLATE/.

Stato

Versione app: 1.0.0

Il progetto è una base Android reale e funzionante per protezione chiamate locale. Prima della pubblicazione è consigliato validare il comportamento su più dispositivi Android e completare le policy richieste dagli store.

Licenza

Questo progetto è distribuito sotto licenza Apache License 2.0. Vedi LICENSE.

About

Android privacy-first call blocker built with Kotlin, Jetpack Compose, CallScreeningService and local encrypted storage.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors