Kako deodeksirati firmware koristeći jbart. Što je odex i deodex u Androidu. Raspakiranje i analiza izvorne datoteke

Ako niste samo obični korisnik uređaja temeljenog na Androidu, već volite instalirati razne firmware-e, onda ste vjerojatno čuli ili čitali na raznim forumima i stranicama o “odexed” i “deodexed” firmware-u. Koja je razlika? Ukratko, Deodex firmware je prikladniji za izmjene. Programer deodeksiranog firmvera može samostalno promijeniti izgled ikona, konfigurirati razne izbornike i tako dalje. Recimo vam o svemu detaljnije.

Što je Deodex?

Android firmware, kao i svaka druga aplikacija, ima poseban "izvršni" dio koji je dizajniran za izvođenje unaprijed programiranih radnji. Kao što možete sami vidjeti, ove naredbe su smještene u zasebnu datoteku classes.DEX, koja je prisutna u firmware-u.

Često, u službenom firmware-u, proizvođač premješta ovu datoteku izvan firmware-a kako bi ubrzao rad i smanjio količinu memorije koju zauzima firmware. Prelaskom na Android 5.0 s ART runtime okruženjem značajno je promijenjen proces pokretanja i instaliranja aplikacija, no sam koncept odexa i deodexa je zadržan.

Prednosti i nedostaci firmwarea Odex i Deodex


- Složeniji proces izmjene firmvera
+ Malo povećanje performansi firmvera
+ Uštedite prostor prilikom instaliranja programa


+ Pojednostavljena prilagodba firmvera
- Potrebno je više prostora za instaliranje aplikacija

Kako doći do Deodex firmware-a?

Prije pokretanja procesa deodeksiranja firmware-a potrebno je ispuniti niz uvjeta. Prvi korak je da ga instalirate i konfigurirate na svom računalu. Zatim moramo dobiti Root prava na našem mobilnom uređaju, instalirati bilo koji upravitelj datoteka s pristupom particiji sustava i kopirati sljedeće mape u memoriju uređaja ili na microSD karticu.

/aplikacija
/privatna aplikacija
/okvir


Deodex pomoću JoelDroid Batch Deodexera

Ovaj uslužni program radit će samo s uređajima temeljenim na Androidu 5.0 i novijim. Također je potrebno instalirati i preuzeti samu aplikaciju.


  • Raspakirajte arhivu pomoću uslužnog programa ]JoelDroid Lollipop Batch Deodexer V 2.5.

  • Prethodno spremljene mape aplikacija, privatna aplikacija, okvir

  • Pokrenite uslužni program JoelDroid Lollipop Batch Deodexer, kliknite gumb "Pregledaj" i označite direktorij na računalu u koji ste kopirali aplikacija, privatna aplikacija, okvir

  • Kliknite na gumb "Pokreni proces"

Deodex pomoću Deodexera za Android Runtime

Prije svega, preuzmite arhivu i raspakirajte je. Daljnji postupak se ne razlikuje od prethodnog uslužnog programa:


  • Prethodno spremljene mape aplikacija, privatna aplikacija, okvir trebate smjestiti poseban imenik na svoje računalo.

  • Pokrenite uslužni program Deodexer za Android Runtime, odredite direktorij na računalu u koji ste kopirali aplikacija, privatna aplikacija, okvir

  • Kliknite na gumb "Izvršiti" i pričekajte da se proces deoksacije završi.

Deodex pomoću Jbarta

Za razliku od prethodnih uslužnih programa, koji mogu raditi samo s uređajima temeljenim na Androidu 5.0 i novijim, ovaj uslužni program nije vezan za OS. Možete napraviti Deodex za bilo koji uređaj od Android 2.3.x Ginerbread do Android 6.0 Marshmallow.



