Unlocking the Bootloader Un bootloader este un program de nivel scăzut care este executat atunci când dispozitivul este pornit. Scopul lui

Documente similare
Update firmware aparat foto Mac Mulţumim că aţi ales un produs Nikon. Acest ghid descrie cum să efectuaţi acest update de firmware. Dacă nu aveţi încr


Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

Microsoft Word - Plus TV Analog Pro Stick Installation _Rom V1.3_.doc

Gestionarea I/E

în Tabletă convertibilă GHID DE UTILIZARE 8085 LKB001X CJB1FH002AZA

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Windows 7

Microsoft Word - 2 ES RO.doc

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

Laborator Activities În sistemul Android activitățile reprezintă echivalentul ferestrelor din Windows, fiind clase care extind clasa Activity. Spre de

Lucrarea 10


Ghid de conectare la web MFC-J825DW MFC-J835DW DCP-J925DW Versiunea 0 ROM

Microsoft Word - cap2.2.UNIX-NOS.doc

Comparație versiuni AOMEI Backupper 1 Care versiune este cea mai potrivită pentru dvs.? AOMEI Backupper este disponibil în prezent în patru ediții dif

Inserarea culorilor in tabele

Ghidul Utilizatorului GW210

Minicurs CCS C / Aplicatia1 1.Programul CCS C Compiler. Instalare.Creare proiect. Descarcati ultima versiune a programului de

10mm 50mm 10mm 10mm 10mm

客厅电脑 酷影Q1000

Înregistrator de temperatură şi umiditate AX-DT100 Instrucţiuni de utilizare

Proiectarea Sistemelor Software Complexe

Ghidul pentru utilizator

Ghid SmartTV-ro-M

AcadNet Etapa Naţională Secțiunea calculatoare, clasele Citiți cu atenție toate subiectele înainte de a începe rezolvarea. Aveți 15 minut

DCP-350C DCP-353C DCP-357C DCP-560CN Ghid de Instalare Rapidă Înainte de a putea utiliza aparatul, trebuie să configuraţi hardware-ul şi apoi să insta

PowerPoint Presentation


Laborator 3

EW-7416APn v2 & EW-7415PDn Ghid de instalare Macintosh / v2.0 0

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 3. Achizitionarea domeniilor web si a

Ghid utilizare aplicație PARKING BUCUREȘTI Aplicație PARKING BUCUREȘTI 1

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

MFC-235C MFC-260C Ghid de Instalare Rapidă Înainte de a putea utiliza aparatul, trebuie să configuraţi hardware-ul şi apoi să instalaţi software-ul. C

REVISAL Versiunea: Data release: 15 martie 2016 IMPORTANT! Distribuţia curentă (v6.0.4) a aplicaţiei Revisal conţine nomenclatorul COR ISCO 08 î

H Romanian SAVER EVO MANUAL

Ch

PowerPoint Presentation

Microsoft Word - Laboratorul 3.doc

Ghid de Referință Explicații sumare ale operațiunilor de rutină HL-L2312D HL-L2357DW HL-L2352DW HL-L2372DN HL-L2375DW Brother recomandă să păstrați ac

Raportarea serviciilor de dializă la nivel CNAS

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Modulul 1 M1-2.3 Protocoale şi servicii în reţea În acest capitol ne propunem să abordăm următoarele: Protocoalele şi aplicaţiile folosite în reţelele

Microsoft Word - MANUAL_APP_ROMPOS_V7.docx

A

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 1. Google Drive, Google Calendar, WeTr

fm

DCP330C_540CN_QSG_ROM.book

Laborator02

Laborator - Configurarea Rutelor IPv4 Statice și Implicite Topologie Tabela de Adresare Echipame nt Interfață Adresă IP Masca de subreţea Default Gate

CABINET MINISTRU

