Uued Android 11 seadmed ei pruugi sujuvate värskenduste jaoks virtuaalset A/B-d toetada

Google loobus nõudmisest, et originaalseadmete tootjad toetaksid uutes Android 11 seadmetes virtuaalset A/B-d, mis oleks sillutanud teed sujuvatele värskendustele.

Värskendus 1 (25.01.2021 kell 14:06 ET): Enne Android 11 väljaandmist näib Google olevat tagasi võtnud nõudmise, et käivitusseadmed toetaksid virtuaalset A/B-d. Lisateabe saamiseks klõpsake siin. Allpool on säilinud artikkel 7. aprillil 2021 avaldatud kujul.

Android 7.0 Nougatiga tutvustas Google tarkvaravärskenduste kiirendamiseks mõeldud partitsiooniskeemi. Nougatis lisas Google teatud partitsioonide dubleerimise toe, nii et passiivseid partitsioone saaks taustal värskendada ja seejärel kiire taaskäivitusega aktiivseks vahetada. See "A/B-partitsiooni" seadistamine võimaldab "tõrgeteta värskendusi" toimuma toetatud Android-seadmetes, sarnaselt Google'i Chrome OS-iga. Google ei ole aga kunagi lubanud kasutada A/B-sektsioone, nii palju seadmeid, mis ei toeta sujuvaid värskendusi. See võib aga Android 11 puhul muutuda, kuna Google muudab äsja käivitatud seadmete jaoks kohustuslikuks virtuaalsete A/B-sektsioonide toetamise.

Tausta jaoks viitavad A/B-partitsioonid dubleeritud kirjutuskaitstud partitsioonide komplektile. Dubleeritud partitsioonid hõlmavad tavaliselt süsteemi-, tarnija-, alglaadimis- ja tootesektsioone. Kui telefon laadib värskenduse alla, paikab värskendaja taustal passiivse partitsioonide komplekti (ühe "pesa"). Kui värskenduse rakendamine passiivsele pesale on lõpetatud, palutakse kasutajal seade taaskäivitada. Kui kasutaja oma seadme taaskäivitab, vahetab passiivne pesa koha aktiivse pesaga, lõpetades värskendusprotsessi. Kui äsja värskendatud pesa käivitamisel on probleeme, jäetakse varem aktiivne pesa puutumata. Kui järgmine värskendus ilmub, korratakse seda protsessi. Kui olete huvitatud tehnilisemast selgitusest, vaadake Google'i arendaja dokumentatsiooni A/B vaheseintel.

Seevastu A/B-sektsioonideta seadmed, nagu Samsung Galaxy S20, OPPO Find X2 ja paljud teised, rakendavad taasteprotsessis värskendusi spetsiaalse värskendaja kaudu. See jätab kasutaja Androidist välja ja ei saa mitu minutit oma seadet kasutada, mistõttu võivad olulised märguanded, kõned või tekstsõnumid puududa. Google usub, et värskendamisprotsessi lihtsustamine viib selleni, et rohkem inimesi kasutab värskendust pärast selle väljalaskmist. tegelikult 2017. aasta mais Google leidis selle uusimat turvavärskendust kasutas suurem protsent Pixeli kasutajatest kui Nexuse kasutajatest. Muidugi saab kasutaja ajastada värskenduste toimumist, kui ta oma seadet aktiivselt ei kasuta, kuid paljud kasutajad lihtsalt ei värskenda oma seadet isegi siis, kui seda küsitakse. Lisaks, kui kasutajal pole A/B-sektsioone, jätab kasutaja ilma ühest selle loomupärasest eelisest: kaitsmisest vigaste süsteemivärskenduste eest.

Näiteks kui Xiaomi esmakordselt käivitati Android 10 värskendus Mi A2 Lite'i puhul avastasid paljud kasutajad, et nende seadmed ei käivitu. Nende õnneks on Mi A2 Lite'il A/B-partitsioonid sujuvate värskenduste jaoks meie foorumites leidsid kasutajad et nad saaksid kasutada kiirkäivituskäsku, et seada alglaadur käivitama puutumata, varem aktiivset partitsioonide komplekti. Seega ei võimalda A/B-partitsioonid kasutajatele palju kiiremat värskendamisprotsessi, vaid toimivad ka vigaste värskenduste tõrkekindlana. OEM-id, kes pole A/B-sektsioone juurutanud, saavad siiski välja töötada oma viisi OTA eest kaitsmiseks tõrkeid, kuigi milleks neid probleeme läbi elada, kui see kaitse on osa A/B disainist vaheseinad? Siin on teie teadmiseks osaline (ja tõsi, aegunud) A/B-sektsioone toetavate seadmete loend sujuvate värskenduste jaoks ja siin on õpetus kuidas kontrollida, kas teie seade seda funktsiooni toetab.

