Előfordulhat, hogy az új Android 11-es eszközök nem támogatják a virtuális A/B-t a zökkenőmentes frissítésekhez

click fraud protection

A Google visszalépett ahhoz, hogy az OEM-ek megköveteljék a virtuális A/B támogatását az új Android 11-es eszközökön, ami megnyitotta volna az utat a zökkenőmentes frissítések előtt.

1. frissítés (2021.01.25., 14:06 ET): Az Android 11 megjelenése előtt úgy tűnik, hogy a Google visszalépett attól, hogy az indítóeszközöket támogassa a virtuális A/B-t. Kattintson ide további információért. A 2021. április 7-én megjelent cikk az alábbiakban megmarad.

Az Android 7.0 Nougat rendszerrel a Google egy partíciós sémát vezetett be, amely a szoftverfrissítések felgyorsítását szolgálja. A Nougatban a Google támogatást adott bizonyos partíciók duplikálásához, így az inaktív partíciók a háttérben frissülhetnek, majd egy gyors újraindítással aktívra cserélhetők. Ez Az "A/B partíció" beállítása lehetővé teszi a "zökkenőmentes frissítést" támogatott Android-eszközökön, hasonlóan a Google Chrome OS-hez. A Google azonban soha nem tette kötelezővé az A/B partíciók használatát, így sok olyan eszköz létezik, amely nem támogatja a zökkenőmentes frissítéseket. Ez azonban változhat az Android 11-nél, mivel a Google kötelezővé teszi az újonnan piacra dobott eszközök számára a virtuális A/B partíciók támogatását.

Egy kis háttérért az A/B partíciók a duplikált írásvédett partíciók halmazára utalnak. A duplikált partíciók általában a rendszer-, szállító-, rendszerindítási és termékpartíciókat tartalmazzák. Amikor a telefon frissítést tölt le, a frissítő a háttérben foltozza az inaktív partíciókészletet (egy "helyet"). Amint a frissítés alkalmazása befejeződött az inaktív nyíláson, a felhasználó felkéri az eszköz újraindítására. Amikor a felhasználó újraindítja eszközét, az inaktív slot helyet cserél az aktív résszel, befejezve a frissítési folyamatot. A korábban aktív slot érintetlen marad, ha probléma adódik az újonnan frissített slot indításával. Amikor megjelenik a következő frissítés, ez a folyamat megismétlődik. Ha műszakibb magyarázatra kíváncsi, tekintse meg a Google fejlesztői dokumentációját A/B partíciókon.

Ezzel szemben az A/B partícióval nem rendelkező eszközök, mint például a Samsung Galaxy S20, OPPO Find X2 és még sokan mások, egy dedikált frissítőn keresztül alkalmazzák a frissítéseket a helyreállítási folyamat során. Ez kirúgja a felhasználót az Android rendszerből, és néhány percig nem tudja használni az eszközét, esetleg elveszítheti a fontos értesítéseket, hívásokat vagy szöveges üzeneteket. A Google úgy véli, hogy a frissítési folyamat leegyszerűsítése azt eredményezi, hogy többen veszik át a frissítést, miután megjelennek; valójában 2017 májusában, A Google ezt találta a Pixel-felhasználók nagyobb százaléka futtatta a legújabb biztonsági frissítést, mint a Nexus-felhasználók. Természetesen a felhasználó ütemezheti a frissítéseket, amikor nem használja aktívan eszközét, de sok felhasználó egyszerűen nem frissíti eszközét még akkor sem, ha a rendszer kéri. Ráadásul az A/B partíciók hiányával a felhasználó elszalasztja a benne rejlő előnyök egyikét: megvédi őket a hibás rendszerfrissítésektől.

Például amikor a Xiaomi először jelent meg az Android 10 frissítés a Mi A2 Lite esetében sok felhasználó felfedezte, hogy eszközei nem indulnak el. Szerencséjükre a Mi A2 Lite rendelkezik A/B partíciókkal a zökkenőmentes frissítés érdekében fórumunk felhasználói találtak hogy egy fastboot paranccsal beállíthatják a rendszerbetöltőt az érintetlen, korábban aktív partíciókészlet indítására. Így az A/B partíciók nemcsak sokkal gyorsabb frissítési folyamatot biztosítanak a felhasználóknak, hanem hibabiztosként is működnek a hibás frissítések esetén. Azok az eredeti gyártók, amelyek nem valósítottak meg A/B partíciókat, továbbra is megtervezhetik saját módszerüket az OTA elleni védelemre meghibásodások, bár miért mennénk át ezen a problémán, ha ez a védelem az A/B tervezésének része válaszfalak? Tájékoztatásul itt egy részleges (és bevallottan elavult) az A/B partíciókat támogató eszközök listája a zökkenőmentes frissítésekhez, és itt van egy oktatóanyag hogyan ellenőrizheti, hogy saját eszköze támogatja-e a funkciót.