Manual de utilizare Descrierea produsului Structura produsului 1) Butonul SUS (UP) 2) MENIU 3) Butonul JOS (DOWN) 4) Interfața USB 5) Cameră 6) Difuzo

GHID PENTRU RESETAREA PAROLEI Informații Generale Din dorința de a facilita procesul de autentificare, chiar dacă nu mai cunoașteti datele necesare, a

User Guide

Ghid Web connect DCP-J4120DW MFC-J4420DW MFC-J4620DW MFC-J5320DW MFC-J5620DW MFC-J5720DW

Creational design patterns

Gestiunea serviciilor de recuperare a sănătăţii în sanatorii şi preventorii

Microsoft PowerPoint - 11_USO_curs_08.ppt [Compatibility Mode]

Regulile jocului Hotline Hotline este un slot video cu 5 role, 3 rânduri și 30 de linii (fixe) care conține simboluri Wild și Expanding Wild, Re-Spins

Control no:

Microsoft Word - Curs_07.doc

E_d_Informatica_sp_SN_2014_bar_10_LRO

MIdland CT210 manual

Slide 1

MANUAL DE UTILIZARE TERMOSTAT DE CAMERĂ EBERLE INSTAT PLUS 3R Cod produs: I. Instrucţiuni de utilizare Manevrarea produsului (privire de ansamb

Microsoft Word - Excel_3.DOC

Prezentarea PC-ului portabil Ghidul pentru utilizator

QUICK START GUIDE

HONEYWELL AWARD

Curs de formare Informatică și TIC pentru clasa a V-a Portofoliu pentru evaluarea finală Tema: ELEMENTE DE INTERFAŢĂ ALE UNUI SISTEM DE OPERARE (DESKT

Înregistraţi produsul achiziţionat şi veţi putea beneficia de suport pe pagina CD250 CD255 SE250 SE255 Ghid de iniţiere rapidă

Metode API - integrare FGO v.2.5 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 5 EMITERE... 5 PRINT... 6 S

Addendum Syllabus 6 Microsoft Access 2016 REF Syllabus 6.0 Cunoașterea domeniilor în care se utilizează bazele de date Datorită potenţialului ma

Microsoft Word - Politică de cookie-uri OK_v1.docx

Microsoft Word - lab-fr_3

TM200 Live Tour guide Sistem audio mobil Sistemul de comunicare audio Tour guide este util in cel putin 3 situatii si vine cu avantaje clare: 1) Cand

Lucrarea nr

Biomedical Wi-Fi data transmissons

BC-2000 Control Acces

客厅电脑 酷影Q1000

Transmisia datelor multimedia in retele de calculatoare <Titlu Lucrare>

PowerPoint Presentation

Echipamente de tip Glitel Identificarea Model-ului și Hardware version al echipamentului: Deschidem web browserul (Internet Explorer, Opera, Mozila, G

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

Spitale CJAS

Microsoft Word - MI_05_009_Prescriere_1.doc

Manual Utilizare SEPA DD

1. Depistarea setarilor de retea necesare Primul pas pentru introducerea in retea a DVR-ului este determinarea setarilor de retea cu care lucreaza ret

Ghid de depanare Modelele dc5700 PC uri de birou HP Compaq

Manual de utilizare a Sistemului Informațional al Institutului Național al Justiției (SI INJ) intranet.inj.md Ver.2 Manual de utilizare a Sistemului I

Microsoft Word _POO_Lab_1_Modificari_v01.htm

Ghid de referinţă rapidă pentru Seria ZT400™

MANUAL ULTRA ORIENTEERING CLASAMENTE SOFTWARE VERSION 1.0

Cuprins Primii pași...2 Introduceți cardul SIM...2 Introduceți cardul Micro SD...2 Instalare baterie...3 Încărcaţi bateria sau conectaţi-vă la un calc

Информационная система персонализации, печати и учета документов об образовании

CL2009R0976RO bi_cp 1..1

Ghid de asistenţă Aparat de comandă pentru aparatul foto CCB-WD1 Ghidul de asistenţă conţine instrucţiuni privind modul de utilizare a produsului sau

Transcriere:

Unlocking the Bootloader 4. 5. 6. 7. Un bootloader este un program de nivel scăzut care este executat atunci când dispozitivul este pornit. Scopul lui principal este de a inițializa hardware-ul, de a identifica și încărca sistemul de operare principal. Bootloader-ul Android-ului este de obicei blocat (locked) și va permite doar bootarea și instalarea imaginilor de sistem care au fost semnate de către producătorul dispozitivului. Asta ne asigură faptul că pe dispozitiv rulează doar un sistem de operare de încredere și nemodificat. Majoritatea utilizatorilor nu vor dori să modifice sistemul de operare ce rulează pe dispozitivele lor. Dar anumiți utilizatori vor dori să instaleze o versiune custom de Android sau cea mai recentă versiune de Android (pe dispozitivele vechi care nu mai primesc actualizări de la producător). Pentru a putea face aceste lucruri este nevoie de deblocarea bootloader-ului. Multe dispozitive vor permite deblocarea bootloader-ului folosind fastboot. Conectarea la dispozitiv se face folosind un cablu USB, ceea ce va permite trimiterea comenzilor prin utilitarelor adb și fastboot. Primul pas este repornirea dispozitivului în modul fastboot, ori folosind comanda adb reboot bootloader, ori apăsând o combinație de taste în timpul boot-ării. Mai exact pentru deblocare se va da comanda fastboot oem unlock, care va afișa o cerere de confirmare pe ecranul dispozitivului. Mesajul afișat ne va anunța că deblocarea bootloader-ului va permite instalarea unor versiuni de Android netestate/nesigure, și faptul că vor fi șterse toate datele utilizatorului (formatată partiția userdata, din motive de securitate). Bootloader-ul poate fi blocat din nou prin comanda fastboot oem lock. Ceea ce va duce la revenirea bootloader-ului la starea inițială, în care scrierea sau boot-area imaginilor custom nu este permisă. Pe lângă flag-ul de locked/unlocked, unele bootloader-e mai au un flag adițional numit tampered care va fi setat atunci când bootloader-ul a fost deblocat prima oară. Astfel vor putea fi interzise anumite operații după ce acest flag a fost setat, sau va fi afișat un warning.

8. Pe unele dispozitive este suficientă activarea unei opțiuni din setări pentru a obține OEM unlocking. Întâi se va activa Developer Options prin apăsarea unui număr de ori pe Build number Apoi, din Developer Options, se va activa OEM unlocking. Fastboot 10. 11. 12. 13. Utilitarul fastboot are scopul principal de a scrie întregi partiții: imaginea partiției este trimisă la bootloader, care o scrie pe un anumit dispozitiv bloc. În mod normal, acest lucru este foarte util atunci când portăm Androidul pentru un nou dispozitiv și atunci când facem factory reset (când scriem imaginea inițială provenită de la producător). Dispozitivele Android au multe partiții. Se pot lista toate partițiile unui dispozitiv prin listarea fișierelor din directorul by-name corespunzător platformei respective, din /dev/block/platform. Aici aveți un exemplu de astfel de listare pentru un Samsung Galaxy S7 Edge (este doar o parte din output). Putem vedea partițiile BOOT, SYSTEM, USERDATA, RECOVERY, etc. Majoritatea partițiilor conțin date specifice dispozitivului și proprietare, de exemplu bootloader-ul de obicei stocat în partiția aboot, software baseband în partiția modem. Sistemul de operare este stocat pe partiția boot (kernel, RAM disk) și partiția system (toate celelalte fișiere de sistem). Fișierele utilizatorului sunt stocate pe partiția userdata. Fișierele temporare (pachete OTA, comenzi pentru recovery OS) sunt stocate pe partiția cache. Recovery OS se află pe partiția recovery. Protocolul fastboot funcționează peste USB (dispozitivul mobil este conectat la stație printr-un cablu USB) și este gestionat de către stație. Stația trimite comenzi text și date către bootloader. Bootloader-ul răspunde cu mesaje de status OKAY, FAIL; trimite mesaje ce conțin informații și care încep cu INFO; sau mesaje ce încep cu DATA - ce înseamnă că bootloader-ul poate primi date de la stație.

14. 15. 16. 17. Utilitarul fastboot va permite scrierea sau boot-area imaginilor custom doar dacă bootloaderul este deblocat. Comanda fastboot devices permite obținerea unei liste de dispozitive conectate (care permit comunicarea prin protocolul fastboot). Comanda fastboot getvar permite obținerea informațiilor despre bootloader. Comanda fastboot reboot permite restartarea dispozitivului iar fastboot reboot-bootloader va restarta dispozitivul în modul fastboot Comenzile fastboot erase/format pentru ștergerea și formatarea unei partiții Comanda fastboot oferă diferite moduri de a scrie o imagine pe o partiție. Comanda fastboot flash partition image va scrie acea imagine pe acea partiție specifică (de exemplu fastboot flash system system.img). Comanda fastboot update zipfile va scrie toate imaginile conținute în fișierul zip pe partițiile aferente. Comanda fastboot flashall va scrie imaginile boot.img, system.img și recovery.img din directorul curent pe partițiile aferente. Comanda fastboot flash:raw boot kernel ramdisk va crea o imagine de boot folosind fișierele specificate (kernel, RAM disk) și va scrie imaginea pe partiția de boot. În plus față de scrierea imaginilor, fastboot permite si boot-area imaginilor fără scrierea lor pe dispozitiv. Comanda fastboot boot boot-image va boota o imagine de boot fără a o scrie. Comanda fastboot boot kernel ramdisk - va creea o imagine de boot folosind fișierele specificate și o va boota. Comenzile care scriu imagini sau bootează imagini custom nu vor fi permise dacă bootloaderul este blocat. Aici avem câteva comenzi fastboot date atunci când era conectat un telefon Pixel XL. Prima comandă listează numerele seriale ale tuturor dispozitivelor conectate la stație (și aflate în modul fastboot). Următoarele comenzi obțin versiunile de bootloader și de baseband de pe dispozitiv. Dispozitivele de la Samsung nu oferă suport pentru fastboot. Imaginile trebuie scrise folosind programul Odin (pe Windows), atunci când dispozitivul este în modul Download/Odin. Aici aveți un screenshot al programului Odin. De obicei se dă o arhivă care include și un md5 (tar.md5) care conține imaginile ce urmează a fi scrise (AP) și apoi se apasă pe Start.

19. Recovery OS este un sistem de operare minimal bazat pe Linux De obicei este folosit pentru factory reset (ștergerea partiției userdata) și pentru actualizări OTA. Aceste operații nu pot fi făcute din sistemul de operare principal. Modul recovery poate fi accesat ori folosind comanda adb reboot recovery, ori folosind o combinație de taste în timpul boot-ării. Dispozitivul vine cu un recovery stock, dar putem scrie și un recovery custom care oferă multe funcționalități adiționale (dar necesită deblocarea bootloader-ului și scrierea imaginii de recovery din modul fastboot). 20. 21. Un recovery stock (de la producător) oferă o funcționalitate minimală, cu scopul de a actualiza software-ul de sistem, fără a șterge datele utilizatorului. Recovery-ul stock oferă un UI minimal, simplu, sub forma unui meniu, care este folosit prin intermediul butoanelor fizice (de obicei butoanele Power, Volume Up și Down). Meniul include opțiunile: reboot, apply update from ADB, factory reset și wipe cache partition. Opțiunea apply update from ADB va permite actualizarea prin adb sideload (tethered). Un recovery custom este creat de o entitate third party (nu de către producătorul dispozitivului). Acesta nu va fi semnat cu cheia producătorului. De aceea, bootloader-ul va trebui deblocat pentru a scrie sau boota acest recovery custom. Pentru a boota un recovery custom putem folosi comanda fastboot boot recovery.img. Iar pentru a scrie pe dispozitiv, comanda fastboot flash recovery recovery.img. 22. Un recovery custom oferă funcționalități avansate, care nu sunt disponibile într-un recovery stock: Backup și restaurare a partițiilor întregi. Shell root cu acces la utilitare de gestiunea dispozitivului Suport pentru montarea dispozitivelor USB externe Dezactivarea verificării semnăturii pachetelor OTA (ceea ce permite modificarea sistemului de operare sau instalarea unor build-uri custom). 23. 24. Recovery-ul custom care are cele mai multe funcționalități și este activ dezvoltat este Team Win Recovery Project (TWRP). Acesta este bazat pe recovery-ul stock AOSP și continuă să fie open source. Oferă o interacțiune pe bază de touch screen.

Oferă suport backup-ul partițiilor criptate Poate instala actualizări de sistem de pe dispozitive USB Poate face backup și restaurare pe/de pe dispozitive externe Include un manager de fișiere integrat Și oferă un limbaj de scripting pentru a descrie acțiunile ce trebuie executate la bootarea în recovery. System Updates 26. 27. 28. Un recovery stock de obicei implementează atât actualizări OTA, cât și actualizări tethered. În cazul actualizărilor OTA, sistemul de operare principal va downloada fișierul cu actualizarea și va comanda recovery-ul să o aplice. În cazul actualizărilor tethered, utilizatorul va downloada fișierul cu actualizarea pe stația lui, și o va trimite la recovery folosind comanda adb sideload. Procesul efectiv de actualizare este identic în ambele cazuri. Deci diferă doar modul de obținere a fișierului cu actualizarea (arhiva OTA). Sistemul de operare principal poate controla recovery-ul prin API-ul oferit de android.os.recoverysystem. Acest API va comunica cu recovery-ul prin scrierea unor comenzi (string-uri) în fișierul /cache/recovery/command. Conținutul acestui fișier este automat citit de către procesul /sbin/recovery atunci când dispozitivul bootează în modul recovery. Avem aici câteva opțiuni: -update-package = verify and install OTA package -send-intent = după ce este finalizata acțiunea din recovery, la rebootarea în sistemul de operare principal, se va trimite acest Intent -wipe-data = șterge partițiile userdata și cache, apoi reboot -wipe-cache = șterge patiția cache, apoi reboot Dispozitivul mobil va verifica periodic serverele OTA pentru actualizări. Atunci când o nouă actualizare este disponibilă, va obține URL-ul pachetului OTA și o descriere care va fi afișată utilizatorului. Apoi va downloada pachetul pe partiția cache sau data. Va verifica semnătura și va întreba utilizatorul dacă este de acord să instaleze acea actualizare.

29. Packetele OTA sunt code-signed, cu o semnătură aplicată peste întreg fișierul (arhiva). Nu este semnat fiecare fișier în parte. Atunci când procesul de actualizare este pornit din sistemul principal, după ce s-a downloadat pachetul OTA, se va verifica folosind metoda verifypackage() din clasa RecoverySystem. Metoda primește pachetul OTA și arhivă cu certificate X.509. Dacă la apelarea metodei de verificare nu este specificată o arhivă se va lua setul implicit de certificate din sistem /system/etc/security/otacerts.zip. Dacă pachetul OTA este semnat cu o cheie privată corespunzătoare unuia dintre aceste certificate, atunci pachetul e considerat valid și sistemul va reboota în modul recovery pentru a aplica actualizarea. 30. 31. Independent de verificarea anterioara, recovery OS va verifica pachetul OTA (ca să se asigure că nu a fost modificat între timp). Verificarea se face folosind un set de chei publice integrate în imaginea de recovery. Atunci când se compilează o imagine de recovery, cheile publice sunt extrase dintr-un set de certificate de semnare OTA, convertite în format mincrypt și scrise în fișierul /res/keys. Algoritmii de criptare folosiți sunt: 2048-bit RSA cu SHA-1 (versiunile 1 și 2 de chei) sau SHA-256 (versiunile 3 și 4 de chei), ECDSA cu SHA-256 (versiunea 5 de cheie), 256-bit chei EC folosind NIST P-256 curve. Datele din pachetul OTA sunt folosite pentru a actualiza partițiile boot, system și eventual vendor, după cum este necesar Fișierul ce conține noua partiție recovery este salvat pe partiția system (deoarece nu poate fi actualizată în timp ce rulează). Apoi dispozitivul bootează normal, partiția boot este încărcată, aceasta încarcă partiția system și rulează executabilele necesare. Este comparat conținutul partiției recovery cu conținutul fișierului salvat pe partiția system. Dacă sunt diferite, atunci conținutul fișierului este scris pe partiția system. 32. Revenim asupra pașilor de actualizare mai în detaliu Recovery extrage fișierul META-INF/com/google/android/update-binary din pachetul OTA, și il rulează cu 3 parametri: versiunea de recovery API, un descriptor de pipe folosit de update-binary pentru a comunica cu recovery; calea către pachetul OTA. Update-binary extrage META-INF/com/google/android/updater-script din pachetul OTA și îl execută.

33. 34. 35. 36. Acesta este un script scris în limbajul edify și include o serie de apeluri de funcții care aplică actualizarea. Mai exact se vor copia, sterge și patch-ui fișiere se vor formata și monta volume, se vor seta permisiuni de fișiere și label-uri SELinux, etc. Câțiva pași făcuți de updater-script: Întâi montează partiția system și verifică dacă modelul dispozitivului și numărul de build sunt cele pe care le așteaptă. Dacă s-ar instala o actualizare peste un build incompatibil ar duce la brick-uirea soft a dispozitivului (stare instabilă). Dintr-un soft brick se revine doar dacă sunt rescrise complet toate partițiile. Pachetul OTA conține patch-uri binare care se aplică peste o anumită versiune de fișiere. De aceea trebuie verificat hash-ul fiecărui fișier patch-uit. În plus față de fișierele de sistem, se vor putea patch-ui și partițiile care nu conțin un sistem de fișiere, cum ar fi boot și modem. De aceea verifică și starea acestor partiții să determine dacă sunt versiunea așteptată. Apoi scriptul patch-uiește toate fișierele și partițiile care au fost verificate anterior. Extrage noul recovery în directorul /system/ Apoi se setează owner-ul, permisiunile și capabilitățile tuturor fișierelor și directoarelor care au fost modificate De asemenea sunt setate label-urile de securitate SELinux pentru ca regulile de acces să fie aplicate. Se va seta label-ul u:object_r:system_file:s0 pentru toate fișierele și directoarele modificate. Apoi scriptul patch-uiește partiția modem, care conține software-ul baseband. În final, de-montează partiția system. După ce se termină actualizarea, recovery șterge partiția cache (dacă a fost pornit cu opțiunea -wipe_cache), salvează logurile în /cache/recovery pentru a fi accesibile din sistemul de operare principal. Dacă nu au avut loc erori, este rebootat dispozitivul în sistemul de operare principal. Dacă au avut loc erori, se afișează un raport utilizatorului și se cere permisiunea să încerce din nou (reboot în recovery). Procesul de actualizare descris anterior extrage patch-ul pentru partiția recovery, dar nu îl aplică (altfel, dacă procesul de actualizare ar fi întrerupt în timp ce scrie partiția de recovery, va rezulta un sistem inutilizabil. De aceea, recovery OS este actualizat doar din main OS, după ce acesta este actualizat și bootează cu succes. Actualizarea recovery-ului se face prin serviciul flash_recovery din init.rc.

37. Acest serviciu va porni scriptul /system/etc/install-recovery.sh Serviciul compară hash-ul partiției de recovery cu cel pentru care a fost creat patch-ul. Dacă hash-ul este cel aștepatat, atunci aplică patch-ul, dacă nu, scrie un mesaj de log și se termină. 38. De la Android 5.0 au apărut actualizările OTA de tip bloc. Un block OTA consideră toată partiția ca fiind un singur fișier și aplică un singur patch binar, astfel partiția rezultată va conține exact ceea ce trebuie. Block OTA permite folosirea dm-verity pentru partiția system. 39. Atunci când se face o actualizare OTA bazată pe blocuri se va aplica actualizarea la nivel de bloc, nu la nivel de sistem de fișiere. Se folosesc 2 metode: Actualizare completă - pachet OTA de dimensiuni mari, întreaga imagine (același rezultat cu scrierea imaginii pe partiție folosind fastboot). Actualizarea incrementală - pachet OTA de dimensiuni mici, conține doar patch-uri (diferențele la nivel de bloc). 40. 41. Cea mai nouă metodă de actualizare a sistemului se numește A/B și folosește câte două seturi de partiții, numite slot-uri. Această metodă va asigura un sistem funcțional și bootabil în timpul actualizării OTA. Acest lucru va reduce șansa de a obține un sistem inutilizabil după aplicarea actualizării. Actualizarea de tip A/B se aplică în timp ce sistemul rulează normal, și utilizatorul folosește dispozitivul. Nu este nevoie de restartare decât după aplicarea actualizării, pentru a boota pe partiția actualizată. Dar bootarea nu durează mai mult decât de obicei. Dacă actualizarea eșuează, utilizatorul nu va fi afectat. El va folosi în continuare sistemul de operare vechi. Dacă actualizarea are loc cu succes dar bootarea în partiția actualizată eșuează, atunci dispozitivul va reboota pe partiția veche și utilizatorul va folosi vechiul sistem de operare. dm-verity va garanta că partiția care bootează nu conține o imagine coruptă. Dacă imaginea nou actualizată nu bootează din cauza unei actualizări eronate sau unei probleme dm-verity, atunci dispozitivul va putea boota în partiția cu vechea imagine. Există posibilitatea de a streamui actualizările către dispozitivele A/B, eliminând necesitatea de a downloada pachetul OTA înainte de instalare. Acest lucru este util mai

42. 43. 44. ales dacă dispozitivul nu are suficient de mult spațiu liber pentru stocarea întregului pachet. Metoda de actualizare A/B folosește două seturi de partiții numite sloturi (A și B). Sistemul rulează din slotul curent în timp ce partițiile din celalalt slot nu sunt folosite deloc. Când se actualizează imaginea dintr-ul slot, celalalt slot va conține un sistem funcțional și în caz de erori în urma actualizării se poate face rollback. Condiția este ca nici o partiție din slotul curent să nu fie actualizată. Un slot va avea atributul bootable dacă include un sistem funcțional care poate boota. Slotul curent ce conține sistemul care rulează este bootable, iar celalalt slot poate fi o versiune mai veche funcțională, o versiune mai nouă, sau poate conține date invalide. Un singur slot este cel activ/preferat - cel care va fi folosit de către bootloader la următoarea bootare. Atributul successful este setat în userspace, la un slot care are deja atributul bootable. Acest slot poate boota cu succes, rula și se poate actualiza. Un slot bootable care nu a fost marcat successful după mai multe încercări de bootare, va fi marcat ca unbootable de către bootloader. De asemenea, se va face activ alt slot care este bootable (care a rulat cu succes imediat înainte de actualizare).