Requisiti del kernel principale

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