[Update: Not Required] Google krÀver Virtual A/B pÄ nya Android 11 -enheter, vilket banar vÀg för obligatoriska sömlösa uppdateringar

XDA Developers

Uppdatering 1 (25/01/2021 @ 14:06 ET): Innan Android 11 slÀpptes verkar Google ha gÄtt tillbaka till att krÀva att lanseringsenheter stöder virtuell A/B. Klicka hÀr för mer information. Artikeln som publicerades den 7 april 2021 finns bevarad nedan.

För lite bakgrund hĂ€nvisar A/B-partitioner till uppsĂ€ttningen skrivskyddade partitioner som dupliceras. Dubblerade partitioner inkluderar vanligtvis system-, leverantörs-, start- och produktpartitioner. NĂ€r telefonen laddar ner en uppdatering, uppdaterar uppdateraren den inaktiva uppsĂ€ttningen partitioner (en “plats”) i bakgrunden. NĂ€r uppdateringen har tillĂ€mpats pĂ„ den inaktiva platsen uppmanas anvĂ€ndaren att starta om enheten. NĂ€r anvĂ€ndaren startar om enheten byter den inaktiva platsen platsen med den aktiva platsen och avslutar uppdateringsprocessen. Den tidigare aktiva platsen lĂ€mnas orörd om det uppstĂ„r problem med att starta den nyligen uppdaterade platsen. NĂ€r nĂ€sta uppdatering rullar runt upprepas denna process. Om du Ă€r intresserad av en mer teknisk förklaring, se Googles utvecklingsdokumentation om A/B -partitioner.

DÀremot tillÀmpar enheter utan A/B -partitioner, som Samsung Galaxy S20, OPPO Find X2 och mÄnga andra, uppdateringar via en dedikerad uppdaterare i en ÄterstÀllningsprocess. Detta sparkar ut anvÀndaren frÄn Android och gör att de inte kan anvÀnda sin enhet i flera minuter, vilket potentiellt saknar viktiga meddelanden, samtal eller sms. Google tror att förenkling av uppdateringsprocessen leder till att fler faktiskt tar en uppdatering nÀr den rullar ut; faktiskt, i maj 2017 fann Google att en högre andel av Pixel -anvÀndare Àn Nexus -anvÀndare körde den senaste sÀkerhetsuppdateringen. Naturligtvis kan anvÀndaren schemalÀgga uppdateringar som ska intrÀffa nÀr de inte aktivt anvÀnder sin enhet, men mÄnga anvÀndare uppdaterar helt enkelt inte sin enhet Àven nÀr de uppmanas. Dessutom, genom att inte ha A/B -partitioner, missar anvÀndaren en av dess inneboende fördelar: att skydda dem frÄn förstörda systemuppdateringar.

Till exempel, nÀr Xiaomi först lanserade Android 10 -uppdateringen för Mi A2 Lite, upptÀckte mÄnga anvÀndare att deras enheter inte startade. Lyckligtvis för dem har Mi A2 Lite A/B -partitioner för sömlösa uppdateringar, sÄ anvÀndare pÄ vÄrt forum fann att de kunde anvÀnda ett fastboot -kommando för att stÀlla in startladdaren för att starta den orörda, tidigare aktiva uppsÀttningen partitioner. SÄledes ger inte bara A/B -partitioner anvÀndarna en mycket snabbare uppdateringsprocess, utan de fungerar ocksÄ som en felsÀkerhet för felaktiga uppdateringar. OEM -tillverkare som inte har implementerat A/B -partitioner kan fortfarande konstruera sitt eget sÀtt att skydda mot OTA -fel, men varför gÄ igenom det problemet nÀr detta skydd Àr en del av utformningen av A/B -partitioner? För din referens, hÀr Àr en delvis (och visserligen förÄldrad) lista över enheter som stöder A/B -partitioner för sömlösa uppdateringar, och hÀr Àr en handledning om hur du kontrollerar om din egen enhet stöder funktionen.

