Android: come raccogliere bug report, Debug Logs e Log anti-intrusioni

Durante un’analisi, un incidente o una semplice attività di assistenza tecnica può essere necessario raccogliere informazioni diagnostiche da uno smartphone Android.
A differenza di iPhone e iPad, Android non dispone di un singolo archivio perfettamente equivalente al sysdiagnose, il pacchetto diagnostico unico dei dispositivi Apple. Le fonti principali sono tre:
- il bug report, che raccoglie in un archivio lo stato diagnostico del dispositivo;
- i Debug Logs, ottenuti tramite logcat, utili per osservare ciò che accade durante un problema;
- il Log anti-intrusioni, introdotto con Android 16 per conservare nel tempo eventi rilevanti per la sicurezza.
Sono strumenti complementari e non intercambiabili.
Generare un bug report dal dispositivo
Il bug report è un archivio .zip che raccoglie log di sistema, crash, informazioni sui processi e altri dati tecnici prodotti dai componenti interni del sistema. Le dimensioni possono variare da alcune decine a diverse centinaia di MB, in base al dispositivo e ai dati disponibili.
Può essere utile per analizzare crash, blocchi, errori ANR (le app che si bloccano senza rispondere), consumi energetici anomali, problemi di rete e altri comportamenti inattesi.
Per generarlo direttamente dal dispositivo è necessario attivare le Opzioni sviluppatore, un menu nascosto di funzioni avanzate.
Nella maggior parte dei dispositivi:
- aprite Impostazioni > Informazioni sul telefono;
- individuate la voce Numero build;
- toccatela sette volte;
- inserite il PIN, se richiesto.
Successivamente:
- aprite Impostazioni > Sistema > Opzioni sviluppatore;
- selezionate Crea report bug, Segnalazione bug o una voce equivalente;
- se vengono proposte due varianti, il Report interattivo è adatto alla maggior parte dei casi e permette di aggiungere dettagli e screenshot; il Report completo include tutte le sezioni diagnostiche, ma non permette queste integrazioni: sceglietelo quando chi riceverà il file lo richiede espressamente;
- avviate la raccolta.
La raccolta richiede qualche minuto: al termine comparirà una notifica attraverso la quale sarà possibile salvare o condividere l’archivio.
Su Pixel e su alcuni altri dispositivi, sempre nelle Opzioni sviluppatore, è disponibile anche la Scorciatoia segnalazione bug: aggiunge la voce al menu di accensione e consente di avviare la raccolta nel momento esatto in cui il problema si manifesta, senza dover navigare nei menu. Sui Pixel recenti il menu si apre premendo insieme Accensione e Volume Su, come indicato nella guida Pixel.
Il nome del file sarà generalmente simile a:
bugreport-BUILD_ID-DATE.zip
dove al posto di BUILD_ID e DATE troverete la versione del software e la data di creazione.
Il percorso e il nome delle opzioni possono variare in base al produttore. La procedura generale è documentata da Android Developers.
Generare il bug report da computer con ADB
Il bug report può essere generato anche da computer, su macOS, Linux o Windows, tramite ADB (Android Debug Bridge): è lo strumento a riga di comando con cui il computer dialoga con un dispositivo Android, ed è incluso negli SDK Platform Tools ufficiali di Google. Non serve installare nulla: scaricate l’archivio, estraetelo e aprite il Terminale nella cartella appena estratta. Su Windows il modo più rapido è digitare cmd nella barra degli indirizzi di quella cartella e premere Invio; su Mac si fa clic destro sulla cartella e si sceglie “Nuovo terminale nella cartella”.
Negli esempi successivi viene utilizzato adb. Su macOS e Linux, se state eseguendo il programma direttamente dalla cartella estratta, sostituitelo con ./adb, per esempio ./adb devices.
Sul dispositivo:
- abilitate Debug USB nelle Opzioni sviluppatore: è l’interruttore che consente al computer di comunicare con lo smartphone;
- collegate lo smartphone al computer via USB;
- sbloccatelo;
- confermate la richiesta di autorizzazione che compare sullo schermo: l’impronta RSA mostrata identifica il computer che state autorizzando, quindi accettatela solo se siete voi ad aver appena collegato il dispositivo al vostro computer.
Dal computer verificate che il dispositivo sia visibile:
adb devices
Se tutto è a posto comparirà il numero di serie dello smartphone seguito dalla parola device. Se invece compare unauthorized, sbloccate lo smartphone e confermate l’autorizzazione.
A questo punto avviate la generazione:
adb bugreport
Non serve altro: ADB chiede al dispositivo di generare il bug report, attende che sia pronto e salva l’archivio .zip nella cartella in cui vi trovate. L’operazione può richiedere alcuni minuti.
Se sono collegati più dispositivi, indicate quale usare con il numero di serie mostrato da adb devices:
adb -s NUMERO_SERIALE bugreport
Conservate il file .zip originale senza estrarlo, modificarlo o ricomprimerlo.
Raccogliere i Debug Logs con logcat
I Debug Logs sono i messaggi prodotti in tempo reale dal sistema operativo e dalle applicazioni. Android li conserva in aree di memoria di dimensione limitata, i buffer: quando si riempiono, i dati più vecchi vengono sovrascritti dai nuovi.
Per questo motivo devono essere raccolti il prima possibile.
Si presentano due situazioni tipiche.
Il problema è riproducibile: avviate la registrazione con:
adb logcat -b all -v threadtime > debug-logs.txt
Lasciate il comando in esecuzione, riproducete il problema e interrompete la raccolta premendo Ctrl+C.
Il problema è appena avvenuto e non potete (o non volete) riprodurlo: salvate ciò che il dispositivo ha ancora in memoria; in questo caso il comando termina da solo:
adb logcat -b all -v threadtime -d > debug-logs.txt
In entrambi i casi il file debug-logs.txt viene creato nella cartella in cui vi trovate. I due comandi sono identici a parte l’ultima opzione: chiedono di leggere tutti i buffer disponibili (-b all) con data, ora, priorità, PID e TID (-v threadtime), e la -d del secondo dice a logcat di salvare quanto già presente e fermarsi, invece di restare in ascolto.
Su Windows eseguite questi comandi dal Prompt dei comandi (cmd.exe): Windows PowerShell 5.1 salva il file in una codifica (UTF-16LE) che alcuni strumenti di analisi non leggono correttamente, mentre PowerShell 7 usa UTF-8 e non ha questo problema.
I Debug Logs servono a osservare un errore mentre avviene; il bug report fotografa invece lo stato complessivo del dispositivo. La sintassi completa di logcat è descritta nella documentazione ufficiale Android.
Il nuovo Log anti-intrusioni di Android 16
Con Android 16 Google ha introdotto Intrusion Logging, chiamato nell’interfaccia italiana Log anti-intrusioni.
La funzione fa parte della modalità Protezione avanzata ed è stata sviluppata anche con il contributo dell’Amnesty International Security Lab.
A differenza del bug report e dei Debug Logs, conserva nel tempo eventi selezionati appositamente per le analisi di sicurezza, tra cui:
- avvio dei processi delle applicazioni;
- installazioni, aggiornamenti e disinstallazioni;
- interrogazioni DNS (la traduzione dei nomi dei siti in indirizzi) e connessioni verso indirizzi IP;
- attività e comandi ADB;
- trasferimenti di file tramite USB;
- modifiche ai certificati;
- blocchi e sblocchi del dispositivo.
I log vengono crittografati sul dispositivo e archiviati nell’Account Google scelto dall’utente. Google dichiara di non poterli leggere. Vengono conservati per 12 mesi e non possono essere eliminati manualmente prima della scadenza.
La funzione deve essere attivata prima dell’evento da analizzare: non permette di recuperare retroattivamente informazioni relative al periodo in cui era disabilitata.
Attivare ed esportare il Log anti-intrusioni
L’attivazione viene proposta durante la configurazione della modalità Protezione avanzata; è comunque possibile intervenire in un secondo momento:
- aprite Impostazioni > Sicurezza e privacy;
- selezionate Protezione avanzata;
- attivate Protezione del dispositivo;
- abilitate Log anti-intrusioni durante la configurazione oppure aprite successivamente la relativa voce;
- scegliete l’Account Google nel quale conservare i log crittografati;
- riavviate il dispositivo, se richiesto.
I nomi e l’ordine delle voci possono variare in base al produttore e alla versione di Android.
Quando è necessario esportare i dati:
- aprite Impostazioni > Sicurezza e privacy > Protezione avanzata > Log anti-intrusioni;
- selezionate Log accessi;
- individuate il dispositivo interessato;
- toccate Scarica e decripta;
- confermate con PIN o autenticazione biometrica.
I file saranno disponibili nel gestore file, normalmente nella cartella:
Download/Intrusion Logging/
La disponibilità della funzione dipende dal dispositivo e dagli aggiornamenti installati. Le procedure ufficiali e le implicazioni per la privacy sono riportate nella guida di Google e nell’approfondimento di Amnesty International.
Alcuni limiti da conoscere
La recente analisi pubblicata da iVerify conferma il valore del Log anti-intrusioni, ma evidenzia anche alcuni limiti:
- non registra ogni attività del dispositivo;
- il caricamento non è in tempo reale: le ultime 12-24 ore potrebbero mancare;
- la cronologia delle reti Wi-Fi non viene registrata;
- le installazioni non indicano la provenienza dell’app (Play Store, installazione manuale da file APK o ADB);
- delle sessioni ADB interattive registra l’apertura, non i comandi digitati;
- gli spegnimenti non lasciano traccia: l’orario va dedotto dai vuoti di attività.
Come condividere i file
Tutte e tre le raccolte possono contenere dati personali: app installate, identificatori del dispositivo, attività di sistema e connessioni di rete. Condividetele solo con il destinatario previsto, tramite un canale cifrato oppure un link o un archivio protetti da password, comunicata separatamente.
Accompagnate i file con data e ora esatta dell’anomalia (con fuso orario), modello del dispositivo, versione di Android, una breve descrizione dell’accaduto e l’orario della raccolta.
Come accortezza generale, bug report e Debug Logs vanno raccolti il prima possibile dopo il problema; il Log anti-intrusioni, invece, va abilitato preventivamente.
