Android 8.0 i nowsze wymagają minimalnej wersji jądra i konfiguracji jądra, które są weryfikowane za pomocą pakietu Vendor Test Suite (VTS) i aktualizacji OTA. Jądra urządzeń z Androidem muszą umożliwiać obsługę jądra .config
i opcję odczytu konfiguracji jądra w czasie wykonywania poprzez system plików procfs
.
Obsługa .config jądra
Wszystkie jądra urządzeń muszą umożliwiać korzystanie z całości pliku android-base.cfg , który musi zawierać następujące opcje kernel-config (lub ich odpowiedniki w wersji jądra):
CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y
Wersja jądra
W przypadku systemu Android 9 minimalne wymagania dotyczące wersji jądra z obsługą długoterminową (LTS) to 4.4.107, 4.9.84 i 4.14.42.
- Wszystkie SoC wyprodukowane w 2018 roku muszą zostać uruchomione z jądrem 4.9.84 lub nowszym.
- Wszystkie inne SoC uruchamiające urządzenia z systemem Android z systemem Android 9 muszą używać jądra 4.4.107 lub nowszego.
- Jądra urządzeń oparte na wersji 4.14 muszą zawierać wersję 4.14.42 lub nowszą LTS.
- Niezależnie od daty premiery wszystkie układy SoC z urządzeniami z systemem Android 8.0 i nowszym podlegają zmianom jądra wymaganym do włączenia Treble.
- Starsze urządzenia z Androidem uaktualnione do wersji 8.0 lub nowszej mogą nadal korzystać z oryginalnej podstawowej wersji jądra.
Aby uzyskać szczegółowe informacje na temat jąder LTS, zobacz Długoterminowe stabilne jądra i wspólne jądra systemu Android
Obsługa drzewa urządzeń
Jeśli platforma nie obsługuje specyfikacji zaawansowanego interfejsu konfiguracji i zasilania (ACPI) , należy włączyć obsługę drzewa urządzeń w jądrze, a programy ładujące muszą przekazać opis sprzętu w postaci drzewa urządzeń do jądra. Drzewo urządzeń musi być również dostępne do odczytu dla systemu Android i musi mieć możliwość przekazywania parametrów specyficznych dla dostawcy i ODM do systemu Android. CONFIG_OF
jest obowiązkowe, podobnie jak wszystkie inne opcje konfiguracyjne jądra CONFIG_OF_*
specyficzne dla urządzenia i podsystemu.
Korzystanie z DebugFS
Implementacja interfejsu dostawcy nie może polegać na systemie plików DebugFS
w celu uzyskania dostępu do informacji debugowania. Dzieje się tak, ponieważ w systemie Android 7.0–10 można włączyć DebugFS
, ale testowanie VTS można przeprowadzić przy odłączonym DebugFS
.
W systemie Android 11 nie można uzyskać dostępu DebugFS
ani go zamontować na urządzeniach produkcyjnych, dlatego producenci urządzeń muszą go usunąć. Przed Androidem 11, dumpstate
uzyskiwał dostęp do statystyk segregatorów z DebugFS
. Ponieważ kompilacje użytkowników uruchamiane z systemem Android 11 lub nowszym nie mają dostępu DebugFS
, dumpstate
uzyskuje dostęp do statystyk segregatorów z binderfs
. Aby włączyć Binderfs
, włącz konfigurację jądra CONFIG_ANDROID_BINDERFS
.
W Androidzie 11 VTS wymusza te dwa wymagania:
-
CONFIG_DEBUG_FS
nie jest włączony w konfiguracji jądra urządzenia. -
DebugFS
nie jest wymieniony w/proc/filesystems
.
DebugFS w Androidzie 11
W poniższej tabeli opisano, jak każda z tych trzech kategorii jest obsługiwana w systemie Android 11. Należy pamiętać, że poniższe informacje dotyczą tylko kompilacji userdebug, ponieważ DebugFS
nie można zamontować w kompilacjach użytkownika. Nigdy nie montuj DebugFS
w kompilacjach użytkowników dla urządzeń uruchamianych na Androidzie 11.
Przypadek użycia | Kompilacja debugowania użytkownika Androida 11 |
---|---|
Jednorazowa inicjalizacja plików DebugFS podczas uruchamiania . Dostęp ten ma miejsce tylko raz podczas rozruchu. | Funkcja Vendor Init to robi. |
Generowanie raportu o błędzie : stan zrzutu HAL odczytuje pliki DebugFS , które stają się częścią raportu o błędzie. | Wykonywane przez HAL stanu zrzutu w ramach DumpstateBoard() po wywołaniu przez narzędzie stanu zrzutu. |
Testowanie i walidacja specyficzne dla urządzenia | Korzeń Adb i powłoka |