Dispositivi che vengono avviati con Android 12 utilizzando il kernel
versioni successive alla v5.4 devono essere fornite con il kernel GKI. Perciò
I partner possono accedere a DebugFS
nelle build di userdebug mentre sviluppano su GKI
la configurazione del kernel CONFIG_DEBUG_FS
è abilitata nel defconfig GKI.
Non montare mai DebugFS
nelle build degli utenti per i dispositivi
verrà lanciato su Android 12.
Le build di debug dell'utente hanno una copertura di test migliore rispetto alle build dell'utente e comportano un aumento significativo
testati durante tutto il ciclo di sviluppo. Il piano seguente riduce al minimo
la differenza tra i due tipi di build per quanto riguarda l'accesso DebugFS
, e
offre i seguenti vantaggi:
- Impedisce l'esecuzione accidentale delle build di debug dell'utente a seconda di
DebugFS
per ottenere nuove funzionalità - Assicura che tutte le funzionalità esistenti non funzionanti per mancanza di DebugFS è nota nelle prime fasi del ciclo di sviluppo
Gli accessi a debugfs nelle build di userdebug sono classificati come che segue:
DebugFS
inizializzazioni dei file durante l'avvio del dispositivo, ad esempio una accesso in scrittura a un file inDebugFS
per attivare la raccolta dei dati di debug.- Generazione del report di bug: l'HAL dello stato di dump legge
DebugFS
file quandoDumpstateBoard()
è richiamato dadumpstate
. Questo le informazioni diventano parte della segnalazione di bug. - Test e convalida specifici per i dispositivi.
La tabella seguente descrive in che modo ciascuna di queste tre categorie viene
supportata in Android 12. Tieni presente che
che segue si applica solo alle build di debug dell'utente poiché DebugFS
non può essere
montate nelle build dell'utente.
Caso d'uso | Build debug utente Android 12 |
---|---|
Inizializzazione una tantum dei file DebugFS , durante l'avvio.
Questo accesso viene verificato una sola volta durante l'avvio.
|
Il dumpstate HAL esegue questa operazione durante l'inizializzazione dell'HAL. Per attivarla,
init monta DebugFS nelle build userdebug prima dell'inizializzazione dell'HAL.
Init chiama umount() su DebugFS quando
il dispositivo ha completato l'avvio.
|
Generazione del report di bug: l'HAL dumpstate legge
DebugFS , che diventano parte della segnalazione di bug.
|
Completato dall'HAL dumpstate entro DumpstateBoard() quando richiamato da dumpstate
(DumpstateDevice.cpp).
Lo strumento dumpstate (parte del framework Android) garantisce che DebugFS
monta durante la chiamata.
|
Test e convalida specifici per dispositivo | Radice e shell ADB. Monta DebugFS dalla shell ADB con
accesso root.1
|
1Per montare DebugFS
da adb shell
con
l'accesso root, utilizza questo comando:
adb shell mount -t debugfs debugfs /sys/kernel/debug
.
Azioni richieste dal partner
I Partner devono adottare le seguenti misure in base a queste modifiche nei Dispositivi Android 12:
- Esegui tutte le inizializzazioni in fase di avvio di
DebugFS
nodi durante l'inizializzazione dell'HAL dumpstate. Per un esempio di come fare, consulta DNM: Esempio per l'inizializzazione del tempo di avvio diDebugFS
file. - Non consentire l'accesso a
DebugFS
durante il runtime. Le seguenti eccezioni fai domanda:- Generazione di report di bug (proviene dall'HAL dello stato di dump)
- Test e convalida (accessibile da
adb root
eshell
- assicurati che DebugFS sia montato per primo)
Gli sviluppatori possono impostare la proprietà permanente di debug
persist.dbg.keep_debugfs_mounted
per mantenere DebugFs
montata tra
su build di userdebug ed eng.
I test di conformità GTS assicurano che il file system DebugFS
montate nelle build dell'utente. Le istruzioni Sepolicy neverallow
assicurano che nei dispositivi
al lancio su Android 12 o versioni successive, non vengono forniti processi non autorizzati
accesso a DebugFs
.