Dynamiczny Android umożliwi programistom testowanie AOSP na dowolnym urządzeniu z Androidem Q

Nowy projekt o nazwie Dynamic Android umożliwi programistom testowanie interfejsów GSI AOSP Android Q na dowolnym urządzeniu z systemem Android Q lub nowszym.

Dzięki Projekt Treble, producenci smartfonów udostępnili aktualizacje oprogramowania Android Pie szybciej, niż było to możliwe w przypadku aktualizacji Androida Oreo, przynajmniej w przypadku flagowych smartfonów. Google nie chce jednak, aby tylko producenci OEM czerpali korzyści z Project Treble. Firma już wcześniej wyraził zainteresowanie udostępniając ogólny obraz systemu (GSI) Androida Q dla programistów, aby nie musieli polegać na emulatorach, użyj usługa chmurylub poczekaj na aktualizację na swoim urządzeniu, aby przetestować aplikację pod kątem najnowszego poziomu interfejsu API. Teoretycznie wypuszczenie GSI powinno pozwolić każdemu programiście posiadającemu urządzenie kompatybilne z Project Treble (pierwotnie Android 8.0 Oreo i nowsze, ale obecnie uważane są za tylko urządzenia uruchamiane z systemem Android 9 Pie) w celu przetestowania najnowszego Androida wersja. Programista musi jedynie wgrać obraz systemu na istniejącą instalację oprogramowania — nie ma potrzeby stosowania niestandardowego obrazu odzyskiwania, rozruchu ani obrazu dostawcy.

Istnieje jednak kilka problemów związanych z obecnym procesem instalacji GSI. Po pierwsze potrzebujesz odblokowanego bootloadera, który nie jest możliwe na urządzeniach Huawei lub Honor (bez płacenia opłata), urządzenia Nokia firmy HMD Global (z wyłączeniem Nokii 8) lub urządzenia marki amerykańskiego operatora. Następny, proces będzie trudne dla każdego, kto nie jest zaznajomiony z flashowaniem obrazów poprzez fastboot. Na koniec, flashowanie GSI będzie teraz wymagało całkowitego wyczyszczenia pamięci wewnętrznej, co oznacza, że ​​prawdopodobnie będziesz potrzebować zapasowego urządzenia do przetestowania. W tej chwili flashowanie GSI jest czymś, czego producenci OEM używają do testowania zgodności z Project Treble na swoich urządzeniach, a poza tym jest to atrakcyjne tylko dla zagorzałych entuzjastów niestandardowej pamięci ROM. Nowy projekt Google „Dynamic Android” może to zmienić.

Dynamiczny Android — łatwo testuj AOSP GSI na dowolnym urządzeniu z Androidem Q

Przez ostatnie kilka miesięcy Google pracowało nad sposobem bezpiecznego uruchamiania GSI bez konieczności odblokowywania programu ładującego. Krótko mówiąc, Google opracowuje aplikację, która ma specjalne uprawnienia, które pozwalają jej pobrać GSI, zarezerwować dla niego miejsce na dysku i oznaczyć GSI jako bootowalny. Ten projekt składa się z kilku elementów, więc omówmy je jeden po drugim.

Dynamiczny Android i Android On Tap

Do Androida Q dodawane są dwie nowe usługi: usługi Dynamic Android i Android On Tap. Podczas gdy Dynamic Android obsługuje instalację GSI, Android On Tap informuje aplikacje systemowe za pomocą wywołań zwrotnych i zamiarów transmisji. Na przykład Android On Tap ostrzega menedżera KeyguardManager, aby poprosił użytkownika o potwierdzenie żądania instalacji, jeśli urządzenie jest chronione kodem PIN, hasłem lub wzorem. AOT ostrzega również użytkownika po uruchomieniu GSI.

Zgodnie z opisem „DynamicAndroidManager” usługa „oferuje mechanizm umożliwiający korzystanie z nowego Androida obraz tymczasowy.” Po instalacji urządzenie może ponownie uruchomić się z nowo zainstalowanym obrazem z nowo utworzonym /data. Ponowne uruchomienie w GSI powoduje powrót użytkownika do oryginalnego obrazu systemu, ale nowo zainstalowany obraz i jego dane są jedynie wyłączane, a nie usuwane. Jeśli użytkownik zdecyduje się to zrobić, GSI i jego dane mogą jednak zostać całkowicie usunięte.

Źródła: [1], [2], [3], [4]

Identyfikator GSID

Demon GSI przydziela miejsce w partycji /data do przechowywania obrazu GSI i jego danych oraz umożliwienia uruchomienia obrazu. Metadane GSI są przechowywane w /metadata, natomiast sam GSI i jego dane są przechowywane w /data/gsi. Domyślnie GSID przydziela 8 GB danych użytkownika dla nowo zainstalowanego GSI. Ogólnie rzecz biorąc, GSID szuka co najmniej 40% wolnego miejsca przed rozpoczęciem instalacji. Wreszcie demon uniemożliwia użytkownikowi instalację GSI w GSI z oczywistych powodów.

Źródła: [1], [2], [3], [4]

Bezpieczeństwo

Włączono funkcję Android Verified Boot (AVB) dla nowo zainstalowanego obrazu systemu EXT4 (system_gsi zamontowany w /system). Google wdrożyło także zasady SELinux dla nowych usług. Wreszcie instalacja GSI wymaga, aby aplikacja miała nowe uprawnienie MANAGE_DYNAMIC_ANDROID. Jest to uprawnienie na poziomie podpisu, co oznacza, że ​​aplikacja musi zostać podpisana przez producenta OEM.

Źródła: [1], [2]

Polecenia ADB i Fastboot

GSI będzie można także zainstalować za pomocą nowych poleceń ADB. Nowe polecenie powłoki ADB gsi_tool umożliwi użytkownikom wyłączanie, ponowne włączanie, instalowanie i zachowywanie userdata, instaluj i twórz dane użytkownika, instaluj i usuwaj dane użytkownika lub sprawdzaj status instalacja.

gsi_tool - command-line tool for installing GSI images.

Usage:
gsi_tool <disable|install|wipe|status> [options]

disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus

Zostaną dodane dwa nowe polecenia fastboot do zarządzania GSI, chociaż instalacja fastboot nie jest obsługiwana, ponieważ fastboot nie może montować danych użytkownika.

fastboot gsi wipe
fastboot gsi disable

Źródła: [1], [2]

Komu to przyniesie korzyść?

Chcę powiedzieć, że twórcy aplikacji będą mogli korzystać z Dynamic Android i Android On Tap, ale nie jestem do końca pewien. Chociaż Google wyraził zainteresowanie właśnie tym, nie ma gwarancji, że ta funkcja będzie dostępna w każdej wersji Androida Q producenci OEM spoza Google. Aby móc z tego skorzystać na urządzeniu, oprogramowanie potrzebuje aplikacji selektora GSI podpisanej tym samym certyfikatem co ROM. Nie jestem też pewien, czy instalacja GSI z ADB będzie możliwa bez rootowania ADB ze względu na zasady SELinux.Aktualizacja: Nowy popełniać potwierdza, że ​​do korzystania z GSI_tool wymagany będzie root ADB. Jeśli nie jest to przeznaczone dla twórców aplikacji do testowania swoich aplikacji na czystej wersji Androida, to prawdopodobnie będzie to tylko możliwe inżynierowie OEM chcący przetestować pakiet testów zgodności (CTS) i pakiet testów dostawcy (VTS) na swoich urządzenia.

Specjalne podziękowania dla uznanego programisty XDA Luca020400 za pomoc w tym artykule.