Mod de firmware bricolaj. Creăm firmware Android din materiale vechi

Orice utilizator de Android are propria idee despre cum ar trebui să arate sistemul de operare, ce funcții ar trebui să îndeplinească și ce set de software ar trebui să fie instalat în el în mod implicit. Cu toate acestea, nu toată lumea știe că crearea propriului firmware nu este atât de dificilă. Pentru a face acest lucru, nu este deloc necesar să înțelegeți nucleul Linux, să puteți compila surse Android sau să înțelegeți cum funcționează un smartphone.

Introducere

Există trei moduri de a crea propriul firmware pentru un comunicator Android: 1. Finalizarea și compilarea sistemului de operare din surse publicate de Google sau echipa CyanogenMod. 2. Modificarea firmware-ului stoc al comunicatorului. 3. Modificarea firmware-ului terț creat folosind prima sau a doua metodă.

Prima metodă este cea mai corectă și flexibilă, dar necesită adesea o cunoaștere destul de profundă a caracteristicilor Android și posibilitatea de a edita sursele de sistem, astfel încât acestea să funcționeze apoi pe dispozitiv. Acest subiect depășește sfera articolului nostru, așa că nu vom lua în considerare asamblarea surselor Android, ci ne vom concentra pe celelalte două metode, sau mai degrabă pe a treia.

Firmware-ul terților (așa-numitele moduri) există pentru aproape orice dispozitiv Android care a fost pe piață de cel puțin o săptămână. De obicei, acestea includ deja toate modificările necesare pentru funcționarea corectă a firmware-ului pe comunicator și, prin urmare, reprezintă o platformă excelentă pentru experimentarea sistemului. Ele pot fi modificate aproape dincolo de recunoaștere, pot include orice software în sistemul de operare, pot schimba aspectul acestuia, pot crea multe setări de nivel scăzut folosind un editor de text simplu și un manager de fișiere. Acești pași nu necesită cunoștințe profunde ale sistemului de operare și pot fi executați de orice cititor de jurnal.

Alegerea unui subiect de testare

Deci, să presupunem că comunicatorul nostru este deja înrădăcinat și consola de recuperare ClockworkMod este scrisă în zona de pornire, ceea ce vă permite să instalați orice firmware pe dispozitiv fără nicio restricție (am scris despre cum să faceți acest lucru în articolul „Subordonare totală” , publicat în numărul din octombrie al ][ ). Acum dorim să instalăm un alt firmware pe dispozitiv, și nu orice firmware, ci cu propriile noastre modificări, setări și set de software. Prin urmare, avem nevoie de un cadru, și anume firmware-ul altcuiva care să funcționeze stabil pe dispozitivul nostru. De unde o pot lua?

Habitatul principal al tuturor romodelelor este, desigur, forumurile xda-developers.com. Acolo puteți găsi tot ce aveți nevoie pentru comunicatorii care rulează iOS, Windows Mobile, Windows Phone și Android. Deschideți site-ul într-un browser, faceți clic pe secțiunea Forumuri și căutați-vă comunicatorul în listele de forumuri. Apoi, accesați secțiunea corespunzătoare a Android Development și căutați cu atenție lista de subiecte care conțin cuvântul „” în titlu. Este mai bine să găsești niște firmware curat cu un nume precum „Pure Android 2.3 Rom” sau un port CyanogenMod, deși, în esență, orice altul va face (deși poate fi necesar să anulezi modificările autorului). Deschideți subiectul, derulați prin prima postare, găsiți linkul de descărcare undeva la sfârșit și descărcați ROM-ul pe computer.

Acum trebuie să deschideți fișierul firmware. Acest lucru se face folosind cel mai comun dezarhivare:

$ mkdir ~/rom; cd ~/rom $ unzip ../path/to/firmware.zip

Structura generală a directoarelor și fișierele importante

Setul de fișiere și directoare format ca urmare a executării comenzii anterioare este, în esență, sistemul de operare Android și exact în forma în care va fi localizat în memoria NAND a dispozitivului. În funcție de versiunea de Android și de imaginația autorului, acesta poate conține diferite seturi de directoare și fișiere, dar conține întotdeauna trei obiecte necesare: META-INF, fișierul boot.img și directorul de sistem.

Primul director conține metainformații despre firmware, inclusiv fișierele certificate de autor, un manifest cu o listă de fișiere și sumele de verificare ale acestora, precum și un script de actualizare care poate crea fișiere noi în memoria NAND, poate modifica drepturile de acces și poate afișa o bară de progres pe care utilizatorii le văd în timpul instalării firmware-ului.

Fișierul boot.img conține o imagine de pornire care include nucleul Linux și imaginea initrd. Poate fi dezambalat, dar nu este deosebit de util pentru noi, deoarece aproape orice parametri de sistem pot fi modificați folosind fișierele de setări și sistemul de fișiere /proc. Dacă aveți nevoie de un nucleu construit cu parametri speciali, de exemplu cu un planificator BFS activat sau suport NFS, atunci aproape sigur îl puteți găsi pe aceiași xda-developers și îl puteți flash folosind ClockworkMod.


În cele din urmă, directorul de sistem este despre ce este vorba. Conținutul acestui director reprezintă sistemul de operare Android fără nucleul Linux. Conține tot ceea ce este necesar pentru ca sistemul de operare să funcționeze și, prin urmare, este pur și simplu necesar să-i cunoști structura. Ea arata asa:

  • aplicație - aplicații preinstalate: telefon, calculator, calendar etc.
  • bin este analog cu directoarele /bin și /usr/bin din Linux. Conține diverse componente de sistem utilizate de componentele de sistem de nivel superior. De exemplu, aici se află mașina virtuală dalvikvm.
  • etc - fișiere de setări. Un analog complet al /etc în Linux, folosit, totuși, numai de componentele sistemului. Aplicațiile Android stochează setările în directorul /data/data.
  • fonturi - fonturi. În mod implicit, conține doar fonturi marca Droid (sau Roboto în Android 4.0).
  • framework - seturi de clase Java utilizate de sistem și de software-ul Android. Există, de asemenea, un fișier framework-res.apk care conține o descriere completă a interfeței sistemului de operare, inclusiv toate fișierele grafice.
  • lib - biblioteci Linux utilizate de componentele sistemului de nivel scăzut. Un analog al directoarelor /lib și /usr/lib din Linux, include biblioteci standard precum libc (deși Android folosește propriul Bionic în loc de Glibc), libz (criptare gzip), libssl și altele.
  • media - fișiere media: tonuri de apel, sunete de notificare, sunete de interfață și fișiere de animație de pornire a sistemului de operare.
  • tts - fișiere necesare pentru ca sintetizatorul de vorbire să funcționeze.
  • usr este un director opțional care conține de obicei fișiere necesare pentru ca software-ul să funcționeze din directorul bin. În esență, un analog al lui /usr/share.
  • furnizor - fișiere furnizate de producătorul dispozitivului. De obicei, conține firmware binar pentru diferite componente hardware, de exemplu un modul Wi-Fi.
  • xbin este un director opțional care conține tot ce nu este inclus în bin. De regulă, este folosit pentru a stoca utilități utile, însă nu sunt necesare pentru funcționarea sistemului (sus, editor de text). CyanogenMod îl folosește pentru a stoca instrumente de administrare: bash, ssh, powertop, busybox etc.
  • build.prop este un fișier care conține informații despre build, precum și diverse setări de nivel scăzut.