Svatko od vas je više puta čuo riječi "deodex" ili "odex". Obično se nalaze tamo gdje su objavljeni razni firmware za vaš uređaj, na primjer, na XDA-Developers ili 4pda. Dakle, što to znači DEODEX ili ODEX? Koje su njihove razlike? Kako napraviti DEODEX? Odgovore na ova i druga pitanja pronaći ćete u sljedećem izdanju sažetka “Što je...”.
Odex (Optimized Dalvik Executable File) je datoteka koja se nalazi u istoj mapi sa sistemskim aplikacijama, a koja pohranjuje kod samog programa. Kao što znate, svaki program treba upute, zahvaljujući kojima će on (program) obavljati jednu ili drugu funkciju ili posao. Upravo je to programski kod koji sam ranije opisao. Ako želite izmijeniti bilo koju sistemsku datoteku, morat ćete kopati i po odex datoteci i po .apk kada instalirate odex firmware. Iz ovoga postaje jasno da ovaj proces neće biti baš lak. Iz tog razloga implementirana je mogućnost deodex firmware-a.

Kao što već znate, u odex firmwareu datoteke se pohranjuju "nasumično". Međutim, kod deodexa nema tog poremećaja, da tako kažem. Sve datoteke u deodexu pohranjuju se kao .zip arhiva, ali u našem slučaju su “spakirane” u .apk. Iz tog razloga rastavljanje aplikacije radi daljnjih izmjena postaje lakše, a zbog činjenice da je sve spakirano na jednom mjestu deodex firmware će možda zauzimati manje prostora.

Međutim, deodex se ne može beskrajno hvaliti. Glavni nedostatak deodexa je što se aplikacije malo duže učitavaju nego na odexu. Najvjerojatnije, korisnik to neće primijetiti. No, ne mogu ne primijetiti da je i prednost odexa i nedostatak deodexa to što su sve sistemske aplikacije u odexu optimizirane za određeni uređaj od strane samog proizvođača. A ovo je nedvojbeno plus odex firmware-a.

Skoro sam zaboravio spomenuti da prilikom instaliranja raznih gotovih modifikacija sustava za vaš uređaj morate imati deodex firmware.

Vjerojatno je u ovoj situaciji značenje pojmova jasno. I spreman sam se kladiti da neki ljudi već žele isprobati deodex. Na World Wide Webu postoji ogroman broj uputa za deodex firmware. No, neću vas se usuditi poslati da ih tražite na Googleu, nego ću jednostavno tiho zapisati cijeli ovaj proces, pokušavajući istaknuti sve sitnice.

