ShizuCallRecorder riporta la registrazione delle chiamate su Android stock senza root
Ricordi quando registrare una chiamata su Android era semplice come scaricare la prima app trovata su Google Play? Google ha sistematicamente chiuso questa falla con ogni nuova versione del sistema operativo. Prima hanno limitato l'accesso al microfono durante le chiamate, poi hanno bloccato l'API Accessibility per le app di registrazione di terze parti. Di conseguenza, i proprietari di dispositivi moderni si trovano con due opzioni: acquistare smartphone con funzionalità di registrazione integrate del produttore o ottenere l'accesso root.
Un nuovo progetto chiamato ShizuCallRecorder è recentemente apparso su GitHub. Il suo autore ha trovato una terza via. Questa utility open source può registrare entrambi i lati di una conversazione su Android 12 e versioni successive senza alcuna modifica al sistema.
Come funziona la cattura audio senza root
L'idea del progetto è semplicemente geniale. Invece di cercare di aggirare i meccanismi di sicurezza del sistema attraverso funzionalità speciali, lo sviluppatore ha sfruttato l'infrastruttura di Shizuku.
Per chi non conosce Shizuku: è uno strumento per inoltrare i permessi ADB a livello di applicazioni normali. L'esecuzione come shell (uid 0) in Android fornisce privilegi a cui il software ordinario non ha accesso. L'autore di ShizuCallRecorder ha incluso il binario scrcpy-server del noto utility scrcpy all'interno dell'app.
Quando si verifica una chiamata in entrata o in uscita, ShizuCallRecorder avvia un thread isolato scrcpy-server attraverso Shizuku. Il server intercetta lo stream audio direttamente dal sistema e lo ritrasmette all'applicazione. Questo permette di registrare chiaramente sia la tua voce che quella del chiamante, anche durante le conversazioni tramite auricolare Bluetooth.
Il flusso di lavoro è il seguente:
- L'app riceve un evento di cambio stato del telefono da
TelephonyManager. - Richiede a Shizuku di avviare il servizio interno.
- Un'istanza locale di
scrcpy-serversi avvia con i flag di cattura audio. - Lo stream viene codificato in Opus o AAC e salvato nella memoria del dispositivo.
- Quando la chiamata termina, il processo si ferma.
L'app non ha un servizio in background persistente che consuma memoria e scarica la batteria. Si attiva solo quando viene triggerata da un evento di sistema.
Impostazioni e funzionalità
Le funzionalità dell'utility sono deliberatamente minimaliste. L'autore avverte esplicitamente nella documentazione che non ha intenzione di trasformare il progetto in un registratore universale per messenger come Telegram o WhatsApp. Il focus principale è sulle chiamate telefoniche normali degli operatori cellulari.
Tra le opzioni utili troverai:
- Selezione del codec audio tra Opus e AAC.
- Registrazione automatica con regole di esclusione. Puoi ignorare i numeri anonimi, contatti specifici dalla rubrica, o registrare solo le chiamate da numeri sconosciuti.
- Spegnimento automatico di Shizuku dopo una chiamata.
L'ultimo punto riguarda la sicurezza. Alcune app bancarie e client di servizi aziendali reagiscono negativamente alla presenza di ADB abilitato o a un servizio Shizuku attivo. Per evitare di attivare i meccanismi di sicurezza di altri software, ShizuCallRecorder può terminare la sua sessione autonomamente.
Caveat e limitazioni
Prima di installare, considera i dettagli dell'implementazione tecnica.
Prima di tutto, l'utility si basa sulle API private di Android e sulla logica di scrcpy-server. Su Android stock (Pixel, Motorola o ROM AOSP), tutto funziona normalmente. Tuttavia, i produttori di smartphone amano riscrivere i servizi di gestione delle chiamate di sistema. Possono verificarsi problemi su firmware come MIUI, HyperOS o One UI.
In secondo luogo, c'è una sfumatura con le chiamate parallele. Se una seconda chiamata arriva durante una conversazione in corso e passi a quella, la registrazione continua nello stesso file senza separazione.
In terzo luogo, le regole sulla privacy nelle recenti versioni di Android rendono difficile l'accesso istantaneo al numero del chiamante in entrata. Per questo motivo, l'identificativo del chiamante a volte si attiva con un ritardo, e il filtro automatico potrebbe trattare erroneamente una chiamata come anonima.
La compatibilità con le versioni del sistema operativo si presenta così:
- Android 11 è supportato con una limitazione: lo schermo del dispositivo deve essere sbloccato affinché la cattura audio funzioni.
- Android 12, 13, 14 e 15 funzionano completamente.
- Android 16 e 17 sono ancora incerti a causa delle modifiche annunciate nel sottosistema ADB.
Come provare il progetto
Il processo di configurazione è leggermente più articolato di un'installazione tipica dall'app store, ma è semplice:
- Installa e avvia Shizuku sul tuo smartphone (l'autore del repository consiglia di usare la fork di thedjchi).
- Scarica l'ultimo file APK dalla pagina delle release di ShizuCallRecorder su GitHub.
- Concedi all'app i permessi base per l'accesso alle chiamate e ai contatti.
- Approva la richiesta di accesso a Shizuku.
ShizuCallRecorder è un ottimo esempio di come la combinazione di infrastrutture esistenti (scrcpy e Shizuku) possa risolvere un problema che ha incontrato un muro di restrizioni di sistema in Android. Il progetto è scritto in Kotlin, distribuito sotto licenza GPL-3.0, e svolge con precisione esattamente il compito per cui è stato creato.
Se hai bisogno di una registrazione autonoma delle chiamate telefoniche senza rootare il tuo dispositivo, questo progetto merita sicuramente un posto nella tua collezione di utility da lavoro.
Progetti correlati