comanda setprop

Setările build.prop prezentate în articol pot fi aplicate și unui sistem care rulează deja folosind comanda setprop:

# setprop debug.sf.nobootanimation 1

Set propriu de software

Directorul /system/app conține tot software-ul preinstalat în firmware. Înlăturând și adăugând pachete în acest director, putem schimba setul de aplicații disponibile imediat. De exemplu, nu este un secret pentru nimeni că lansatorul Android standard (și ADWLauncher în CyanogenMod) este lent și are numeroase deficiențe. OK, să-l înlocuim cu LauncherPro:

$ rm system/app/Launcher.apk $ wget goo.gl/U9c54 -o system/app/LauncherPro.apk

Și e tot. Nu trebuie să instalați nimic, nu trebuie să căutați nicăieri, doar introduceți aplicația dorită în director - și ați terminat. Chiar și numele nu contează, Android însuși va găsi aplicația de care aveți nevoie și o va seta ca ecran de pornire. În același mod, puteți introduce orice alt program în firmware sau îl puteți elimina de acolo.

Este util să puneți una dintre aplicațiile în firmware pentru găsirea unui smartphone pierdut (de exemplu, pradă), apoi chiar dacă îl resetați la setările din fabrică, acesta va rămâne în sistemul de operare și va funcționa. De asemenea, puteți înlocui unele programe de sistem, de exemplu, adăugați Dialer One în loc de Phone.apk standard sau Go SMS în loc de sms.apk.

Dar aplicațiile de sistem Linux, cum ar fi serverul ssh sau mc? Totul este simplu și aici. Puteți construi software pentru Android și procesor ARM folosind kitul NDK de la Google, dar majoritatea aplicațiilor necesare au fost deja asamblate înaintea noastră. De exemplu, dorim să preinstalăm mc în firmware-ul nostru. Accesați xda-developers și căutați Midnight Commander. Pe prima pagină găsim pachetul apk cu programul de instalare și îl despachetăm folosind același dezarhivare:

$cd/tmp; dezarhivați ~/NativnuxInstaller_1.1.apk

Vedem assets/kits/mc-4.7.5.4-arm.tar.jet în lista de fișiere despachetate. Aceasta este o arhivă tar.gz, care este dezambalată la rădăcina sistemului după instalarea pachetului apk (sau mai degrabă, după instalarea apk-ului, lansarea aplicației și apăsarea butonului Instalare). Îl putem despacheta imediat în firmware-ul nostru și obținem un mc preinstalat:

$ cd ~/rom $ tar -xzf /tmp/assets/kits/mc-4.7.5.4-arm.tar.jet

Acum, pentru a lansa managerul de fișiere pe dispozitiv, trebuie doar să deschideți un terminal și să tastați mc. Alte aplicații pot fi distribuite în arhive zip pentru flashing folosind ClockworkMod Recovery. Este și mai ușor să le plasați în modul dvs. pentru a face acest lucru, trebuie doar să mergeți la rădăcina firmware-ului (în acest caz ~/rom) și să despachetați arhiva folosind unzip.


Aspect

Firmware-ul personalizat este cel mai adesea creat pentru a schimba aspectul Android după bunul plac. Efectuarea acestei operațiuni în Android este, din nou, foarte simplă. Toate setările GUI Android sunt stocate în fișierul framework/framework-res.apk. Poate fi despachetat folosind utilitarul apktool:

$cd~; wget goo.gl/hxz5l $ tar -xjf apktool1.4.1.tar.bz2 $ cd ~/rom/system/framework $ java -jar ~/apktool.jar d framework-res.apk

Ca rezultat, în directorul curent ar trebui să apară un director framework-res care conține toate fișierele pachetului. Cele mai interesante subdirectoare din el sunt res/drawable-* și res/layout-*. Primul conține toate elementele grafice sub formă de fișiere png pentru diferite rezoluții și poziții ale ecranului. De exemplu, drawable-land-mdpi este un director cu resurse grafice pentru ecrane cu rezoluție medie care sunt în poziție peisaj (când ecranul este rotit, sistemul de operare trece la utilizarea altor fișiere). Desigur, orice fișier poate fi editat sau înlocuit cu altul.


Directoarele de aspect conțin descrieri ale elementelor grafice în format XML (de fapt sunt stocate în format binar AXML, dar apktool le-a convertit în XML obișnuit). Formatul descrierii este destul de simplu și de înțeles, dar este dificil să-l dai seama rapid, mai ales dacă nu știi unde este totul. Prin urmare, vom apela din nou la serviciile locuitorilor forumului xda-developers, care au reușit deja să vină cu o mulțime de modificări diferite pentru interfața grafică Android. Acestea pot fi găsite cu ușurință folosind interogarea de căutare „framework-res mod device_name”.

De obicei, astfel de moduri sunt distribuite sub forma unui fișier framework-res.apk gata făcut, pe care îl puteți pune pur și simplu în firmware. Dacă doriți să găsiți diferențe specifice în conținut, atunci modul poate fi dezambalat și comparat cu rezoluția dvs. de cadru folosind diff:

$ diff -R ~/framework-res \ ~/rom/system/framework/framework-res

