Under utvecklarkonferensen Google I/O 2019 tillkännagav Google Project Mainline – ett försök att påskynda säkerhetsuppdateringar via moduler i Android Q.
Android-versionsfragmentering är en av de största utmaningarna för Google att lösa. Medan Google Pixel-smarttelefonerna är bland de säkraste smartphones på marknaden tack vare Pixels otroliga ansträngningar AOSP-ingenjörer, många andra smartphones är sårbara för utnyttjande på grund av att köra föråldrade OS-versioner eller föråldrade säkerhetskorrigeringar nivåer. Den senaste rapporten från Gartner visar att Android 9 Pie är ett otroligt säkert OS, ännu bara cirka 10% av alla smartphones släpps.
Google tar itu med versionsfragmentering med initiativ som t.ex Projekt Treble, en stor omarkitektur av Android som resulterar i en separation mellan Android OS-ramkomponenterna och leverantörens HAL-komponenter,
utökad Linux-kärna LTS, obligatoriska säkerhetsuppdateringar i 2 år och Android Enterprise Rekommenderas. På Google I/O 2019 tillkännagav företaget sitt senaste initiativ för att påskynda säkerhetsuppdateringar: Project Mainline för Android Q.Projektets huvudlinje: Uppdatering av Android Q-systemmoduler via Google Play
Under de senaste månaderna har vi spårat något som heter "APEX" i AOSP. APEX, eller Android Pony EXpress, är en ny pakettyp som liknar en APK. Istället för att inrymma en Android-applikation, men APEX är hem för ett inhemskt eller klassbibliotek, förkompilerad kod som kan anropas av Android-appar, Hardware Abstraction Layers (HAL) och Android Runtime (ART). Liksom APK kan APEX-paket serveras till användare via traditionella paketinstallationsmetoder i Android: Google Play Store/pakethanteraren eller ADB.
APEX-moduler kan användas mycket tidigare i uppstartsprocessen än APK-baserade moduler, och de backas också upp av dm-verity och Android Verified Boot för ökad säkerhet. Att montera nyttolastbilderna i APEX-paketet kräver Linux-kärnans loop-drivrutin, så enheter behöver Linux-kärna version 4.9+. Att hantera APEX-paketen kräver den nya APEX-demonen, introducerad med Android Q. Även om det är möjligt för enheter som uppgraderar till Android Q med Linux-kärna 4.4 för att stödja APEX (som Google Pixel 3), måste OEM-tillverkare slå ihop ytterligare patchar för att få det att fungera. För det mesta är det bara enheter som lanseras med Android Q som stöder Project Mainline.
GNU/Linux-distributioner har länge kunnat uppdatera systemkomponenter oberoende av fullständiga systemuppdateringar, men Android har alltid krävt en systemuppdatering för att uppdatera dem. Google valde att inte distribuera dessa paket med traditionella Linux-pakethanteringssystem som dpkg och rpm eftersom de inte skyddar paket efter installation med dm-verity.
Eftersom det tar lång tid för enhetstillverkare att lansera uppdateringar kan många enheter ha föråldrade systemkomponenter i dagar, veckor eller till och med månader. Genom att distribuera dessa komponenter som APEX-paket kan Google kringgå den långa väntan på OEM-tillverkare att rulla ut en systemuppdatering.
Google utövar dock inte total kontroll över alla systemkomponenter. Företaget har arbetat med sina OEM-partners för att välja en uppsättning systemappar (som APK) och systemkomponenter (som APEX paket) för att modularisera så att de kan förbättra säkerhet, integritet och konsekvens för alla användare med enheter som startar med Android Q. Även om Google inte har avslöjat exakt hur de kom fram till den första uppsättningen av systemkomponenter, har de gjort det gav oss listan över systemkomponenter på enheter som startar med Android Q som kommer att kunna uppdateras av Google:
- säkerhet: Mediacodecs, Media Framework Components, DNS Resolver, Conscrypt
- Integritet: Documents UI, Permission Controller, ExtServices
- Konsistens: Tidszonsdata, ANGLE (tillval för utvecklare), Modulmetadata, Nätverkskomponenter, Captive Portal Login, Network Permission Configuration
Omedelbara uppdateringar av Conscrypt, Java-säkerhetsbiblioteket och mediekomponenterna, som "stod för nästan 40 % av nyligen korrigerade sårbarheter", kommer att göra Android-enheter säkrare. Uppdateringar av behörighetskontrollen förbättrar integriteten. Att standardisera tidszonsdata kommer att vara till hjälp för att hålla Android-enheter runt om i världen på samma sida när ett land bestämmer sig för att ändra sin tidszon. Dessutom kommer spelutvecklare att dra nytta av standardiseringen av VINKEL.
Google börjar med dessa systemkomponenter men kan lägga till fler i framtida Android-släpp. Av dessa 13 komponenter kommer Conscrypt, Timezone-data, Media Codecs och Media Framework-komponenter att levereras som APEX-paket. De övriga 9 komponenterna är system-APK: er. Medan både APEX och APK kan levereras via Google Play, uppdaterar ett APEX-paket kommer att kräva en omstart. Google har inte delat gränssnittsflödet för hur detta kommer att hända än, men när enheter börjar lanseras med Android Q kommer vi troligen att lära oss mer information om Project Mainline och APEX-paket.