Google ustoupil od požadavku, aby OEM podporovali virtuální A/B na nových zařízeních Android 11, což by připravilo cestu pro bezproblémové aktualizace.
Aktualizace 1 (25. 1. 2021, 14:06 ET): Před vydáním Androidu 11 se zdá, že Google ustoupil od požadavku, aby spouštěcí zařízení podporovala virtuální A/B. Pro více informací klikněte sem. Článek ve znění zveřejněném 7. dubna 2021 je zachován níže.
S Androidem 7.0 Nougat představil Google schéma oddílů určené k urychlení aktualizací softwaru. V Nougatu Google přidal podporu pro duplikování určitých oddílů, aby se neaktivní oddíly mohly aktualizovat na pozadí a poté rychle restartovat za aktivní. Tento Nastavení "A/B oddílu" umožňuje "bezproblémové aktualizace" probíhat na podporovaných zařízeních Android, podobně jako Chrome OS od společnosti Google. Google však nikdy nenařizoval použití A/B oddílů, takže existuje mnoho zařízení, která nepodporují bezproblémové aktualizace. To by se však s Androidem 11 mohlo změnit, protože Google povinně u nově spuštěných zařízení podporuje virtuální oddíly A/B.
Pro trochu pozadí se oddíly A/B týkají sady oddílů pouze pro čtení, které jsou duplikovány. Duplicitní oddíly obvykle zahrnují systémový oddíl, oddíl dodavatele, spouštěcí oddíl a oddíl produktu. Když telefon stahuje aktualizaci, aktualizátor opravuje neaktivní sadu oddílů (jeden „slot“) na pozadí. Po dokončení aplikace aktualizace na neaktivní slot je uživatel vyzván k restartování zařízení. Když uživatel restartuje své zařízení, neaktivní slot vymění místo s aktivním slotem a dokončí se proces aktualizace. Dříve aktivní slot zůstane nedotčen, pokud dojde k problému se zaváděním nově aktualizovaného slotu. Když se objeví další aktualizace, tento proces se opakuje. Pokud máte zájem o techničtější vysvětlení, naleznete v dokumentaci pro vývojáře Google na A/B oddílech.
Naproti tomu zařízení bez oddílů A/B, jako je Samsung Galaxy S20, OPPO Find X2 a mnoho dalších, používají aktualizace prostřednictvím vyhrazeného aktualizačního programu v procesu obnovy. To uživatele vykopne z Androidu a znemožní mu několik minut používat své zařízení, případně mu budou chybět důležitá upozornění, hovory nebo SMS. Google věří, že zjednodušení procesu aktualizace vede k tomu, že po zavedení aktualizace skutečně provede více lidí; ve skutečnosti v květnu 2017 Google to našel vyšší procento uživatelů zařízení Pixel než uživatelů zařízení Nexus používalo nejnovější aktualizaci zabezpečení. Uživatel samozřejmě může naplánovat aktualizace tak, aby proběhly, když své zařízení aktivně nepoužívá, ale mnoho uživatelů jednoduše neaktualizuje své zařízení, ani když jsou k tomu vyzváni. Navíc tím, že uživatel nemá A/B oddíly, přichází o jednu z jeho inherentních výhod: ochranu před zpackanými aktualizacemi systému.
Například když Xiaomi poprvé spustila aktualizaci na Android 10 u Mi A2 Lite mnoho uživatelů zjistilo, že se jejich zařízení nespouštějí. Naštěstí pro ně má Mi A2 Lite oddíly A/B pro bezproblémové aktualizace, takže uživatelé na našem fóru našli že mohli použít příkaz fastboot k nastavení bootloaderu tak, aby spouštěl nedotčenou, dříve aktivní sadu oddílů. Oddíly A/B tedy nejenže poskytují uživatelům mnohem rychlejší proces aktualizace, ale také fungují jako pojistka proti chybným aktualizacím. Výrobci OEM, kteří neimplementovali A/B oddíly, si stále mohou navrhnout vlastní způsob ochrany proti OTA selhání, i když proč se tím trápit, když tato ochrana je součástí návrhu A/B oddíly? Pro vaši informaci zde je částečný (a nepochybně zastaralý) seznam zařízení, která podporují oddíly A/B pro bezproblémové aktualizace a zde je návod jak zkontrolovat, zda vaše vlastní zařízení tuto funkci podporuje.
Může se zdát záhadné, proč se to některým výrobcům OEM líbí Samsung si za smartphone účtuje 1 400 dolarů, ale nenabídne tak šikovnou funkci. Důvod se obvykle scvrkává na úložiště: OEM nechtějí obětovat pár gigabajtů úložného prostoru na podporu bezproblémových aktualizací. Telefony jako Samsung Galaxy S20 mají a tón předinstalovaného softwaru, takže duplikování oddílů jako /system a /product povede k duplikaci mnoha velkých souborů a aplikací. Google dokázal implementovat A/B oddíly, aniž by příliš obětoval úložný prostor díky chytrému triku vyřešit problém duplikace masivních souborů .odex. Dalším důvodem, proč se OEM možná rozhodli neimplementovat oddíly A/B, jsou náklady: Držet krok s Googlem neustálé změny schémat oddílů Androidu vyžadují hodně úsilí, jak uvádí XDA Recognized Developer topjohnwu řekne ti. Pokud k tomu nebudou výrobci OEM nuceni, mnozí se nebudou obtěžovat změnou toho, co jim již funguje.
Nakonec se však zdá, že Google stanoví zákon v systému Android 11. Vynucením přijetí virtuálních A/B oddílů na nově uváděných zařízeních se všichni ujistili, že výrobci OEM budou muset podporovat bezproblémové aktualizace pro jejich zařízení na konci roku 2020 a 2021. Jak si všiml XDA Recognized Developer luca020400, Yifan Hong, softwarový inženýr společnosti Google v týmu Project Treble, předložil AOSP Gerrit závazek s názvem „Vyžadovat virtuální A/B při spuštění RPotvrzení aktualizuje sadu Vendor Test Suite neboli VTS, což je automatický test, kterým musí projít všechna zařízení, aby byla považována za kompatibilní s Project Treble. Nový test zkontroluje, zda je vlastnost systému "ro.virtual_ab.enabled
"je nastaveno na true a pokud"ro.virtual_ab.retrofit
" je nastaveno na hodnotu false na zařízeních s úrovní API pro dopravu 30 nebo vyšší. Jinými slovy, tento test kontroluje, zda zařízení se systémem Android 11 nebo vyšším podporuje virtuální oddíly A/B. „Virtuální“ oddíly A/B byly představeny s Androidem 10 spolu s „dynamickými oddíly“, což jsou oddíly s dynamickou změnou velikosti. Jedná se o stejný koncept jako běžné oddíly A/B, kromě toho, že lze libovolně měnit velikost.
Pokud zařízení, které se spouští se systémem Android 11, nepodporuje virtuální oddíly A/B, selže VTS. Pokud zařízení selže s VTS, nemůže být dodáváno s mobilními službami Google. Jinými slovy, společnost Google účinně vyžaduje, aby výrobci OEM podporovali virtuální oddíly A/B a tím i bezproblémové aktualizace.
Aktualizace: Virtuální A/B není vyžadováno pro Android 11
Když jsme v dubnu poprvé informovali, že Google vyžaduje, aby všechna zařízení Android 11 podporovala virtuální A/B aktualizační mechanismus, došlo k velkému nadšení, protože by to konečně umožnilo telefonům Samsung bezproblémové aktualizace. Bohužel se ukazuje, že Google se rozhodl nedělat virtuální A/B podporu jako požadavek. Android 11 Dokument definice kompatibility (CDD) v současnosti zní „implementace zařízení BY MĚLY podporovat aktualizace systému A/B“ spíše než „MUSÍ“ podporovat. Zdá se, že v určitém okamžiku před vydáním Androidu 11 se Google rozhodl vrátit zpět své rozhodnutí vyžadovat virtuální A/B podporu, pravděpodobně na na příkaz několika výrobců OEM. To se stává poměrně často, ale nikdy se to veřejnosti nesdělí, protože je zveřejněn pouze konečný návrh CDD online.