Võib tunduda mõistatuslik, miks teatud originaalseadmete tootjatele meeldib Samsung küsib nutitelefoni eest 1400 dollarit, kuid ei paku nii vahvat funktsiooni. Põhjus peitub tavaliselt salvestusruumis: originaalseadmete tootjad ei taha ohverdada mõnda gigabaiti salvestusruumi, et toetada sujuvaid värskendusi. Telefonidel nagu Samsung Galaxy S20 on a tonn eelinstallitud tarkvara, nii et partitsioonide, nagu /system ja /product, dubleerimine toob kaasa paljude tohutute failide ja rakenduste dubleerimise. Google suutis juurutada A/B-sektsioonid, ohverdamata liiga palju salvestusruumi tänu nutikale trikile massiivsete .odex-failide dubleerimise probleemi lahendamiseks. Teine põhjus, miks originaalseadmete tootjad võisid A/B-sektsioone mitte rakendada, on kulu: Google'i omadega sammu pidamine Androidi partitsiooniskeemide pidev muutmine nõuab XDA tunnustatud arendajana palju pingutusi topjohnwu ütleb sulle. Kui originaalseadmete tootjaid ei sunnita, ei viitsi paljud muuta seda, mis nende jaoks juba töötab.

Lõpuks näib aga, et Google kehtestab Android 11-s seaduse. Sundides äsja käivitatud seadmetes kasutusele võtma virtuaalsed A/B-sektsioonid, on nad kõik vaid kindlad, et originaalseadmete tootjad peavad toetama oma 2020. aasta lõpu ja 2021. aasta seadmete sujuvaid värskendusi. Nagu märkas XDA tunnustatud arendaja luca020400, Yifan Hong, Google'i tarkvarainsener Project Treble'i meeskonnas, esitas AOSP Gerritile kohustuse pealkirjaga "Nõua virtuaalset A/B-d R-käivitamiselKinnitus värskendab Vendor Test Suite'i ehk VTS-i, mis on automatiseeritud test, mille kõik seadmed peavad läbima, et neid Project Treble'iga ühilduvaks lugeda. Uus test kontrollib, kas süsteemi atribuut "ro.virtual_ab.enabled" on seatud tõeseks ja kui "ro.virtual_ab.retrofit" on seatud väärtusele Väär seadmetes, mille tarne API tase on 30 või kõrgem. Teisisõnu kontrollib see test, kas Android 11 või uuema versiooniga käivitatav seade toetab virtuaalseid A/B-sektsioone. "Virtuaalsed" A/B-partitsioonid tutvustati Android 10-ga koos dünaamiliste partitsioonidega, mis on dünaamiliselt muudetavad partitsioonid. Need on sama kontseptsioon nagu tavalised A/B-sektsioonid, välja arvatud juhul, kui nende suurust saab vabalt muuta.

Kui seade, mis käivitub operatsioonisüsteemiga Android 11, ei toeta virtuaalseid A/B-sektsioone, siis see ebaõnnestub VTS-is. Kui seade ei tööta VTS-iga, ei saa seda Google'i mobiiliteenustega tarnida. Teisisõnu, Google on tegelikult nõudnud originaalseadmete tootjatelt virtuaalsete A/B-sektsioonide ja laiemalt sujuvate värskenduste toetamist.


Värskendus: Android 11 jaoks pole virtuaalset A/B-d vaja

Kui me aprillis esimest korda teatasime, et Google nõuab kõigi Android 11 käivitusseadmete toetamist virtuaalne A/B värskendusmehhanism, oli põnevust palju, sest see oleks viimaks muutnud Samsungi telefonid sujuvaks uuenduseks. Kahjuks selgub, et Google otsustas virtuaalset A/B tuge mitte nõuda. Android 11 Ühilduvuse definitsiooni dokument (CDD) on praegu kirjas "seadme juurutused PEAKSID toetama A/B süsteemivärskendusi", mitte "PEAB" tuge. Näib, et mingil hetkel enne Android 11 väljaandmist otsustas Google tagasi lükata oma otsuse nõuda virtuaalset A/B tuge, tõenäoliselt kell mitme originaalseadmete tootja korraldusel. Seda juhtub üsna sageli, kuid seda ei edastata kunagi avalikkusele, kuna avaldatakse ainult CDD lõplik kavand võrgus.