Din păcate, în cadrul unui articol nu putem lua în considerare măcar o parte din structura internă a framework-res, așa că pentru informații mai detaliate, vă rugăm să consultați subiectul corespunzător de pe forumul w3bsit3-dns.com.

După ce ați făcut modificări, puteți construi framework-res.apk folosind același apktool. Cu toate acestea, această operațiune necesită utilitarul aapt din SDK-ul Android, pe care apktool îl folosește pentru a împacheta în cele din urmă fișierul apk. Se poate obține și separat:

$ cd ~/bin; wget goo.gl/tC7k8

Acum puteți construi fișierul:

$ cd ~/rom/system/framework $ java -jar ~/apktool.jar b framework-res $ cp framwork-res/dist/framework-res.apk . $ rm -rf framework-res

Următorul pas este schimbarea animației de încărcare. Este stocat sub formă de fișiere png obișnuite, ambalate în arhiva system/media/bootanimation.zip. Să-l despachetăm:

$ cd /tmp $ mkdir bootanimation; cd bootanimation $ unzip ~/rom/system/media/bootanimation.zip

În interior există un fișier desc.txt care descrie animația în următorul format:

Lățime Înălțime FPS p Comanda Pauză Catalog...

Forma standard a acestui fișier este:

480 800 30 p 1 0 part0 p 0 0 part1

Aceasta înseamnă că imaginea are o dimensiune de 480 x 800, iar rata de cadre (FPS) este de 30 fps. Mai jos este o descriere a primei părți a animației, ale cărei fișiere se află în directorul part0. Se joacă o dată (numărul 1 după p). Următoarea parte (part1) este redată de un număr infinit de ori până când dispozitivul pornește. De obicei, directorul part0 conține imaginile corespunzătoare primei părți a animației, iar part0 conține toate celelalte imagini care sunt redate în buclă. Imaginile în sine trebuie să aibă aceeași dimensiune, iar numele lor trebuie să conțină numere în ordine crescătoare, de exemplu 0001.png, 0002.png etc.

Deoarece animația de încărcare are un format foarte simplu, este destul de ușor de realizat. Este suficient să convertiți videoclipul în imagini png folosind mencoder (în desc.txt trebuie să setați valoarea FPS la 24):

$ mplayer -nosound -vo png:z=9 video.avi

Dar și acest lucru va fi de prisos. Membrii forumului xda-developers au creat atât de multe animații încât nu este deloc nevoie să lucrezi cu mâinile tale. Link-uri către animații interesante sunt furnizate la sfârșitul articolului.

Setări de nivel scăzut

