Requisiti principali del kernel

Android 8.0 e versioni successive richiedono una versione minima del kernel e del kernel. di rete, verificati dal Vendor Test Suite (VTS) e over-the-air (OTA). I kernel dei dispositivi Android devono abilitare il kernel .config e la possibilità di leggere la configurazione del kernel in fase di runtime tramite File system procfs.

Supporto kernel .config

Tutti i kernel del dispositivo devono abilitare l'intera android-base.cfg, che deve includere quanto segue. opzioni kernel-config (o l'equivalente della versione del kernel):

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

Versione kernel

Per Android 9, il livello minimo di assistenza a lungo termine (LTS) i requisiti della versione del kernel sono 4.4.107, 4.9.84 e 4.14.42.

  • Tutti i SoC prodotti nel 2018 devono essere lanciati con il kernel 4.9.84 o superiore.
  • Tutti gli altri SoC che lanciano dispositivi Android con Android 9 deve usare il kernel 4.4.107 o superiore.
  • I kernel del dispositivo basati sulla versione 4.14 devono includere LTS 4.14.42 o versione successiva .
  • Indipendentemente dalla data di lancio, tutti i SoC con dispositivo vengono lanciati su Android 8.0 e superiori rimangono soggetti alle modifiche del kernel necessarie per abilitare Treble.
  • I dispositivi Android meno recenti che eseguono l'upgrade ad Android 8.0 o versioni successive possono continuare a usa la versione originale del kernel.

Per maggiori dettagli sui kernel LTS, consulta A lungo termine con kernel stabili e Kenel comuni di Android

Supporto di Devicetree

Se la piattaforma non supporta la specifica ACPI (Advanced Configuration and Power Interface), il supporto devicetree nel kernel deve essere abilitato e i bootloader devono passare descrizione dell'hardware sotto forma di devicetree nel kernel. L'albero dei dispositivi deve essere disponibile per Android in lettura e deve essere in grado di trasmettere e ODM ad Android. CONFIG_OF è obbligatorio, insieme a tutte le altre CONFIG_OF_* specifiche per dispositivo e sottosistema e le opzioni di configurazione del kernel.

Utilizza DebugFS

L'implementazione dell'interfaccia del fornitore non può basarsi sul DebugFS per accedere alle informazioni di debug. Questo perché nelle versioni Android dalla 7.0 alla 10 può essere attivata DebugFS, ma il test VTS può essere eseguito con DebugFS smontato.

In Android 11, non è possibile accedere a DebugFS o montarlo su dispositivi di produzione, quindi i produttori devono rimuoverla. Prima di Android 11, dumpstate ha eseguito l'accesso alle statistiche del raccoglitore da DebugFS. Perché le build degli utenti che vengono lanciate con Android 11 o versioni successive non possono accedere DebugFS, dumpstate accede alle statistiche Raccoglitore da binderfs. Per abilitare Binderfs, abilita il kernel configura CONFIG_ANDROID_BINDERFS.

In Android 11, VTS applica i seguenti 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 in che modo ciascuna di queste tre categorie viene supportata in Android 11. Tieni presente che che segue si applica solo alle build di debug dell'utente poiché DebugFS non può essere montate nelle build dell'utente. Non montare mai DebugFS nelle build degli utenti per i dispositivi verrà lanciato su Android 11.

Caso d'uso Build debug utente Android 11
Inizializzazione una tantum dei file DebugFS, durante l'avvio. Questo accesso viene verificato una sola volta durante l'avvio. Questa operazione viene eseguita dall'init del fornitore.
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 dallo strumento dumpstate.
Test e convalida specifici per dispositivo Radice e shell ADB