O introducere în firmware-ul Android

Telefoanele Android și tabletele sunt, în general, mult mai deschise decât omologii lor care rulează sisteme de operare precum iOS, Tizen sau Windows 10 Mobile. Dacă nu vă place firmware-ul pe care producătorul de dispozitive le-a instalat pe dispozitivul dvs. Android, aveți libertatea să-l înlocuiți cu propriul firmware personalizat. CyanogenMod, Paranoid Android și Proiectul Pure Nexus sunt exemple de firmware personalizat care se bucură de o popularitate în rândul utilizatorilor de Android.

Firmware-ul personalizat este, de asemenea, singurul mod în care puteți instala versiuni mai noi de Android pe dispozitivele care nu mai sunt acceptate de producătorii lor. Cu excepția cazului în care dețineți un dispozitiv care aparține seriei Nexus sau Android One, sunt sigur că ați știut deja acest lucru.

În acest articol, te ajut să înțelegi ce firmware Android este într-adevăr și cum o utilizează un dispozitiv Android. De asemenea, vă prezint instrumentele pe care le puteți utiliza pentru a înlocui firmware-ul dispozitivului.

Un cuvânt de prudență

Înlocuirea firmware-ului este o operație riscantă care poate face ca dispozitivul dvs. să fie inutilizabil. În cele mai multe cazuri, de asemenea, anulează garanția dispozitivului. Asigurați-vă că aveți o copie de rezervă a datelor și o copie a imaginii din fabrică a dispozitivului dvs., înainte de a continua și experimentați cu firmware personalizat care clipește.

1. Ce este firmware-ul Android?

Inițial, firmware-ul a fost un termen folosit pentru a se referi la programe minuscule, critice de misiune instalate în memoria numai citită sau ROM a unui dispozitiv electronic. Modificarea firmware-ului a fost fie imposibilă, fie a necesitat un echipament special, care de obicei nu era accesibil utilizatorilor finali obișnuiți.

Firmware-ul Android, cu toate acestea, este foarte diferit. Acesta include întregul sistem de operare Android și este stocat într-o formă de memorie memorabilă numită memorie flash NAND, același tip de memorie care este utilizat în dispozitivele de stocare, cum ar fi stick-urile USB și cardurile SD. Cuvantul firmware este folosit numai pentru că producătorii de dispozitive nu s-au deranjat să vină cu un cuvânt nou pentru el.

Firmware-ul Android este, de asemenea, denumit adesea Android ROM deoarece, implicit, nu este posibil ca utilizatorii să-i scrie direct.

2. Ce conține Conținutul firmware-ului Android?

Firmware-ul instalat pe un dispozitiv Android de către producătorul său conține o construcție a sistemului de operare Android și două programe suplimentare sursă închisă care sunt, de obicei, de neînlocuit, o bootloader și firmware pentru radio.

Înțelegerea încărcătorilor de încărcare

Un bootloader Android este o mică bucată de cod proprietar care este responsabil pentru pornirea sistemului de operare Android când un dispozitiv Android este pornit. Cu toate acestea, bootloader-ul efectuează aproape întotdeauna o sarcină suplimentară. Verifică dacă sistemul de operare pe care îl pornește este autentic.

Cum decid ce este autentic? Verifică dacă partiția de boot a fost semnată utilizând un dispozitiv unic Cheie OEM, care este scurt pentru Producator de echipament original cheie. Cheia OEM, desigur, aparține producătorului dispozitivului, este privată și nu există nici o modalitate de a ști ce este.

Din cauza verificării autenticității, nu puteți instala direct un ROM personalizat pe un dispozitiv Android. Din fericire, în aceste zile, majoritatea producătorilor de dispozitive permit utilizatorilor să dezactiveze cecul. În jargonul Android, ele permit utilizatorilor descuia încărcătorul de boot.

Procedura exactă pe care trebuie să o urmați pentru a debloca bootloader-ul depinde de dispozitivul dvs. Unii producători, cum ar fi Sony și HTC, vă așteaptă să furnizați un jeton secret de deblocare. Alții vă așteaptă să rulați un set fix de comenzi folosind un terminal.

