Ten dokument zawiera najczęstsze pytania na temat jądra Androida, znanego też jako jądro obrazu jądra (General Jądro obrazu). Jeśli nie znasz terminologii GKI i GKI, zapoznaj się z omówieniem jądra.
Czy listy symboli interfejsu Kernel Module Interface (KMI) można zmieniać w stabilnej wersji jądra?
Zmiany, które nie wpływają na istniejące KMI, można dodawać do jąder, które są zamrożone. Te zmiany obejmują nowe wyeksportowane funkcje i pozycje listy symboli. Więcej informacji znajdziesz w artykule Zarządzanie listami symboli.
Czy mogę zmienić struktury używane przez moduły dostawców w stabilnym jądrze?
Struktury, które są częścią interfejsu KMI, nie mogą być zmieniane w jądrach z zamrożonym KMI. Przed zamrożeniem KMI te struktury mogą ulec zmianie.
Czy mogę zmienić jądro, o ile nie naruszy to zgodności binarnej ani źródłowej?
Zmiany, które nie wpływają na KMI, można wprowadzać zgodnie z opisem w specjalnych poprawkach dotyczących Androida.
Jak GKI obsługuje konfigurację jądra?
Informacje o konfiguracji jądra znajdziesz w artykule Zmiany w gki_defconfig.
Jak naprawić błędy dotyczące wcześniejszych wersji w przypadku zastąpień istniejących modułów GKI?
Jeśli utworzysz moduł dostawcy na podstawie sterownika powszechnego jądra systemu Android (ACK), Twoim obowiązkiem jest dopilnowanie, aby do modułu zostały rozpowszechnione poprawki błędów z podanych wyżej i potwierdzenia. Zazwyczaj warto używać jądra i modułów GKI bez wprowadzania zmian, aby te aktualizacje były dostarczane przez Google w sposób spójny.
Czy są testy dotyczące GKI?
Istnieją testy Vendor Test Suite (VTS), które sprawdzają, czy zainstalowana jest certyfikowana wersja GKI, a także czy spełnia ona wymagania dotyczące GKI dla danej wersji. Na przykład w przypadku Androida 12 i protokołu VTS są dostępne testy nagłówka uruchamiania w wersji 3, które sprawdzają istnienie wymaganych partycji na urządzeniu z jądrem w wersji 5.10.
Jak utworzyć plik fragmentu defconfig projektu na potrzeby kompilacji na urządzeniu?
Wiele urządzeń zgodnych z GKI używa fragmentu konfiguracji, aby opisać opcje konfiguracji potrzebne do tworzenia modułów dostawcy (oprócz gki_defconfig
).
Przykłady, które są częścią kodu źródłowego ACK, to Cuttlefish i DB845c.
Nie da się uniknąć ręcznego sprawdzania opcji konfiguracji w celu optymalizacji fragmentu, ale scripts/diffconfig
z źródeł jądra jest przydatne do porównywania wyników gki_defconfig
i gki_defconfig+device.fragment
.
Czy istnieje obejście dla traktowania modprobe – i _ jako równoważnego?
Strona man modprobe zawiera następujący opis: „modprobe
inteligentnie dodaje moduł do jądra Linuksa lub go z niego usuwa. Dla wygody użytkowników nie ma różnicy między znakami _ i - w nazwach modułów (automatyczna konwersja podkreślenia jest wykonywana)”. Zespół GKI przestrzega standardowej konwencji upstream, więc konwencje nazewnictwa narzędzi lub modułów dostawcy muszą być z nią zgodne.
Jak włączyć debugfs do użytku wewnętrznego?
Szczegółowe informacje o włączaniu debugfs znajdziesz w artykule Intruzywne funkcje debugowania na dalszych poziomach.
Jak rozwiązać problem niepasujących ABI między jądrem GKI z włączoną konkretną konfiguracją modułu?
Niezgodne ABI między konfiguracją jądra GKI a modułem stanowią ukrytą zależność konfiguracji modułu, w której włączenie modułu powoduje wbudowanie konfiguracji binarnej w wynikowy obraz jądra. Skontaktuj się z zespołem odpowiedzialnym za jądro Androida (kernel-team@android.com), aby ustalić dalsze działania. Po ustaleniu listy symboli utwórz błąd w Issue Tracker i prześlij zmianę do listy symboli.
Mam w polu urządzenia zgodne z GKI 1.0 z jądrem 5.4, które zostały wprowadzone wraz z Androidem 11 i 12. Jakie opcje aktualizacji jądra są dostępne i jak mogę przetestować te urządzenia podczas aktualizacji do Androida 12 i 13?
Listę obsługiwanych wersji jądra dla wersji wprowadzającej i wersji zaktualizowanych znajdziesz w matryce zgodności. Oto 2 przykłady przejścia na nową wersję:
Przykład 1: użytkownik urządzenia z Androidem 11 i jądrem android11-5.4
(GKI 1.0) może wybrać jedną z tych opcji podczas aktualizacji do Androida 12:
Zaktualizuj jądro
android12-5.10
GKI 2.0 (zalecane).Zachowaj jądro
android11-5.4
.Przejdź na jądro
android12-5.4
.
Przykład 2. Użytkownik urządzenia z Androidem 12 z jądrem android12-5.4
lub android12-5.10
może wybrać jedną z tych opcji podczas aktualizacji do Androida 13:
Uaktualnij ją do
android13-5.10
lubandroid13-5.15
GKI w wersji 2.0 (zdecydowanie zalecane).Zachowaj jądro
android12-5.4
GKI 1.0.Zachowaj jądro
android12-5.10
GKI 2.0.
W przypadku testów zgodności z zasadami Treble zalecamy wykonanie jednej z tych czynności:
Zastąp ją ją certyfikowanym jądrem GKI 1.0 (
android11-5.4
lubandroid12-5.4
).Przesyłaj z zainstalowanym certyfikowanym jądrem GKI 2.0 (
android12-5.10
,android13-5.10
lubandroid13-5.15
) w zależności od wybranej opcji.
Kompilacje GKI 2.0 możesz pobierać z kompilacji wersji obrazu Generic Kernel Image (GKI).