Det kan verka förbryllande varför vissa OEM -tillverkare som Samsung tar ut 1400 dollar för en smartphone men inte kommer att erbjuda en sÄ fin funktion. Anledningen brukar bero pÄ lagring: OEM -tillverkare vill inte offra nÄgra gigabyte lagringsutrymme för att stödja sömlösa uppdateringar. Telefoner som Samsung Galaxy S20 har massor av förinstallerad programvara, sÄ duplicering av partitioner som /system och /produkt kommer att leda till att mÄnga stora filer och applikationer dupliceras. Google lyckades implementera A/B -partitioner utan att offra för mycket pÄ lagringsutrymme tack vare ett smart trick för att lösa problemet med att duplicera massiva .odex -filer. En annan anledning till att OEM -tillverkare kan ha valt att inte implementera A/B -partitioner Àr kostnad: Att hÄlla jÀmna steg med Googles stÀndiga förÀndringar av Androids partitionssystem krÀver mycket anstrÀngning, som XDA Recognized Developer topjohnwu kommer att berÀtta för dig. Om inte OEM -tillverkare tvingas till, kommer mÄnga inte att bry sig om att Àndra det som redan fungerar för dem.

Slutligen verkar dock Google faststĂ€lla lagen i Android 11. Genom att tvinga antagandet av virtuella A/B -partitioner pĂ„ nyligen lanserade enheter har de nĂ€stan försĂ€krat att OEM -tillverkare mĂ„ste stödja sömlösa uppdateringar för slutet av 2020 och 2021 -enheter. Som upptĂ€ckts av XDA Recognized Developer luca020400, lĂ€mnade Yifan Hong, en programvaruutvecklare pĂ„ Google i Project Treble -teamet, ett Ă„tagande till AOSP Gerrit med titeln “Require Virtual A/B on R launches.” KommittĂ©n uppdaterar Vendor Test Suite, eller VTS, som Ă€r ett automatiserat test som alla enheter mĂ„ste klara för att anses vara kompatibelt med Project Treble. Det nya testet kontrollerar om systemegenskapen “ro.virtual_ab.enabled” Ă€r instĂ€lld pĂ„ true och om “ro.virtual_ab.retrofit” Ă€r instĂ€lld pĂ„ false pĂ„ enheter med en leverans -API -nivĂ„ pĂ„ 30 eller högre. Med andra ord kontrollerar detta test om en enhet som startar med Android 11 eller högre stöder virtuella A/B -partitioner. “Virtuella” A/B -partitioner introducerades med Android 10 tillsammans med “dynamiska partitioner”, som Ă€r dynamiskt anpassningsbara partitioner. De Ă€r samma koncept som vanliga A/B -partitioner förutom att de kan Ă€ndras fritt.

Om en enhet som startar med Android 11 inte stöder virtuella A/B -partitioner misslyckas den med VTS. Om enheten misslyckas med VTS kan den inte levereras med Google Mobile Services. Med andra ord har Google effektivt gjort det nödvÀndigt för OEM -tillverkare att stödja virtuella A/B -partitioner, och i förlÀngningen, sömlösa uppdateringar.


Uppdatering: Virtuell A/B krÀvs inte för Android 11

NĂ€r vi först rapporterade tillbaka i april att Google krĂ€ver att alla Android 11 -lanseringsenheter stöder den virtuella A/B -uppdateringsmekanismen, blev det mycket spĂ€nning eftersom det Ă€ntligen skulle ha fĂ„tt Samsung -telefoner att fĂ„ sömlösa uppdateringar. TyvĂ€rr visar det sig att Google bestĂ€mde sig för att inte göra virtuellt A/B -stöd till ett krav. Android 11: s kompatibilitetsdefinitionsdokument (CDD) lĂ€ser för nĂ€rvarande “enhetsimplementering SKA stödja A/B -systemuppdateringar” snarare Ă€n “MÅSTE” stöd. Det verkar nĂ„gon gĂ„ng före lanseringen av Android 11, Google beslutade att gĂ„ tillbaka sitt beslut att krĂ€va virtuellt A/B -stöd, troligtvis pĂ„ uppdrag av flera OEM -tillverkare. Detta hĂ€nder ganska ofta men förmedlas aldrig till allmĂ€nheten eftersom endast det slutliga utkastet till CDD publiceras online.