De obicei, un instrument numit fastboot, care face parte din Android SDK, este folosit pentru a rula comenzile de deblocare. De exemplu, dacă dețineți un dispozitiv Nexus, puteți debloca încărcătorul de boot executând următoarea comandă:

fastboot care clipește deblocat

Aflați mai multe despre fastboot mai târziu în acest articol. Rețineți că, dacă dețineți un dispozitiv care are un bootloader care nu poate fi deblocat, nu există nicio modalitate ușoară de a vă modifica sau înlocui firmware-ul.

Înțelegerea firmware-ului radio

Ar putea fi o surpriză pentru dvs., dar smartphone-ul dvs. Android rulează de fapt un alt sistem de operare pe un procesor independent denumit a procesor de bandă largă. Firmware-ul radio se referă la sistemul de operare care rulează pe procesorul de bandă de bază.

De obicei, este un RTOS, care este scurt pentru sistemul de operare în timp real, și este responsabil pentru gestionarea capabilităților radio celulare ale dispozitivului. Cu alte cuvinte, este ceea ce permite dispozitivului dvs. să efectueze apeluri și să se conecteze la internet utilizând tehnologii wireless cum ar fi 2G, 3G și 4G LTE.

RTOS este o bucată de cod și producători populari de procesoare de bază, cum ar fi Qualcomm, MediaTek și Spreadtrum, asigurându-vă că lucrările sale interne rămân secrete. Sistemul de operare Android comunica, de obicei, cu RTOS folosind prize și callback-uri.

În general, nu este o idee bună să înlocuiți firmware-ul radio al aparatului.

Înțelegerea dezvoltării Android

Construcția Android este singura parte a firmware-ului creat din codul open source. În consecință, aceasta este singura parte pe care o puteți modifica și extinde. Când auziți entuziaștii de la Android spunând: "Am aprins o nouă ROM pe dispozitivul meu", puteți fi siguri că vorbește despre o nouă construcție Android.

O construcție Android este de obicei partajată sub forma unui fișier ZIP care poate fi utilizat de către fastboot. Are următorul conținut:

update.zip | - android-info.txt | - boot.img | - recovery.img | - system.img '- userdata.img

Android-info.txt este un fișier text care specifică cerințele construirii. De exemplu, ar putea specifica numerele de versiune ale bootloader-ului și ale firmware-ului radio pe care trebuie să le construiască. Iată o mostră Android-info.txt fişier:

necesită consiliu = hering necesită versiune-bootloader = I9020XXJK1 necesită versiunea-baseband = I9020XXKD1

boot.img este un fișier binar care conține atât un kernel Linux cât și un ramdisk sub forma unei arhive GZIP. Kernel-ul este un zImage executabil boot care poate fi folosit de bootloader.

Ramdiskul, pe de altă parte, este un sistem de fișiere numai pentru citire, care este montat de kernel în timpul procesului de boot. Conține binecunoscutul init proces, primul proces inițiat de orice sistem de operare bazat pe Linux. De asemenea, conține diferiți daemoni, cum ar fi adbd și healthd, care sunt inițiate de init proces. Iată ce arborele de directoare al ramdisk se pare ca:

ramdisk / | - încărcător -> / sbin / healthd | - date | - default.prop | - dev | - file_contexts | - fstab.grouper | - init | - init.environ.rc | - - init.grouper.rc | - init.grouper.usb.rc | - init.rc | - init.recovery.grouper.rc | - init.trace.rc | - init.usb.rc | - init.zygote32.rc | - proc | - property_contexts | - sbin | | - adbd | | - sănătate | | - ueventd -> ... / init | '- watchdogd -> ... / init | - seapp_contexts | - selinux_version | - sepolicy | - service_contexts | - sys | - system | - ueventd.grouper.rc' - ueventd.rc

