Podstawowe wymagania jądra

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