Upute za različite verzije Androida nisu iste. Zbog činjenice da je na mom uređaju instaliran Android 5.0 Lollipop, napisat ću upute za deodex posebno za ovu verziju.

  1. Prvo, moramo preuzeti poseban uslužni program, JoelDroid Lollipop Batch Deodexer, na naše računalo. Ovaj uslužni program zahtijeva Java program za rad. Napominjem da u čestim slučajevima Java aplikacija krivo i netočno piše svoj put. Iz tog razloga morate ručno registrirati ovu stazu prema ovim uputama.
  • Nakon toga moramo instalirati bilo koji upravitelj datoteka na naš uređaj koji radi na Androidu 5.0 Lollipop, preko kojeg trebamo kopirati tri glavne sistemske mape - APP, PRIV-APP, FRAEMWORK - u zasebnu mapu na SD kartici. Nalaze se u korijenskoj mapi System.


  • Zatim moramo stvoriti mapu MyROM u korijenu bilo kojeg internog pogona na vašem računalu. Zatim stvaramo drugu mapu u ovoj mapi, ali s nazivom System. U teoriji, trebali biste dobiti sljedeću stazu - E:\MyROM\system. Gdje je "E" vaša interna pohrana (tvrdi disk)
  • One sistemske mape koje smo kopirali u drugom koraku potrebno je premjestiti u E:\MyROM\system mapu.
  • Sada smo teoretski sve pripremili i već možemo krenuti prema točki DEODEKSACIJE.
  • Pokrenite prethodno instalirani uslužni program JoelDroid Lollipop Batch Deodexer.
  • Klikom na gumb "Pregledaj" u uslužnom programu, trebamo prikazati put do E:\MyROM\system
  • Put je naznačen, sve je spremno. Sve što trebamo napraviti je pritisnuti tipku “Start Prosecc” nakon čega će započeti deoksacija. Ovaj postupak traje oko 10-15 minuta.
  • Nakon što je deodeksacija završena, trebamo kopirati rezultirajuće datoteke, koje se nalaze duž staze E:\MyROM\system, na MicroSD flash pogon na vašem uređaju.
  • Zatim moramo preuzeti AROMA FileManager i instalirati ga putem prilagođenog oporavka na vašem uređaju. Ali prije instalacije moramo odabrati Sustav u odjeljku Montaža ako nije odabran.
  • Nakon svega ovoga, moramo otići u korijen datotečnog sustava i obrisati mape APP, PRIV-APP i FRAEMWORK iz mape System, samo ih obrišite, jer će kod kopiranja mape ARM ostati, a cijeli proces, razmislite , otišao je u odvod.
  • Zatim kopirajte deodex mape koje ste prethodno prenijeli u koraku 9 u mapu System u korijenu cijelog datotečnog sustava.
  • Nakon ovoga, moramo flashati skriptu koja postavlja dopuštenja za mape (RWXRX-RX), .apk datoteke i .xml datoteke (RW-R-R)
  • Zatim moramo napraviti wipe cache i wipe dalvik/art. Ponovno pokrenite uređaj i uživajte u deodex firmware-u koji ste primili.

  • Provjerite imate li DEODEX instaliran - firmware možete ažurirati prema sljedećim kratkim uputama: D


    U potpunosti vjerujem da sam govorio o najosnovnijim stvarima o pojmovima ODEX i DEODEX, i ovaj članak se može završiti. Hvala svima na pažnji, ocijenite članak, dobar dan i uspješno LJETO!

    Korisnici Androida mogu se podijeliti u dvije skupine. Prvi su oni kojima je bitno da radi stabilno i da telefon jednostavno radi. Drugi su oni koji jedva čekaju isprobati nove funkcije i provjeriti drugi firmware za svoj telefon, koji stvarno vole petljati po svom telefonu. Tu leži glavna razlika između firmwarea ODEX i DEODEX.

    ODEX (odexed) firmware– ovo su službeni, brendirani ili tvornički firmware za Android. DEODEX (deoksificirani) su firmware programi koje mijenjaju korisnici.

    Zašto takva razlika?

    “Odexed” firmware će se odmah otkriti prisutnošću datoteka s ekstenzijom .odex u mapi /system/app. Skraćenica odex znači "Optimizirana Dalvik izvršna datoteka". Ova vrsta datoteke je prijeko potrebna za preglednu strukturu sustava koja sadrži sve informacije o aplikaciji. Android prima podatke odmah izravno bez raspakiranja apk datoteka. .odex datoteke obično se učitavaju u Dalvik-cache, koji pohranjuje podatke o programima koje korisnik često koristi. Brzina sustava značajno se povećava.

    Prednosti ODEX firmwarea mogu se zapisatičinjenica da se aplikacije otvaraju brže i apk datoteke zauzimaju malo prostora. Nedostaci su teškoća hakiranja i mijenjanja programa. Ali većina korisnika to ne treba; oni cijene brzinu i stabilnost sustava.

    Na primjer, takav firmware je idealno rješenje za one koji samo žele preuzeti igre na Android tablet (http://vipsmart.org/all-genres/tablet/).

    DEODEX



    U "deodeksiranom" firmveru informacije o aplikaciji sadržane su u apk datoteci. Kod koji se obično umeće u odex datoteku uključen je u apk pod nazivom classex.dex.

    Glavne prednosti ovakvih firmware-a su što ih je mnogo lakše modificirati (svi podaci su na jednom mjestu), a sistemske programe je lakše ukloniti.

    Jedan od nedostataka je to što se programi duže pokreću. Ali ovaj nedostatak nije vrlo značajan. Dalvic-cache pohranjuje sve podatke o aplikacijama koje korisnik često koristi. A programi se dugo učitavaju tek nakon brisanja Dalvic cachea. Na primjer, nakon instaliranja ažuriranja firmvera ili u drugim slučajevima.

    Ukratko, možemo sa sigurnošću reći da se "odexed" (tvornički) firmware preporučuje onima koji cijene brzinu i stabilnost. “Deoxed” (custom) su prikladniji za one kojima je važno potpuno prilagoditi firmware svojim potrebama, isprobati nove funkcije i “kopati dublje” u Android sustav.

    Pozdrav Habr!

    Prije nekoliko godina, kad sam se prvi put upoznao s Androidom, čuo sam od kolege s posla da Android pruža mogućnost instaliranja modificiranog ili domaćeg firmvera. Iskreno, tada sam bio daleko od toga. A još prije pola godine takve su me stvari jedva zanimale. Duboko u srcu bio sam siguran da je ono što proizvođač radi već namijenjeno normalnoj uporabi.

    Zamislite moje razočaranje kada sam kupio telefon iz Kine, gdje su tvorničke postavke zabranile korištenje Googlea, Skypea, Facebooka i drugih aplikacija. Načelno je bilo moguće zažmiriti na neke stvari, ali kada moj telefon nije zahtijevao korištenje Google računa, obećao sam da ću to definitivno shvatiti što god mi se dogodilo.

    Prošlo je pola godine i moj custom firmware se uspješno koristi u cijelom svijetu.

    Ova serija članaka raspravljat će o tome kako napraviti obrnuto programiranje za Android, implementirati zakrpe, podešavanja i modifikacije.

    Preambula

    Tako! Najprije definirajmo koncepte koji će se koristiti u danočlanak. Vaše uobičajeno shvaćanje, međutim, može biti vrlo različito.

    Zakrpa- mijenjanje ili zamjena postojećeg programskog koda kako bi se modificirao programski algoritam.
    Vunena tkanina- u pravilu dodavanje dodatne funkcionalnosti postojećem programskom kodu bez promjene algoritma.
    Štipanje- unapređenje funkcionalnosti programa radi lakšeg pristupa parametrima sustava.

    Također želim napomenuti da će svi primjeri biti uzeti za HTC telefon, ali to ne znači da se ove informacije ne mogu koristiti na drugim telefonima.

    Priprema okoline

    Mogu bez detaljnih uputa o tome kako koristiti ovaj ili onaj softver. Ako ste zainteresirani za ovaj članak i pročitali ste dovde, nadam se da ste već iskusan korisnik i da imate iskustva s korištenjem ili barem eksperimentiranjem u ovom području. Postoji mnogo uputa, članaka i rezultata testova u javnoj domeni, baš kao i na Habréu. Također ću učiniti bez opisivanja nekih pojmova, inače će se članak pokazati vrlo dugim i zamornim. Napisat ćemo samo poantu. Siguran sam da ste već dugo u srijedi. Ako ne, predlažem da ga preuzmete i instalirate.

    1 . Android SDK. Ovo je okruženje za razvoj aplikacija za Android. Kako bismo napravili izmjene, svakako ćemo morati provjeriti naš programski kod. Razvojno okruženje je najbolje što možemo koristiti.
    2 . Android kuhinja. Ovaj uslužni program omogućit će vam rad sa slikama sistemskih particija službenog ili neslužbenog firmvera.
    3 . JD-GUI. Dekompilator Java koda. Želio bih odmah napomenuti da je ovo najbolji dekompilator u smislu jednostavnosti upotrebe.
    4 . DJ Java Decompiler. Još jedan decompiler ili disassembler, kako ga neki vole zvati, programskog koda Java jezika. Nije praktičan za korištenje, ali analizira kod koji JD-GUI ponekad ne razumije.
    5 . mali. Još jedan disassembler, ali ovaj put Dalvik kod. smali je potreban za rastavljanje, a backsmali za sastavljanje koda.
    6 . dex2jar. Uslužni program za pretvaranje izvršnih datoteka Dalvik koda.

    Pretvorba firmvera

    Naravno, firmware koji imate na svom telefonu od proizvođača optimiziran je za smanjenje potrošnje energije. Kako bi se firmware mogao modificirati, mora se pretvoriti u format koji omogućuje modificiranje koda. Za to se koristi Android Kitchen. Naravno, možete to učiniti svojim rukama, kao što sam ja radio prije dok nisam pronašao ovu "kuhinju". Na internetu možete pročitati kako ukloniti područje sustava s telefona, instalirati okruženje i napraviti firmware DEODEX. Ako već ništa ne razumijete, mislim da vrijedi odgoditi čitanje ovog članka dok ne steknete dovoljno iskustva.

    Nakon što se firmware promijenio iz optimizirane verzije (ODEX - optimizirani dalvik izvršni kod, ako me sjećanje ne vara) u DEODEX (tj. NE optimiziran), sve izvršne datoteke spremne su za modificiranje.

    Izravne izmjene

    Stvaranje zakrpa
    Kao što sam već rekao, mom telefonu je u početku zabranjeno korištenje Googlea. Pa, bez obzira na sve, ne možete otići u Playstore, ne možete postaviti račun, telefonski imenik se zapravo ne sinkronizira. Zašto vam treba takav Android? Nakon dugog kopanja po logcatu samog uređaja, pronašao sam unose koji govore da je korištenje Googlea zabranjeno. Najnezgodnija stvar kod Androida je što vidite zapisnik, ali ne znate koja aplikacija sustava ga proizvodi. Da bih otkrio odakle mi noge dolaze, morao sam sve sistemske aplikacije raščlaniti na rastavljeni Java kod. Trebalo mi je puno vremena, ali još uvijek koristim posao koji sam obavio pri analizi i pronalaženju pravog koda. Koraci za dobivanje takvih alata su sljedeći:
    1 . Napravite DEODEX svih firmwarea
    2 . Vaš novi DEODEX firmware će morati biti sastavljen i flash-iran na vaš telefon. Kako se to radi tema je drugog članka.
    3 . Iz svake datoteke koja se nalazi u /system/framework, izdvojite datoteku classes.dex i pretvorite je u JAR koristeći dex2jar.
    4 . Otvorite svaki rezultirajući JAR u JD-GUI-ju i ponovno ga spremite u izvorni kod
    5 . Raspakirajte izvorni kod iz arhive.

    Na kraju sam dobio onoliko mapa koliko je bilo JAR datoteka u /system/framework, a svaka mapa je imala strukturu Java izvornog koda.
    Kroz jednostavne manipulacije, brzo sam pronašao mjesto koje je generiralo unose u logcatu.

    Nećemo razmatrati cijelu logiku zabrane jer je svaki slučaj posebna priča. Morao sam potrošiti nekoliko sati prije nego što sam pronašao gdje su napravljene provjere, napravio blok dijagram algoritma u svojoj glavi i shvatio gdje ići da malo "pokvarim" algoritam.

    Ispostavilo se da je jednostavno. Postoji potprogram koji, na temelju unaprijed utvrđenih konstanti, kada se kontaktira, odgovara pripada li telefon Kini ili ne.

    Šifra je bila u datoteci HTCExtension.jar, a klasa koja je sadržavala ovaj potprogram bila je u

    Raspakiranje i analiza izvorne datoteke
    1 . Prvo, moramo uzeti originalnu DEODEX JAR datoteku, koja je odgovorna za dio koda koji nam je potreban. U našem slučaju HTCExtension.jar.
    2 . Otvorite bilo kojim arhivatorom i izvucite classes.dex od tamo
    3 . Upotrijebite pretvarač dex2jar da ga pretvorite u JAR datoteku. Naredba: dex2jar.bat classes.dex
    4 . Otvorite rezultirajuću datoteku classes_dex2jar.jar u JD-GUI.
    5 . Da, najčešće JD-GUI dekompilira kod ne onako kako izgleda u originalu, razumljivo je, ali je prilično čitljivo. U izvornom kodu vidimo da podrutina provjerava parametre projekta i oznaku jezika firmvera. U našem nesretnom slučaju, vraća se TRUE.
    public static boolean isChina() ( if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag = = 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return true; return false; )
    6 . Da bismo napravili zakrpu, moramo rastaviti sam Dalvik kod. Za ovo koristimo baksmali. Najprikladniji način je stvoriti zasebnu mapu i tamo staviti tri datoteke zajedno: HTCExtension.jar, mali.jar I baksmali.teglica. Dajte naredbu java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

    Ovo je API za vašu verziju Androida. Za JB je 16
    - mapa u kojoj se nalaze svi okviri firmvera.

    U mom slučaju to je bila naredba
    java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar
    7 . U našoj novostvorenoj mapi pojavila se mapa HTCExtension, au njoj naše datoteke s Dalvik kodom.
    8 . Traženje datoteke duž staze \com\htc\util\contacts\BuildUtils$Customization.java i pogledaj kod:
    .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 v2, 0xd8 if-eq 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 v1, Lcom/htc/htcjavaflag/HtcBuildFlag ;->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/htc/htcjavaflag/HtcBuildFlag;-> 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-eq v1, v2, :cond_13 .line 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 const/4 v0, 0x0 goto:goto_13 .end metoda
    9 . Zastrašujuće, zar ne? Ništa nije jasno. Ali ovo je problem koji se može popraviti. Nakon što ste izradili nekoliko vlastitih zakrpa i time stekli iskustvo, možete jednostavno modificirati kod bez alata treće strane. U našem slučaju, u ovom kodu
    .prologue const/4 v0, 0x1 varijabli v0 dodjeljuje vrijednost 1, to jest TRUE. Zatim postoje sve vrste provjera, a ako telefon nije kineski, tada se mijenja vrijednost varijable:
    .linija 297 const/4 v0, 0x0 goto:goto_13
    10 . Najlakši način da spasite oca ruske demokracije je da promijenite kod u sljedeći:
    .prologue const/4 v0, 0x0 , odnosno promijeniti vrijednost varijable iz 1 u 0. To jest, bez obzira na sve, uvijek bi se vratila vrijednost FALSE i u JD-GUI kod bi izgledao kao public static boolean isChina() ( if (( HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) ) && ( 2 == HtcBuildFlag.Htc _LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; )
    11 . Da, metoda će djelovati. Ali mi ne tražimo lake načine – ovaj put. Drugo, nije baš lijepo. Želio bih kodirati nešto poput
    public static boolean isChina() ( return false; )
    12 . Kako možemo dobiti Dalvik kod za ovaj izvorni kod? Za početnike ćemo napraviti mali trik.

    Stvaranje Dalvik koda
    1 . Otvorite Android SDK.
    2 . Stvaramo novi projekt i pišemo sljedeći kod u našoj jedinoj test klasi
    paket ru.habrahabr.test; test javne klase ( javni statički boolean isChina() ( return false; ) )
    3 . Sastavljamo naš projekt i zatim preuzimamo sastavljenu aplikaciju iz radnog prostora.
    4 . Sastavljenu aplikaciju stavljamo u mapu u kojoj smo izbacili JAR datoteku.
    5 . Dajte naredbu java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
    6 . Rastavili smo novoizgrađenu aplikaciju u Dalvik kod.
    7 . Otvorite našu datoteku test.smali i pogledajte tamošnji kod
    .metoda public static isChina()Z .registri 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method
    8 . To je to, kod za krpanje je spreman.
    Motanje flastera
    1 . Dalvik kod je prepun markera koji označavaju liniju koda u originalnoj izvornoj datoteci. Ovo je neophodno kada se prikazuju greške, ako ih ima, u vašem programu. Kôd također radi dobro bez navođenja linija.
    2 . Brišemo retke s brojevima redaka, kopiramo i zamijenimo metodu (podprogram) u našem \com\htc\util\contacts\BuildUtils$Customization.java datoteka.
    .metoda public static isChina()Z .registri 1 .prologue const/4 v0, 0x0 return v0 .end metoda
    3 . Spremite datoteku. Da, zaboravio sam reći, potreban vam je normalan editor, na primjer Notepad++ ili EditPlus. Tko voli koji?
    Sastavljanje i izrada zakrpane JAR datoteke
    1 . Koristeći backsmali, uništili smo našu JAR datoteku i sada je moramo ponovno sastaviti.
    2 . Dajte naredbu java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
    3 . Datoteka classes.dex pojavljuje se u našoj mapi
    4 . Ponovno otvaranje HTCExtension.jar datoteku s arhiverom i zamijenite postojeću u njoj razredi.dex našem upravo stvorenom.
    5 . To je to, naše HTCExtension.jar sadrži modificirani programski kod.
    Zamjena izvorne datoteke zakrpanom
    Obično se za obične korisnike izrađuju posebne skripte koje se zamjenjuju oporavkom. Ali nas to ne zanima. Prvo, dugo je i zamorno, a drugo, mi smo iskusni korisnici i možemo si priuštiti neke suptilnosti.

    1 . Možete zamijeniti trenutnu radnu datoteku sa sljedećim naredbama ako već imate DEODEX firmware i imate root pristup:

    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@ [e-mail zaštićen]@classes.dex ponovno pokretanje

    Prva naredba učitava zakrpanu datoteku na flash pogon
    2. naredba otvara ljusku
    3. naredba daje root pristup
    4. naredba montira sustav u modu čitanja/pisanja
    5. naredba stvara sigurnosnu kopiju datoteke
    Šesta naredba prepisuje postojeću datoteku novom zakrpanom.
    Sedma naredba konfigurira dopuštenja
    8. naredba briše predmemoriju
    9. naredba ponovno pokreće uređaj.

    2 . Hvala što ste pročitali do ove točke, ostalo je još malo.
    3 . Nakon ponovnog pokretanja, vaš novi zakrpani kod stupit će na snagu.
    4 . Ako kod ne radi ili se pojavi pogreška, pomoću jednostavnih kombinacija možete vratiti sigurnosnu kopiju.
    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@ [e-mail zaštićen]@classes.dex ponovno pokretanje

    Epilog

    Da, neki su smatrali da je ovaj članak previše specifičan, neki su ga smatrali teško razumljivim, a neki su ga smatrali beskorisnim. Namjerno sam izbjegao dubinske detalje i ilustracije kako to sve izgleda uživo iu praksi. Prvo, ovaj posao će biti nezahvalan i samo će izazvati još više pitanja. Drugo, ne želim vidjeti vojsku korisnika na forumima koji se žale da su uništili svoj telefon.

    Za sljedeći članak ću vam reći kako napraviti Tweeks. Bit će prikazan primjer korištenja automatskog snimanja telefonskih poziva korištenjem izvornih telefonskih alata. Hvala vam na pažnji.

    p.s. Ako nešto nije jasno ili zbunjujuće, postavite pitanja - uvijek ću rado odgovoriti i objasniti.

    Dok ste koristili različiti firmware za Android, vjerojatno ste naišli na koncepte kao što su "odexed" i "deodexed". I često, kada izvodite bilo kakve manipulacije s firmverom, morate znati je li "odeksiran" ili "deodeksiran" kako ne biste napravili ništa glupo. Dakle, što stoji iza ova dva pojma?

    Odexed ROM

    Ako je firmware označen odexed, tada ćete u mapi sistemskih aplikacija /system/app pronaći datoteke s ekstenzijom .odex. Ovo proširenje znači ""Optimizirana Dalvik izvršna datoteka"". Uz normalnu APK datoteku, pronaći ćete njezinu .odex kopiju. Na primjer, Browser.apk i browser.odex.

    Što je .odex datoteka?

    Ova datoteka prvenstveno služi za organiziranje strukture bilo koje aplikacije, sadrži upute za aplikaciju i omogućuje Androidu da im brzo pristupi bez nepotrebnog pretraživanja i izdvajanja iz .apk datoteke. Odex datoteke izravno se učitavaju u predmemoriju Java virtualnog stroja "dalvik", što omogućuje sustavu da radi mnogo brže.

    Prednosti Odexed firmware-a

    Aplikacije se pokreću puno brže jer je njihov kod unaprijed učitan u dalvik predmemoriju. Veličina .apk datoteka je mala, pa zauzimaju manje prostora.

    Nedostaci Odexed firmware-a

    Aplikacija za modificiranje/teme/hakiranje postaje mnogo složenija jer se kod sada nalazi na dva različita mjesta. Ako izbrišete bilo koju aplikaciju, mora se izbrisati i .odex datoteka. Ako ga ne uklonite, mogu se pojaviti pogreške.

    Deodeksirani ROM

    Što se tiče ove vrste firmwarea, sve upute i kodovi za aplikacije nalaze se u .apk datotekama. Kôd koji je bio pohranjen u .odex datoteci sada je ugrađen u .apk koji se zove razredi.dex.

    Prednosti deodeksiranog firmware-a

    Deodexed je mnogo lakši za modificiranje/teme/hakiranje jer je sav kod sada u jednoj .apk datoteci. Aplikacije sustava lakše je ukloniti jer trebate ukloniti samo jednu APK datoteku.

    Nedostaci deodeksiranog firmware-a

    Aplikacije pokreću sporije. No, ne samo aplikacije, već i sam sustav duže se učitava, jer se sadržaj aplikacije učitava iz sustava, a ne direktno.

    Android firmware, koji dolazi izravno od proizvođača raznih uređaja, uglavnom je odexed. Prilagođeni firmware, u 9 od 10 slučajeva, deodeksiran je. Ono što dobivamo je da odexed firmware ima bolju radnu brzinu, Deodexed je prikladniji za hakiranje, modificiranje i druge manipulacije. To je to, ukratko o glavnom.