Android 8.0 e versioni successive richiedono una versione minima del kernel e una configurazione del kernel, che vengono verificate dalla Vendor Test Suite (VTS) e dagli aggiornamenti over-the-air (OTA). I kernel dei dispositivi Android devono abilitare il supporto kernel .config
e l'opzione per leggere la configurazione del kernel in fase di esecuzione tramite il file system procfs
.
Supporto del kernel .config
Tutti i kernel del dispositivo devono abilitare l'intero file android-base.cfg , che deve includere le seguenti opzioni di configurazione del kernel (o la loro versione equivalente del kernel):
CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y
Versione del kernel
Per Android 9, i requisiti minimi della versione del kernel con supporto a lungo termine (LTS) sono 4.4.107, 4.9.84 e 4.14.42.
- Tutti i SoC prodotti nel 2018 devono essere avviati con il kernel 4.9.84 o successivo.
- Tutti gli altri SoC che avviano dispositivi Android con Android 9 devono utilizzare il kernel 4.4.107 o successivo.
- I kernel del dispositivo basati su 4.14 devono includere la versione LTS 4.14.42 o successiva.
- Indipendentemente dalla data di lancio, tutti i SoC con dispositivi lanciati su Android 8.0 e versioni successive rimangono soggetti alle modifiche del kernel necessarie per abilitare Treble.
- I dispositivi Android meno recenti che eseguono l'aggiornamento ad Android 8.0 o versioni successive possono continuare a utilizzare la versione del kernel di base originale.
Per dettagli sui kernel LTS, consulta Kernel stabili a lungo termine e Kernel comuni Android
Supporto per Devicetree
Se la piattaforma non supporta la specifica ACPI (Advanced Configuration and Power Interface) , il supporto dell'albero dei dispositivi nel kernel deve essere abilitato e i bootloader devono passare la descrizione dell'hardware sotto forma di albero dei dispositivi al kernel. Il dispositivo deve essere disponibile anche per la lettura da parte di Android e deve essere in grado di passare parametri specifici del fornitore e dell'ODM ad Android. CONFIG_OF
è obbligatorio, insieme a tutte le altre opzioni di configurazione del kernel CONFIG_OF_*
specifiche del dispositivo e del sottosistema.
Utilizzando DebugFS
L'implementazione dell'interfaccia del fornitore non può fare affidamento sul file system DebugFS
per accedere alle informazioni di debug. Questo perché in Android 7.0–10 DebugFS
può essere abilitato, ma i test VTS potrebbero essere eseguiti con DebugFS
smontato.
In Android 11, non è possibile accedere o montare DebugFS
sui dispositivi di produzione, quindi i produttori di dispositivi devono rimuoverlo. Prima di Android 11, dumpstate
accedeva alle statistiche del raccoglitore da DebugFS
. Poiché le build degli utenti avviate con Android 11 o versioni successive non possono accedere DebugFS
, dumpstate
accede alle statistiche del raccoglitore da binderfs
. Per abilitare Binderfs
, abilitare la configurazione del kernel CONFIG_ANDROID_BINDERFS
.
In Android 11, VTS applica questi due requisiti:
-
CONFIG_DEBUG_FS
non è abilitato nella configurazione del kernel del dispositivo. -
DebugFS
non è elencato in/proc/filesystems
.
DebugFS in Android 11
La tabella seguente descrive il modo in cui ciascuna di queste tre categorie è supportata in Android 11. Tieni presente che quanto segue si applica solo alle build userdebug poiché DebugFS
non può essere montato nelle build utente. Non montare mai DebugFS
nelle build utente per i dispositivi avviati su Android 11.
Caso d'uso | Build di debug utente di Android 11 |
---|---|
Inizializzazione singola dei file DebugFS , durante l'avvio . Questo accesso avviene solo una volta durante la fase di avvio. | Il venditore init fa questo. |
Generazione della segnalazione di bug : l'HAL dumpstate legge i file DebugFS , che diventano parte della segnalazione di bug. | Eseguito dall'HAL dumpstate all'interno di DumpstateBoard() quando richiamato dallo strumento dumpstate. |
Test e validazione specifici del dispositivo | Adb root e shell |