Elgondolkodtatónak tűnhet, hogy bizonyos OEM-ek miért szeretik A Samsung 1400 dollárt kér egy okostelefonért, de nem kínál ilyen remek funkciót. Az ok általában a tárolásban rejlik: az OEM-ek nem akarnak néhány gigabájt tárhelyet feláldozni a zökkenőmentes frissítések támogatására. Az olyan telefonok, mint a Samsung Galaxy S20, rendelkeznek a tonna Az előre telepített szoftverek száma, így a partíciók, például a /system és a /product sokszorosítása rengeteg hatalmas fájl és alkalmazás megkettőzéséhez vezet. A Google-nak sikerült A/B partíciókat megvalósítania anélkül, hogy túl sokat áldozott volna a tárhelyből egy ügyes trükknek köszönhetően hogy megkerülje a hatalmas .odex fájlok sokszorosításának problémáját. Egy másik ok, amiért az OEM-ek úgy döntöttek, hogy nem alkalmazzák az A/B partíciókat, a költség: lépést tartani a Google-val Az Android partíciós sémáinak folyamatos változtatása sok erőfeszítést igényel, mint az XDA elismert fejlesztője topjohnwu megmondja. Hacsak az OEM-eket nem kényszerítik rá, sokan nem fognak azon változtatni, ami már működik számukra.

Végül azonban úgy tűnik, hogy a Google törvényt hoz az Android 11-ben. A virtuális A/B partíciók újonnan kibocsátott eszközökön való használatának kényszerével mindannyian biztosítottak arról, hogy az OEM-eknek támogatniuk kell a 2020 végi és 2021-es eszközeik zökkenőmentes frissítését. Ahogy azt az XDA elismert fejlesztője is észrevette luca020400, Yifan Hong, a Google szoftvermérnöke, a Project Treble csapatában kötelezettségvállalást nyújtott be az AOSP Gerrithez " címmelVirtuális A/B megkövetelése R indításakorA véglegesítés frissíti a Vendor Test Suite-ot vagy a VTS-t, amely egy olyan automatizált teszt, amelyen minden eszköznek át kell mennie ahhoz, hogy kompatibilis legyen a Project Treble-lel. Az új teszt ellenőrzi, hogy a rendszertulajdonság "ro.virtual_ab.enabled" igazra van állítva, és ha"ro.virtual_ab.retrofit" értéke hamis azokon az eszközökön, amelyek szállítási API-szintje 30 vagy magasabb. Más szóval, ez a teszt azt ellenőrzi, hogy az Android 11 vagy újabb rendszerrel induló eszköz támogatja-e a virtuális A/B partíciókat. A „virtuális” A/B partíciókat az Android 10-ben vezették be a „dinamikus partíciók” mellett, amelyek dinamikusan átméretezhető partíciók. Ugyanaz a koncepció, mint a hagyományos A/B partíciók, kivéve, hogy szabadon átméretezhetők.

Ha egy Android 11 rendszerrel induló eszköz nem támogatja a virtuális A/B partíciókat, akkor meghibásodik a VTS. Ha az eszköz nem működik VTS-ben, akkor nem szállítható a Google Mobile Services szolgáltatással. Más szóval, a Google gyakorlatilag megköveteli az OEM-ek számára, hogy támogassák a virtuális A/B partíciókat, és ezen túlmenően a zökkenőmentes frissítéseket.


Frissítés: A virtuális A/B nem szükséges Android 11-hez

Amikor áprilisban először beszámoltunk arról, hogy a Google megköveteli, hogy minden Android 11 indítóeszköz támogassa a virtuális A/B frissítési mechanizmus, nagy volt az izgalom, mert végre zökkenőmentes frissítéseket kaptak volna a Samsung telefonok. Sajnos kiderült, hogy a Google úgy döntött, hogy nem teszi kötelezővé a virtuális A/B támogatást. Android 11 Kompatibilitási definíciós dokumentum (CDD) jelenleg azt írja, hogy „az eszközmegvalósításoknak támogatniuk KELL az A/B rendszerfrissítéseket”, nem pedig a „KÖTELEZŐ” támogatást. Úgy tűnik, valamikor az Android 11 megjelenése előtt a Google úgy döntött, hogy visszavonja azon döntését, hogy virtuális A/B támogatást igényel, valószínűleg több OEM kérésére. Ez elég gyakran megtörténik, de soha nem adják át a nyilvánosságnak, mivel csak a CDD végleges tervezetét teszik közzé online.