Ultimul lucru despre care aș dori să vorbesc în acest articol este editarea setărilor de nivel scăzut. În Android, există un fișier pentru aceasta: system/build.prop, care stochează informații despre compilarea firmware-ului și setările pentru anumite dispozitive. Adăugând anumite linii la acest fișier, puteți modifica funcționarea Androidului, puteți accelera funcționarea acestuia sau puteți reduce consumul bateriei. Mai jos sunt cele mai interesante setări.


  • Interzicerea descarcarii desktopului din memorie: ro.HOME_APP_ADJ=1

    Opțiunea vă permite să faceți lucrul cu dispozitivul mai convenabil datorită accesului instantaneu la desktop în orice moment. Nu este recomandat pentru dispozitivele cu memorie redusă.

  • Îmbunătățirea calității fișierelor JPG salvate: ro.media.enc.jpeg.quality=100

    Vă permite să faceți imaginile camerei mai clare, dar crește semnificativ sarcina procesorului.

  • Dezactivați animația de pornire pentru a accelera încărcarea sistemului de operare: debug.sf.nobootanimation=1
  • Atribuirea unei părți a lucrării de redare a interfeței GPU-ului: debug.sf.hw=1

    Vă permite să faceți interfața mai rapidă și mai fluidă.

  • Blocarea notificării modului de depanare activ (când este conectat la un computer prin USB): persist.adb.notify=0
  • Remedierea problemei cu un ecran negru care apare după încheierea unui apel: ro.lge.proximity.delay=25 mot.proximity.delay=25
  • Porniți iluminarea de fundal a tastei de control imediat după pornirea ecranului: ro.mot.buttonlight.timeout=0
  • Pe lângă toate acestea, mulți utilizatori recomandă și utilizarea următoarelor combinații de steaguri:

  • Reducerea timpului de răspuns al ecranului tactil: debug.performance.tuning=1 video.accelerate.hw=1 windowsmgr.max_events_per_sec=150
  • Creșterea duratei de viață a bateriei: wifi.supplicant_scan_interval=180 pm.sleep_mode=1 ro.ril.disable.power.collapse=0
  • Modificari modul 3G: ro.ril.hsxpa=2 ro.ril.gprsclass=10 ro.ril.hep=1 ro.ril.enable.dtm=1 ro.ril.hsdpa.category=10 ro.ril.enable =1 ro.ril.enable.3g.prefix=1 ro.ril.htcmaskw1.bitmask=4294967295 ro.ril.htcmaskw1=14449 ro.ril.hsupa.category=5
  • Performanță îmbunătățită a rețelei: net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.wifi=4096,87380,256960,4096,256960,4096,16384.buffersize. 4096,87380,256960,4096,16384,256960 net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960 net.tcp.buffersize,256960,87380,256960 net.tcp. , 16384,256960
  • Toate aceste linii trebuie doar să fie plasate în fișierul system/build.prop și salvate.

    Asamblare

    OK, am făcut modificările necesare, am implementat aplicațiile noastre, am optimizat sistemul și acum trebuie să creăm o imagine OS pregătită pentru firmware. Utilitarul testsign ne va ajuta în acest sens. Mai întâi ar trebui să împachetați firmware-ul folosind zip:

    $ cd ~/rom; zip -r my-rom.zip *

    Acum trebuie să semnați arhiva pentru ca Recovery să o poată instala:

    $ wget goo.gl/OyBBk $ java -classpath testsign.jar testsign \ my-rom.zip my-rom-signed.zip

    După aceea, încărcați arhiva my-rom-signed.zip pe cardul de memorie a dispozitivului și opriți dispozitivul. Pentru a intra în Recuperare, porniți dispozitivul în timp ce țineți apăsată tasta de reducere a volumului (procedura poate diferi pentru unele dispozitive).

    Acum mergeți la „Instalați zip de pe cardul SD”, apoi la „Alegeți zip de pe cardul SD”, găsiți my-rom-sign.zip pe cardul SD și selectați Da. După finalizarea instalării, selectați „Reporniți sistemul acum”.

    concluzii

    Android este o platformă flexibilă, iar acest articol nu descrie toate posibilitățile de modificare. O modificare mai aprofundată poate include înlocuirea nucleului, schimbarea ecranului de blocare și a aplicațiilor standard, activarea unor funcții precum instalarea automată a aplicațiilor pe cardul de memorie, introducerea unui mecanism de script de pornire (/etc/init.d) și multe altele . Despre toate acestea vom vorbi în articolele următoare.

    Astăzi, titlul de cel mai popular sistem de operare pentru gadgeturi poate fi acordat în siguranță lui Android. Dar întrebarea cum să faci firmware pentru Android cu propriile mâini apare foarte des printre mulți proprietari de dispozitive și dispozitive mobile. Nu sunt mulțumiți de faptul că actualizările sistemului de operare sunt livrate de cel mult 4 ori pe an.

    Acei proprietari ale căror dispozitive mobile au fost infectate cu diverși viruși caută și ei răspunsuri la această întrebare. Desigur, firmware-ul de producție este mai bun pentru că a fost testat și cu siguranță va funcționa. Dar dacă este depășit sau nu este satisfăcător dintr-un anumit motiv, tot doriți să îl actualizați. Cum să creați corect și independent firmware-ul fără a perturba funcționarea dispozitivului în viitor? Este posibil să se creeze firmware pentru cei pentru care setul standard nu este suficient?

    Instrucțiuni de actualizare a firmware-ului

    Există un număr mare de dispozitive mobile care funcționează pe baza software-ului Android și există și mai multe versiuni de firmware diferit pentru acestea. Există propuneri oficiale și sunt cele care au fost adunate de proprietarii și admiratorii cutare sau acel gadget. Instrucțiuni pas cu pas pentru firmware universal Android:

  • Dispozitivul mobil trebuie mai întâi încărcat 100% și conectat la WI-FI. O încărcare completă vă va permite să efectuați complet, fără întrerupere sau repetare, firmware-ul Android.
  • Accesați folderul „Setări”, apoi selectați câmpul „Informații despre dispozitiv”. Uneori, numele din meniu poate fi diferit, de exemplu, „Despre sistem”.
  • Activați acțiunea corespunzătoare „Actualizare automată a sistemului”, astfel încât, în viitor, când apar versiuni actualizate, noul firmware să fie instalat pe gadgetul dvs.
  • Puteți verifica manual actualizarea. Nu ar trebui să existe probleme la găsirea unei astfel de funcție în setări.
  • Odată ce dispozitivul detectează actualizarea, vi se va solicita să o instalați. Pentru a o efectua, nu este nevoie să vă conectați la un computer, va fi suficient să utilizați WI-FI.
  • După instalare, unitatea mobilă ar trebui repornită, după care veți avea la dispoziție o nouă versiune de firmware.
  • Înainte de a începe procedura, ar trebui să transferați contactele necesare, fișierele foto și video pe alt dispozitiv. Ca urmare a actualizării, toate aceste informații vor fi șterse, lăsând un gadget complet curat cu firmware nou.

    Crearea propriului firmware

    Să ne uităm la cum să creați firmware pentru Android care să vă satisfacă cerințele personale. Această metodă este perfectă pentru utilizatorii neexperimentați, dar sârguincioși și inspirați. Pentru a obține modificările dorite, nu aveți nevoie de cunoștințe aprofundate de programare, deoarece uneori este suficient să adăugați câteva funcții suplimentare sau să transformați aspectul. Site-ul web special Android Kitchen va ajuta în acest sens, care va fi sursa principală în procesul de creare a firmware-ului personalizat pentru software.

    Vă rugăm să rețineți că, ca bază pentru noul firmware, trebuie să importați o versiune deja postată creată de un alt utilizator și nu va fi dificil să o îmbunătățiți și să o modificați.

    Pe Android Kitchen trebuie să selectați ceea ce doriți să schimbați:

    • icoane standard;
    • indicator baterie;
    • animaţie;
    • câmp de stare;
    • font;
    • caseta de dialog pentru modificarea volumului;
    • linie de progres și separatoare;
    • ecran de blocare.

    Când selectați orice caracteristică, editorul vă va permite să le evaluați imediat prin previzualizarea modificărilor. După ce ați făcut selecția, trebuie să mergeți la câmpul „Încărcare fișier”, unde sunt afișate unele setări. Sunt selectate în mod acceptabil, deci nu este recomandat să le schimbați inutil. În fila „Selectați-vă ROM-ul din lista Bucătăriei sau încărcați propriile fișiere”, faceți clic pe „Lista bucătăriei”, unde puteți selecta firmware-ul folosit din lista generală. Trebuie să fiți deosebit de atenți aici, deoarece există un anumit risc în alegerea versiunii greșite a software-ului. Cel puțin, patch-ul nu va putea fi aplicat, iar la maximum, sistemul va opri pornirea și pentru a corecta eroarea, va trebui să faceți o intermitere completă a dispozitivului.

    După aplicarea cu succes, trebuie să mergeți la fila „Rezumat” și să verificați din nou lista modificărilor selectate. Dacă totul este corect, faceți clic pe butonul „Trimite lucrarea la bucătărie”. Tot ce trebuie să faceți este să așteptați ca resursa să ofere un link către arhiva zip, care va conține patch-ul pregătit pentru flash-ul dispozitivului. După ce ați primit patch-ul, trebuie să îl flash prin Recuperare.

    Încă o dată, trebuie remarcat faptul că, înainte de a crea firmware pentru un gadget, se recomandă insistent să faceți copii de rezervă, astfel încât să puteți elimina inovațiile fără probleme.

    Salut Habr!

    În urmă cu câțiva ani, când am fost introdus pentru prima dată în Android, am auzit de la un coleg de muncă că Android oferă posibilitatea de a instala firmware modificat sau făcut în casă. Sincer, atunci eram departe de asta. Și chiar și acum jumătate de an abia mă interesau astfel de lucruri. În adâncul inimii mele, eram sigur că ceea ce făcea producătorul era deja destinat utilizării normale.

    Imaginează-ți dezamăgirea mea când am achiziționat un telefon din China, unde setările din fabrică interziceau utilizarea Google, Skype, Facebook și a altor aplicații. În principiu, era posibil să închid ochii la unele lucruri, dar când telefonul meu nu necesita utilizarea unui cont Google, am promis că îmi voi da seama cu siguranță, indiferent de ce mi s-ar întâmpla.

    A trecut o jumătate de an și firmware-ul meu personalizat este folosit cu succes în toată lumea.

    Această serie de articole va discuta despre cum să faci programare inversă pentru Android, să implementezi patch-uri, modificări și modificări.

    Preambul Și așa! Să definim mai întâi conceptele care vor fi folosite în dat articol. Înțelegerea ta obișnuită, totuși, poate fi foarte diferită.

    Patch-ul este o schimbare sau o înlocuire a codului programului existent pentru a modifica algoritmul programului.
    Un mod este, de obicei, adăugarea de funcționalități suplimentare la codul programului existent fără a schimba algoritmul.
    Tweak este o îmbunătățire a funcționalității unui program pentru a facilita accesul la parametrii sistemului.

    De asemenea, vreau să remarc că toate exemplele vor fi luate pentru un telefon HTC, dar asta nu înseamnă că această informație nu poate fi folosită pe alte telefoane.

    Pregătirea mediului mă pot descurca fără instrucțiuni detaliate despre cum să utilizez acest sau acel software. Dacă sunteți interesat de acest articol și ați citit până aici, atunci sper că sunteți deja un utilizator experimentat și aveți experiență în utilizarea sau cel puțin experimentarea în acest domeniu. Există o mulțime de instrucțiuni, articole și rezultate ale testelor în domeniul public, la fel ca pe Habré. Mă voi descurca și fără să descriu niște termeni, altfel articolul se va dovedi a fi foarte lung și plictisitor. Vom scrie doar la obiect. Sunt sigur că ești miercuri de multă vreme. Dacă nu, atunci vă sugerez să îl descărcați și să îl instalați.

    1 . Android SDK. Acesta este un mediu de dezvoltare a aplicațiilor pentru Android. Pentru a face modificări, cu siguranță va trebui să ne verificăm codul programului. Mediul de dezvoltare este cel mai bun pe care îl putem folosi.
    2. Android Bucătărie. Acest utilitar vă va permite să lucrați cu imagini ale partițiilor de sistem ale firmware-ului oficial sau neoficial.
    3. JD-GUI. Decompilator de cod Java. Aș dori să notez imediat că acesta este cel mai bun decompilator în ceea ce privește ușurința în utilizare.
    4 . DJ Java Decompiler. Un alt decompilator, sau dezasamblator, cum le place unii să-l numească, al codului de program în limbajul Java. Nu este convenabil de utilizat, dar parsează cod pe care uneori JD-GUI nu îl înțelege.
    5 . smali. Un alt dezasamblator, dar de data aceasta cod dalvik. smali este necesar pentru dezasamblare, iar backsmali este necesar pentru asamblarea codului.
    6. dex2jar. Un utilitar pentru conversia fișierelor executabile de cod Dalvik.

    Conversie firmware Desigur, firmware-ul pe care îl aveți pe telefon de la producător este optimizat pentru a reduce consumul de energie. Pentru ca firmware-ul să fie modificat, acesta trebuie convertit într-un format care să permită modificarea codului. Android Kitchen este folosit pentru aceasta. Desigur, o poți face cu mâinile tale, așa cum am făcut înainte, până când am găsit această „bucătărie”. Puteți citi pe Internet cum să eliminați zona de sistem din telefon, să instalați mediul și să creați firmware-ul DEODEX. Dacă nu înțelegi deja nimic, cred că merită să amâni să citești acest articol până când vei dobândi suficientă experiență.

    După ce firmware-ul s-a schimbat de la o versiune optimizată (ODEX - cod executabil dalvik optimizat, dacă memoria îmi servește corect) la DEODEX (adică NU optimizat), toate fișierele executabile sunt gata pentru modificare.

    Modificări directe Crearea de corecții După cum am spus deja, telefonul meu a fost inițial interzis să folosească Google. Ei bine, indiferent de ce, nu poți merge la Playstore, nu poți configura un cont, agenda telefonică nu se sincronizează cu adevărat. De ce ai nevoie de un astfel de Android? După ce am săpat mult timp în logcat-ul dispozitivului în sine, am găsit intrări care spuneau că utilizarea Google este interzisă. Cel mai incomod lucru la Android este că vezi jurnalul, dar nu știi ce aplicație de sistem îl produce. Pentru a afla de unde îmi veneau picioarele, a trebuit să elimin toate aplicațiile de sistem într-un cod Java dezasamblat. A durat mult, dar încă folosesc munca pe care am făcut-o când am analizat și am găsit codul potrivit. Pașii pentru obținerea unor astfel de instrumente sunt următorii:
    1 . Faceți DEODEX din toate firmware-urile
    2. Noul dumneavoastră firmware DEODEX va trebui să fie asamblat și flashat pe telefon. Cum se face acest lucru este subiectul unui alt articol.
    3. Din fiecare fișier aflat în /system/framework, extrageți fișierul classes.dex și convertiți-l în JAR folosind dex2jar.
    4 . Deschideți fiecare JAR rezultat în JD-GUI și salvați-l din nou în codul sursă
    5 . Despachetați codul sursă din arhivă.

    În cele din urmă, am ajuns să am atâtea foldere câte fișiere JAR erau în /system/framework și fiecare folder avea o structură de cod sursă Java.
    Prin simple manipulări am găsit rapid locul care a generat intrări în logcat.

    Nu vom lua în considerare întreaga logică a interdicției, deoarece fiecare caz este o poveste separată. A trebuit să petrec câteva ore înainte de a găsi unde s-au făcut verificările, am construit o diagramă bloc a algoritmului în cap și am înțeles unde să merg pentru a „strica” puțin algoritmul.

    S-a dovedit a fi simplu. Există o subrutină care, pe baza unor constante prestabilite, atunci când a fost contactată, răspundea dacă telefonul aparține sau nu Chinei.

    Codul era în dosar HTCExtension.jar, iar clasa care conținea această subrutină era în

    Dezambalarea și analiza fișierului original1. În primul rând, trebuie să luăm fișierul DEODEX JAR original, care este responsabil pentru partea de cod de care avem nevoie. În cazul nostru HTCExtension.jar.
    2. Deschideți cu orice arhivator și scoateți classes.dex de acolo
    3. Utilizați convertorul dex2jar pentru a-l converti într-un fișier JAR. Comanda: dex2jar.bat classes.dex
    4 . Deschideți fișierul classes_dex2jar.jar rezultat în JD-GUI.
    5 . Da, cel mai adesea JD-GUI decompilează codul nu așa cum arată în original, este de înțeles, dar este destul de lizibil. În codul sursă vedem că subrutina verifică parametrii proiectului și flag-ul limbii firmware-ului. În cazul nostru nefericit, TRUE este returnat.
    public static boolean isChina() ( if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (F_lag ==Htc_PROJECT_flag) ; && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) returnează adevărat;
    6. Pentru a face un patch, trebuie să dezasamblam codul Dalvik în sine. Pentru aceasta folosim baksmali. Cel mai convenabil mod este să creați un folder separat și să puneți acolo trei fișiere împreună: HTCExtension.jar, smali.jarȘi baksmali.jar. Dați comanda java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

    Acesta este API-ul pentru versiunea dvs. de Android. Pentru JB este 16
    - folderul în care se află toate cadrele de firmware.

    În cazul meu a fost comanda
    java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar
    7. În folderul nostru nou creat, a apărut folderul HTCExtension, iar în el fișierele noastre cu cod Dalvik.
    8 . Găsirea fișierului de-a lungul căii \com\htc\util\contacts\BuildUtils$Customization.java si uita-te la cod:
    .method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v16 v1 , v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short/htcjavaflag/HtcBuildFlag, L. ;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297:cond_13:goto_13 return v0 .line 283:cond_14 sget-short v1, Lcom/htcjaflag/Htcjag/Htcvaflag Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if v-eqline v2, v-eq, v. 291:cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297, 0/4 v297, const. metodă
    9 . Înfricoșător, nu-i așa? Nimic nu este clar. Dar aceasta este o problemă care se poate rezolva. După ce ați creat câteva dintre propriile patch-uri și, astfel, ați câștigat experiență, puteți modifica cu ușurință codul fără instrumente terțe. În cazul nostru, în acest cod
    .prologue const/4 v0, 0x1 atribuie variabilei v0 valoarea 1, adică TRUE. Apoi există tot felul de verificări, iar dacă telefonul nu este chinezesc, atunci valoarea variabilei se schimbă:
    .line 297 const/4 v0, 0x0 goto:goto_13
    10 . Cel mai simplu mod de a-l salva pe tatăl democrației ruse este să schimbi codul în următorul:
    .prologue const/4 v0, 0x0 , adică modificați valoarea variabilei de la 1 la 0. Adică, indiferent de ce, valoarea FALSE ar fi întotdeauna returnată și în JD-GUI codul ar arăta ca public static boolean isChina() ( dacă (( HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); în timp ce ((Flag.Htc_PROJECT_flag == 23)); în timp ce ((&_PROJ.Htc_1) Build == 218) || 2 == HtcBuildFlag Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) returnează false;
    unsprezece . Da, metoda va funcționa. Dar nu căutăm căi ușoare – de data aceasta. În al doilea rând, nu este tocmai frumos. Aș dori un cod de genul
    public static boolean isChina() ( returnează fals; )
    12 . Cum putem obține codul Dalvik pentru acest cod sursă? Pentru începători vom face un mic truc.

    Crearea codului Dalvik1. Deschideți Android SDK.
    2. Creăm un nou proiect și scriem următorul cod în singura noastră clasă de testare
    pachet ru.habrahabr.test; test de clasă publică ( public static boolean isChina() ( return false; ) )
    3. Compilăm proiectul nostru și apoi luăm aplicația asamblată din spațiul de lucru.
    4 . Am pus aplicația asamblată în folderul în care am eliminat fișierul JAR.
    5 . Dați comanda java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
    6. Am dezasamblat aplicația nou construită în codul Dalvik.
    7. Deschideți fișierul nostru test.smali și vedeți codul acolo
    .method public static isChina()Z .registers 1 .prolog .line 7 const/4 v0, 0x0 return v0 .end method
    8 . Asta e, codul pentru corecție este gata. Codul Dalvik este presărat cu marcaje care indică o linie de cod în fișierul sursă original. Acest lucru este necesar la afișarea erorilor, dacă există, în programul dvs. De asemenea, codul funcționează bine fără a specifica linii.
    2. Stergem liniile cu numerotarea liniilor, copiem si inlocuim metoda (subrutina) din nostru \com\htc\util\contacts\BuildUtils$Customization.java fişier.
    .method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
    3. Salvați fișierul. Da, am uitat să spun, aveți nevoie de un editor normal, de exemplu Notepad++ sau EditPlus. Cui îi place care dintre ele. Compilarea și asamblarea unui fișier JAR corectat1. Folosind backsmali, ne-am eliminat fișierul JAR și acum trebuie să-l punem la loc.
    2. Dați comanda java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
    3. Fișierul classes.dex apare în folderul nostru
    4 . Deschiderea din nou HTCExtension.jar fișier cu un arhivator și înlocuiți-l pe cel existent în acesta clase.dex la cel recent creat.
    5 . Asta e, al nostru HTCExtension.jar conține codul de program modificat. Înlocuirea fișierului original cu unul corectat. De obicei, sunt create scripturi speciale pentru utilizatorii obișnuiți, care sunt înlocuite prin recuperare. Dar nu ne interesează acest lucru. În primul rând, este lung și plictisitor, iar în al doilea rând, suntem utilizatori experimentați și ne putem permite unele subtilități.

    1 . Puteți înlocui fișierul de lucru curent cu următoarele comenzi dacă aveți deja firmware DEODEX și aveți acces root:

    Adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard /HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@ [email protected]@classes.dex reporniți

    Prima comandă încarcă fișierul corelat pe unitatea flash
    A doua comandă deschide shell
    A treia comandă oferă acces root
    A 4-a comandă montează sistemul în modul citire/scriere
    A 5-a comandă face o copie de rezervă a fișierului
    A șasea comandă suprascrie fișierul existent cu cel nou corelat.
    A 7-a comandă configurează permisiunile
    A 8-a comandă șterge memoria cache
    A 9-a comandă repornește dispozitivul.

    2. Vă mulțumim că ați citit până în acest punct, a mai rămas puțin.
    3. După o repornire, noul cod corelat va intra în vigoare.
    4 . Dacă codul nu funcționează sau apare o eroare, atunci folosind combinații simple puteți returna copia de rezervă.
    adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@ [email protected]@classes.dex reporniți

    Epilog Da, unii au considerat acest articol prea specific, altora le-a fost greu de înțeles, iar alții l-au găsit inutil. Am evitat în mod deliberat detaliile în profunzime și ilustrațiile despre cum arată totul în direct și în practică. În primul rând, această lucrare va fi ingrată și va da naștere la și mai multe întrebări. În al doilea rând, nu vreau să văd o armată de utilizatori pe forumuri care se plâng că și-au ucis telefonul.

    Pentru următorul articol vă voi spune cum să faceți Tweeks. Va exista un exemplu de utilizare a înregistrării automate a apelurilor telefonice folosind instrumente de telefon native. Vă mulțumim pentru atenție.

    P.S. Dacă ceva nu este clar sau confuz, pune întrebări - voi fi întotdeauna bucuros să răspund și să explic.

    Dacă utilizatorul știe bine cum să flasheze un telefon și dacă s-a săturat de firmware-ul oficial, el poate oricând să-l creeze pe al său. Acest lucru este foarte ușor de făcut dacă cunoașteți algoritmul procesului, ce se face și cum.

    Cum să creați singur firmware pentru Android

    Pentru ca firmware-ul să fie de înaltă calitate și telefonul să nu se transforme într-o cărămidă, este important să luați o serie de măsuri pentru a vă pregăti pentru crearea unui Android actualizat. Veți avea nevoie de un computer cu sistemul de operare Linux instalat, de preferință UBUNTU. Este recomandabil să instalați un sistem pe 64 de biți pentru noile versiuni de Android.

    Această adâncime de biți este necesară pentru a schimba firmware-ul versiunilor Android de peste 2.4.

    Unitatea dvs. de hard disk trebuie să aibă până la 20 de gigaocteți de spațiu liber. Acest lucru se face pentru a păstra sursele.

    Pe lângă faptul că îl faceți singur din surse, există o modalitate de a schimba un fișier gata făcut.

    Metode de creație

    Pentru a face firmware Android din sursă, se recomandă să urmați următorii pași.

    • Instalați UBUNTU. Numai că va produce un firmware bun. Puteți descărca UBUNTU de pe site-ul oficial.
    • Apoi pregătiți-vă desktopul și eliberați suficient spațiu așa cum este descris mai sus. Apoi trecem la asamblarea în sine.
    • Instalați programul Java.
    • Puteti descarca sursele de pe forumul 4pda.

    Avantajul de a vă crea propriul firmware este că vă puteți optimiza Android-ul cât de mult aveți nevoie. Și îl puteți scăpa și de programele preinstalate care pur și simplu îl înfundă și nu sunt folosite. Un alt avantaj este că puteți să flashați singur firmware-ul și să vă actualizați telefonul la orice versiune.

    Desigur, este mult mai ușor să editați un ansamblu gata făcut pentru a se potrivi nevoilor dvs. Pentru aceasta vei avea nevoie de:

    • Instalați sistemul de operare UBUNTU.
    • Descărcați programele andimgtool și rkwintools. Vă vor ajuta să decriptați datele boot.img, recovery.img, system.img. și, de asemenea, împachetați-le.
    • Găsiți firmware curat. Principalul lucru este că titlul conține cuvintele ROM. Alegem site-ul de descărcare la discreția noastră, de exemplu desktoplinux.ru sau orice altul.

    Realizarea unui firmware de telefon dintr-un fișier gata făcut este, desigur, mult mai ușoară și mai simplă. Acesta este avantajul editării firmware-ului gata făcut.

    Instrucțiuni pentru a crea singur firmware-ul Android Creați firmware-ul Android din surse

    Înainte de a începe să creați firmware personalizat cu propriile mâini, este recomandat să instalați o mașină virtuală și sistemul de operare Linux pe ea.

    Acum trebuie să găsiți firmware-ul pe care îl veți modifica. xda-developers.com – pe acest site veți găsi firmware-ul de care aveți nevoie. Principalul lucru este că au cuvântul ROM în numele lor și sunt curați. Apoi descărcați-l și dezarhivați-l folosind Winrar.

    Când deschideți folderul cu fișierele dezarhivate, veți găsi elementele enumerate mai jos:


    Lansați Android Kitchen. Lansați-l prin Linux sau prin programul Cygwin. Dacă rulați pe Linux, atunci introduceți comanda cd kitchen, apoi ./menu.

    Acum despachetați programul. Apoi mergeți la secțiunea 0 sau la opțiuni avansate. După ce ați găsit comenzi pentru a îmbunătăți versiunea de Android, faceți clic pe cea necesară. Aici adăugați propriile animații, aplicații și eliberați memorie. După pașii de mai sus, tastați comanda 99. Acum faceți clic pe build ROM din folderul de lucru. Tot ce rămâne este să ridici arhiva cu output_ZIP.

    Editarea versiunii terminate

    După ce am studiat producția de firmware din fișierele sursă, vom analiza acum cum să modificăm fișierul terminat. Pentru a-l edita, trebuie să descărcați fișierul, căutați firmware-ul cu numele: Pure Android 3.0 ROM. Acest nume indică faptul că este pură.

    După descărcarea fișierului, dezarhivați-l. Dosarele și fișierele din acesta sunt componente ale firmware-ului. Ele sunt de obicei amplasate astfel:

    • Meta - inf. Aici se află toate datele despre viitorul sistem. Certificatele, sumele de control și scripturile se găsesc și aici.
    • Boot. img. Aceasta este imaginea, astfel încât să puteți descărca firmware-ul și să îl instalați.
    • Dosarul de sistem. Acesta este Android fără nucleu. Iată toate setările sistemului și câteva dintre utilitățile instalate.

    Apoi software-ul este instalat. Trebuie să accesați folderul /system/app/ și să schimbați setul de utilități. Adică, puteți distruge folderul cu utilitarul de care nu aveți nevoie sau, dimpotrivă, puteți instala software-ul necesar. Puteți instala utilități de care va avea nevoie viitorul sistem Android. Pentru a face acest lucru, trebuie să fie deja despachetate. Trebuie doar să trageți tot ce aveți nevoie în acest director și aceste aplicații vor fi preinstalate automat.

    Pentru a modifica grafica, se recomandă să mergeți în folderul framework/framework-res.apk. Utilizatorul ar trebui să dezarhivească elementul și să introducă acolo două foldere: res/drawable-*, unde își poate încărca imaginile și fundalul cu rezoluție .png. Și res/layout-* - fișierele cu rezoluție .xml vor fi atașate aici. După ce manipulările au fost efectuate, trebuie să colectați totul din nou într-un singur fișier.

    Puteți modifica animația sau instala una nouă prin dezarhivarea arhivei cu fișierele corespunzătoare. Apoi utilizatorul modifică fișierele și le împachetează înapoi.

    Dacă utilizatorul dorește să îmbunătățească performanța propriului smartphone, trebuie să introducă următoarele comenzi: ro.mot.buttonlight.timeout=0 – pentru a ilumina butoanele după pornirea telefonului. debug.sf.nobootanimation=1 – dezactivează animația la pornirea telefonului. Multe dintre ele se află în folderul system/build.prop.

    Când toate modificările sunt finalizate, va trebui să le arhivezi cu comanda $ cd ~/rom; zip -r my-rom.zip *.

    Editare fără a utiliza un computer

    Pentru a edita firmware-ul Android fără a utiliza un computer, proprietarul telefonului trebuie să îl descarce în arhivă. Lansați Total Commander, acest program poate funcționa cu pachete arhivate. Dezarhivați pachetul.

    • Descărcați programul de rezervă Nandroid de pe site și faceți o copie de rezervă.

    Există o altă opțiune - dacă cusătura este în format zip.

    În acest caz, procedura este identică. Dar înainte și după proces, trebuie mai întâi să despachetați și apoi să împachetați fișierul firmware fără compresie. Folosind backup Nandroid, facem o copie de rezervă și conectăm dispozitivul prin orice aplicație convenabilă.

    Cred că aproape fiecare utilizator de smartphone Android are dorința de a crea (edita) firmware pentru a se potrivi nevoilor și dorințelor lor.
    Deci, în acest articol ne vom uita la principiul editării firmware-ului pentru CWM (în format zip)


    ---
    ce si cum:

    Deschizând arhiva cu firmware-ul, vedeți următoarele:
    META-INF - scripturile de instalare a firmware-ului sunt stocate în folder
    sistem - folder cu toate fișierele firmware (aplicații, ajustări, scripturi etc.)
    boot.img - nucleul de sistem

    Aproape toate manipulările sunt efectuate în folderul de sistem
    structura sa:
    aplicație - aplicații de sistem
    bin - resurse ale sistemului însuși
    etc - Scripturi, ajustări, configurații, profiluri și setări de sistem
    fonturi - fonturi de sistem
    framework - principalele fișiere de sistem sunt stocate aici (grafice, setări de text de animație etc.)
    lib - biblioteci de sistem
    media - fișiere multimedia (tonuri de apel de notificare, animație de încărcare, tapet etc.)
    usr - setările nu au fost modificate ulterior de sistem (funcționează în modul doar citire)
    xbin - din nou configurații de sistem și alte modificări
    build.prop - informații despre sistem, setările locale și performanța sistemului.


    ---
    Aplicații

    Înainte de a adăuga/elimina software-ul în sistem, trebuie să verificați dacă firmware-ul este deodexat (adică, verificați prezența fișierelor .odex în folderul aplicației. Dacă sunt disponibile, atunci trebuie să scăpați de ele folosind .
    -Adăugați software la firmware:
    În primul rând, trebuie să instalați în smart acele programe pe care doriți să le adăugați la ansamblu.
    După instalare, le scoatem din sistem folosind Root Exporer și analogii săi, ele sunt localizate pe parcurs date/aplicație, avem nevoie și de bibliotecile lor (dacă există, desigur), sunt situate pe calea datelor/date. Acestea se află în folderul aplicației cu același nume și au extensia .so.
    Apoi punem fișierele .apk confiscate în arhivă de-a lungul căii sistem/aplicațieși fișiere cu extensia .so (libs) pe parcurs sistem/lib.
    -Eliminarea software-ului din firmware:
    Totul este simplu aici, accesați folderul aplicației - decideți ce nu avem nevoie și ștergeți toate software-urile inutile (este mai bine să nu atingem sistemul)


    ---
    Limba și versiunea de firmware

    Copiați fișierul build.prop pe desktop. Deschideți-l cu notepad și găsiți liniile

    ro.product.locale.language=en
    ro.product.locale.region=US


    pentru limba rusă trebuie să faceți acest lucru:

    ro.product.locale.language=en
    ro.product.locale.region=RU


    introduceți numele modului dvs. în rând

    în aceeași construcție.prop

    ---
    Arte grafice

    Întreaga parte grafică a firmware-ului este stocată în două fișiere
    framework-res.apk este calea către fișierul systemframework și SystemUI.apk este pe calea systemapp. Iar partea grafică a aplicației de setări este stocată în mod natural în aplicația Settings.apk.
    Puteți învăța principiile de despachetare, editare și asamblare a fișierelor cu extensia .apk.


    ---
    Scripturi și ajustări (accelerare și optimizare a sistemului)

    Majoritatea setărilor sunt efectuate în fișierul build.prop, există un .
    De asemenea, dacă nucleul dvs. acceptă init.d (puteți afla despre acest lucru pe forum despre dispozitivul dvs.), există o serie de scripturi pentru optimizarea sistemului, unul dintre ele este descris în acest articol


    ---
    Înlocuirea fonturilor de sistem

    După cum sa menționat mai sus, toate fonturile sunt conținute în folderul fonturi, fonturile principale sunt: ​​DroidSans.ttf și DroidSans-Bold.ttf, acestea pot fi înlocuite cu orice fonturi de pe site-ul nostru, redenumite în mod similar cu cele de mai sus și mutate cu înlocuire în arhiva cu firmware-ul în folderul fonturi.