Podczas konferencji programistów Google I/O 2019 Google ogłosił Project Mainline – próbę przyspieszenia aktualizacji zabezpieczeń za pośrednictwem modułów w Androidzie Q.
Fragmentacja wersji Androida to jedno z największych wyzwań, z którymi musi sobie poradzić Google. Chociaż smartfony Google Pixel należą do najbezpieczniejszych smartfonów na rynku dzięki niesamowitym wysiłkom Pixela i Inżynierowie AOSP, wiele innych smartfonów jest podatnych na exploity z powodu uruchamiania nieaktualnych wersji systemu operacyjnego lub nieaktualnych poprawek zabezpieczeń poziomy. Z najnowszego raportu Gartnera wynika, że Android 9 Pie to wciąż niezwykle bezpieczny system operacyjny tylko około 10% wszystkich smartfonów jest w chwili premiery.
Google walczy z fragmentacją wersji za pomocą inicjatyw takich jak Projekt Treble, zasadnicza przebudowa systemu Android skutkująca oddzieleniem komponentów platformy systemu operacyjnego Android od komponentów HAL dostawcy,
rozszerzone jądro Linuksa LTS, obowiązkowe aktualizacje poprawek zabezpieczeń przez 2 lata i Zalecany system Android Enterprise. Na Google I/O 2019 firma ogłosiła swoją najnowszą inicjatywę mającą na celu przyspieszenie aktualizacji zabezpieczeń: Project Mainline dla Androida Q.Project Mainline: Aktualizacja modułów systemu Android Q poprzez Google Play
Przez ostatnie kilka miesięcy śledziliśmy coś, co nazywało się „WIERZCHOŁEK„w AOSP. APEX lub Android Pony Express, to nowy typ pakietu podobny do pliku APK. Zamiast jednak przechowywać aplikację na Androida, APEX jest domem dla biblioteki natywnej lub klasowej, prekompilowany kod, który może być wywoływany przez aplikacje na Androida, warstwy abstrakcji sprzętu (HAL) i system Android Czas działania (ART). Podobnie jak APK, pakiety APEX mogą być udostępniane użytkownikom za pomocą tradycyjnych metod instalacji pakietów w systemie Android: sklepu Google Play/menedżera pakietów lub ADB.
Modułów APEX można używać znacznie wcześniej w procesie rozruchu niż moduły oparte na APK, a dla zwiększenia bezpieczeństwa są one również wspierane przez dm-verity i Android Verified Boot. Montowanie obrazów ładunku w pakiecie APEX wymaga sterownika pętli jądra Linuksa, więc urządzenia wymagają jądra Linuksa w wersji 4.9 lub nowszej. Zarządzanie pakietami APEX wymaga nowego demona APEX wprowadzonego w systemie Android Q. Chociaż urządzenia zaktualizowane do Androida Q z jądrem Linux 4.4 mogą obsługiwać APEX (np. Google Pixel 3), producenci OEM muszą połączyć dodatkowe poprawki, aby to zadziałało. W większości przypadków tylko urządzenia uruchamiane z systemem Android Q obsługują Project Mainline.
Dystrybucje GNU/Linuksa od dawna umożliwiają aktualizację komponentów systemu niezależnie od pełnych aktualizacji systemu, ale Android zawsze wymagał aktualizacji systemu, aby je zaktualizować. Firma Google zdecydowała się nie dystrybuować tych pakietów przy użyciu tradycyjnych systemów zarządzania pakietami dla Linuksa, takich jak dpkg i obr./min, ponieważ nie chronią one pakietów po instalacji przy użyciu dm-verity.
Ponieważ wdrażanie aktualizacji zajmuje producentom urządzeń dużo czasu, wiele urządzeń może mieć nieaktualne komponenty systemu przez dni, tygodnie, a nawet miesiące. Dystrybuując te komponenty w postaci pakietów APEX, Google może ominąć długie oczekiwanie na wprowadzenie aktualizacji systemu przez producentów OEM.
Google nie sprawuje jednak całkowitej kontroli nad wszystkimi komponentami systemu. Firma współpracowała ze swoimi partnerami OEM w celu wybrania zestawu aplikacji systemowych (jako plików APK) i komponentów systemu (jako APEX pakiety) w celu modułyzacji, aby mogły poprawić bezpieczeństwo, prywatność i spójność dla wszystkich użytkowników urządzeń, z których uruchamia się Androida Q. Chociaż firma Google nie ujawniła dokładnie, w jaki sposób opracowano początkowy zestaw komponentów systemu, faktycznie to zrobiła dostarczył nam listę komponentów systemowych na urządzeniach z systemem Android Q, które będą aktualizowane do dnia Google:
- Bezpieczeństwo: Kodeki multimedialne, komponenty Media Framework, narzędzie do rozpoznawania nazw DNS, Conscrypt
- Prywatność: Interfejs dokumentów, kontroler uprawnień, ExtServices
- Konsystencja: dane strefy czasowej, ANGLE (opcja programisty), metadane modułu, komponenty sieciowe, logowanie do portalu przechwytującego, konfiguracja uprawnień sieciowych
Natychmiastowe aktualizacje Conscrypt, biblioteki zabezpieczeń Java i komponentów multimedialnych, które „odpowiadały za prawie 40% ostatnio załatanych luk”, sprawią, że urządzenia z Androidem będą bezpieczniejsze. Aktualizacje kontrolera uprawnień poprawią prywatność. Standaryzacja danych dotyczących strefy czasowej pomoże zapewnić, że urządzenia z Androidem na całym świecie będą zawsze informowane o tym samym, gdy dany kraj zdecyduje się zmienić swoją strefę czasową. Co więcej, twórcy gier odniosą korzyści ze standaryzacji KĄT.
Google zaczyna od tych komponentów systemu, ale może dodać ich więcej w przyszłych wersjach Androida. Spośród tych 13 komponentów Conscrypt, dane strefy czasowej, kodeki multimedialne i komponenty Media Framework zostaną dostarczone w postaci pakietów APEX. Pozostałe 9 komponentów to systemowe pliki APK. Chociaż zarówno pliki APEX, jak i APK można dostarczać za pośrednictwem Google Play, aktualizacja pakietu APEX będzie wymagało ponownego uruchomienia. Google nie udostępnił jeszcze przebiegu interfejsu użytkownika, jak to się stanie, ale gdy urządzenia zaczną się uruchamiać z Androidem Q, prawdopodobnie dowiemy się więcej informacji o pakietach Project Mainline i APEX.