Visi įrenginiai, paleidžiami naudojant „Android Pie“ („Android 9“), turi palaikyti „Verified Boot“ („Android Verified Boot 2.0“, o tai leidžia apsaugoti nuo atšaukimo).
„Android Pie“ („Android 9“) ką tik šiandien transliavo „Google Pixel“, „Google Pixel 2“ ir Net ir Esminis telefonas. Mes kiek galime daugiau mokomės apie pokalbių išleidimą („Google Pixel 3 bus tik navigacija gestais!), AOSP kodo kritimasir galiausiai suderinamumo apibrėžimo dokumentas (CDD). Mes paskelbėme apie a nauja „sunkiųjų“ programų funkcija anksčiau šiandien, bet dabar nustatėme, kad „Google“ pakeitė „Android Oreo“ įdiegtos funkcijos formuluotę: apsauga nuo atmetimo. Ši funkcija įmanoma dėl Android Verified Boot 2.0 (taip pat žinomas kaip „Verified Boot“), tačiau originalios įrangos gamintojai neprivalėjo įdiegti AVB 2.0 „Oreo“ leidime. Dabar „Google“ įpareigoja, kad visi įrenginiai, paleidžiami naudojant „Android Pie“, palaikytų patvirtintą įkrovą ir, atitinkamai, atšaukimo apsaugą.
Atšaukimo apsauga „Android Oreo“.
Šios funkcijos esmė yra ta, kad ji neleis jūsų telefonui paleisti, jei aptiks, kad įrenginys buvo patobulintas į ankstesnę, dabar nepatvirtintą programinės įrangos versiją, kuri buvo laikoma nesaugia dėl saugumo pažeidžiamumas. Šiek tiek techninis paaiškinimas yra tas, kad VBMeta duomenų struktūra, kurioje yra įkrovos skaidinio maiša ir „hashtree“ metaduomenys sistemos ir tiekėjo skaidiniams, naudoja atšaukimo indeksą, kad atmestų vaizdus su senesniu atšaukimu indeksas.
Ši funkcija yra tokiuose įrenginiuose kaip „Google Pixel 2“, „Razer Phone“ ir „OnePlus 6“, tačiau jos nėra daugelyje kitų įrenginių, pvz., „Samsung Galaxy S9“ (nors „Samsung“ siūlo savo Apsauga nuo atmetimo Knox.) Dabar „Google“ padaro šią funkciją privalomą kiekvienam įrenginiui, kuris paleidžiamas naudojant „Android Pie“.
Patvirtinta įkrova „Android Pie“.
Remiantis atnaujinta formuluote suderinamumo apibrėžimo dokumento skiltyje „Įrenginio vientisumas“, įrenginiai, paleidžiami naudojant „Android 9“, turi palaikyti patvirtintą įkrovą.
9.10. Įrenginio vientisumas
Šie reikalavimai užtikrina įrenginio vientisumo būsenos skaidrumą. Įrenginio diegimas:
- [C-0-1] PRIVALO teisingai pranešti per System API metodą PersistentDataBlockManager.getFlashLockState(), ar jų įkrovos būsena leidžia mirksėti sistemos atvaizdui. Būsena FLASH_LOCK_UNKNOWN skirta įrenginių diegimams, atnaujinamiems iš ankstesnės „Android“ versijos, kur šio naujo sistemos API metodo nebuvo.
- [C-0-2] PRIVALO palaikyti patvirtintą įkrovą, kad įrenginys būtų vientisas.
Jei įrenginio diegimas jau paleistas nepalaikant patvirtinto įkrovimo ankstesnėje „Android“ versijoje ir negali pridėti palaikymo šiai funkcijai su sistemos programinės įrangos atnaujinimu, jiems GALI būti atleista reikalavimas.
...
- [C-1-10] PRIVALO įdiegti „Android“ naudojamų skaidinių (pvz., įkrovos, sistemos skaidinių) atšaukimo apsaugą ir naudoti apsaugotą saugyklą metaduomenims, naudojamiems nustatant minimalią leistiną OS, saugoti versija.
- TURĖTŲ įdiegti atšaukimo apsaugą bet kuriam komponentui su nuolatine programine įranga (pvz., modemu, fotoaparatu) ir TURĖTŲ naudoti apsaugotą saugyklą metaduomenims, naudojamiems nustatant mažiausią leistiną, saugoti versija.
Kaip matote paskutiniuose dviejuose punktų rinkiniuose, reikia atkreipti dėmesį į vieną įspėjimą. Atšaukimo apsauga reikalinga skaidiniams, kuriuos naudoja „Android“ (įkrova, sistema, pardavėjas ir kt.), bet ne skaidiniams su nuolatine programine įranga (modemu, fotoaparatu ir kt.). Ankstesniame skaidinių rinkinyje aptinkama ir pataisoma dauguma saugos spragų, todėl malonu matyti, kad šių skaidinių apsauga yra privaloma. Tačiau buvo išnaudojimų, kurie taikomi ir skaidiniams su nuolatine programine įranga, todėl nesame tikri, kodėl „Google“ neįpareigoja juose apsaugoti nuo atšaukimo.
XDA vyresnysis narys npjohnsonas, LineageOS komandos narys, spėja, kad reikalavimas atšaukimo apsaugos skaidiniuose su nuolatine programine įranga būtų reikia antrinio įkrovos įkroviklio (SBL) ir eXtensible Bootloader (XBL) susiejimo, nes šie skaidiniai įkeliami anksčiau procesas. Mažesniems originalios įrangos gamintojams būtų brangu įdiegti pritaikytus XBL, kad jie atitiktų pritaikytus modemus ir kitus nuolatinius skaidinius, taigi galbūt „Google“ to nereikalauja, kad įrenginių gamintojams būtų lengviau atitikti naujausius CDD reikalavimus.
Kaip patikrinti, ar jūsų telefonas palaiko AVB 2.0
Yra dvi ADB apvalkalo komandos, kurias galite naudoti norėdami patikrinti, ar jūsų telefonas palaiko AVB 2.0.
adb shell
dumpsys package | grep "verified_boot"
ARBA
adb shell
getprop | grep "avb"
Jei pirmosios komandos išvestis yra „android.software.verified_boot“, palaikoma AVB 2.0. Jei antrosios komandos išvestyje rodoma „[ro.boot.avb_version]“ ir „[ro.boot.vbmeta.avb_version]“ ir pateikiamas kiekvienos versijos numeris, tada ji palaikoma.
Patvirtinta įkrova ir pritaikytas kūrimas
„Android Verified Boot“ iš tikrųjų nedaro įtakos daugumai pasirinktinių ROM naudotojų, nors tai suteikia papildomo saugumo lygio, kurį kai kuriais atvejais turite apeiti. Pavyzdžiui, mirksi bendrasis sistemos vaizdas reikia išjungti AVB. Keičiant tam tikrus skaidinius, pvz., „OnePlus 6“ pardavėją, reikia išjungti ir AVB, kaip neseniai sužinojau. Pagal npjohnsonas, tinkamai įdiegta AVB 2.0 leidžia pasirinktinius įkrovos vaizdus dirbti su užrakintu įkrovos įkrovikliu. Pamatysime, kaip AVB 2.0 įtraukimas į įrenginius, kurie pristatomi su Android Pie, paveiks kraštovaizdį, bet tikimės, kad tai nesukels tokių situacijų kaip nesenas plytų išgąsdinimas „Xiaomi Redmi Note 5 Pro“ bendruomenėje. Privaloma AVB 2.0 yra tik dar vienas „Google“ būdas pagerinti Android platformos saugumą, tačiau didžiausias pokytis, mūsų nuomone, yra OĮG susitarimų pertvarkymas, kad būtų įpareigoti reguliariai pataisyti saugos pataisas.