system.img este imaginea de partiție care va fi montată pe goală sistem directorul pe care îl puteți vedea în arborele de mai sus. Acesta conține binarele necesare pentru rularea sistemului de operare Android. Acesta include aplicațiile de sistem, fonturile, fișierele JAR-cadru, bibliotecile, codec-urile media și multe altele. Evident, acesta este fișierul pe care utilizatorii Android sunt cei mai interesați atunci când flash o nouă ROM.

Imaginea sistemului este, de asemenea, fișierul care face ca majoritatea utilizatorilor de Android să aibă un interes în flash-ul firmware-ului personalizat. Fișierele imagine de sistem furnizate de producătorii de dispozitive sunt adesea pline de aplicații și personalizări inutile, denumite informal bloatware. Singura modalitate de a elimina bloatware-ul este să înlocuiți imaginea sistemului producătorului cu o imagine de sistem mai dorită.

userdata.img este o imagine de partiție care va fi montată în gol date directorul pe care îl puteți vedea în arborele directorului ramdisk. Când descărcați un ROM personalizat, această imagine este de obicei necompletată și este utilizată pentru resetarea conținutului date director.

recovery.img este foarte asemănătoare cu boot.img. Are un fișier de kernel executabil care poate fi încărcat de bootloader și un ramdisk. Prin urmare, și imaginea de recuperare poate fi utilizată pentru a porni un dispozitiv Android. Când este folosit, în loc de Android, este pornit un sistem de operare foarte limitat, care permite utilizatorului să efectueze operații administrative, cum ar fi resetarea datelor de utilizator ale dispozitivului, instalarea firmware-ului nou și crearea de copii de rezervă.

Procedura pe care trebuie să o urmați pentru a încărca imaginea de recuperare este specifică dispozitivului. De obicei, aceasta implică intrarea în modul bootloader, de asemenea numit mod rapidboot, apăsând o combinație de chei hardware prezente pe dispozitiv, apoi selectând Recuperare opțiune. De exemplu, pe un dispozitiv Nexus trebuie să apăsați și să țineți apăsat butonul de alimentare în combinație cu butonul de reducere a volumului.

Alternativ, puteți utiliza adb, un instrument inclus în SDK-ul Android, pentru a intra direct în modul de recuperare.

adb restabilire reboot

3. Utilizarea rapidă

Cea mai ușoară modalitate de a bloca firmware-ul nou pe dispozitivul dvs. este să utilizați fastboot instrument. fastboot urmează protocolul de pornire rapidă pentru a comunica cu un dispozitiv Android. Cu toate acestea, aceasta poate fi făcută numai atunci când dispozitivul a fost pornit în modul rapid de pornire. Cea mai rapidă modalitate de a intra în modul rapid de pornire este utilizarea adb:

adb reboot bootloader

Pentru a bloca o ROM personalizat care este disponibil sub forma unui fișier ZIP care conține toate fișierele imagine pe care le-am menționat în secțiunea anterioară, puteți utiliza actualizare rapidă comanda. De exemplu, iată cum ați bloca un ROM prezent într-un fișier numit update.zip:

actualizare rapidă update.zip

Dacă doriți să blocați doar o anumită imagine, puteți face acest lucru folosind rapidă flash comanda. De exemplu, iată cum ați bloca numai imaginea sistemului:

sistem rapid flash flash system.img

În mod similar, dacă doriți să înlocuiți numai imaginea de boot, ați folosi următoarea comandă:

rapid boot flash boot.img

Este întotdeauna o idee bună să testați dacă o imagine de boot sau de recuperare funcționează înainte de ao intermite de fapt pe dispozitiv. Pentru a face acest lucru, puteți utiliza funcția boot rapid comanda. De exemplu, iată cum ați verifica dacă este apelată o imagine de recuperare personalizată twrp.img este compatibil cu dispozitivul dvs.:

boot rapid boot twrp.img

Rețineți că niciuna dintre funcțiile fastboot comenzile pe care le-am menționat în această secțiune vor funcționa dacă bootloader-ul dispozitivului dvs. nu a fost deblocat.

Concluzie

.


Cod