Kako dedeksirati firmver koristeći jbart. Šta su odex i deodex u Androidu. Raspakivanje i analiza originalnog fajla

Ako niste samo običan korisnik uređaja baziranog na Androidu, već volite instalirati različite firmvere, onda ste vjerovatno čuli ili čitali na raznim forumima i stranicama o “odeksiranom” i “deodeksiranom” firmveru. Koja je razlika? Ukratko, Deodex firmware je pogodniji za modifikacije. Programer dedeksiranog firmvera može samostalno promijeniti izgled ikona, konfigurirati različite menije i tako dalje. Recimo vam o svemu detaljnije.

Šta je Deodex?

Android firmver, kao i svaka druga aplikacija, ima poseban "izvršni" dio koji je dizajniran za obavljanje unaprijed programiranih radnji. Kao što vidite i sami, ove komande su smeštene u poseban fajl classes.DEX, koji je prisutan u firmveru.

Često, u službenom firmveru, proizvođač premješta ovu datoteku izvan firmvera kako bi ubrzao rad i smanjio količinu memorije koju zauzima firmver. Prelazak na Android 5.0 sa ART runtime okruženjem značajno je promijenio proces pokretanja i instaliranja aplikacija, ali je sam koncept odexa i deodexa zadržan.

Prednosti i nedostaci Odex i Deodex firmware-a


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


+ Pojednostavljeno prilagođavanje firmvera
- Potrebno je više prostora za instaliranje aplikacija

Kako nabaviti Deodex firmware?

Prije početka procesa dedeksiranja firmvera, moraju se ispuniti određeni uvjeti. Prvi korak je da ga instalirate i konfigurišete na vašem računaru. Zatim moramo dobiti Root prava na našem mobilnom uređaju, instalirati bilo koji upravitelj datoteka s pristupom sistemskoj particiji i kopirati sljedeće mape u memoriju uređaja ili na microSD karticu.

/aplikacija
/priv-app
/framework


Deodex koristeći JoelDroid Batch Deodexer

Ovaj uslužni program će raditi samo sa uređajima zasnovanim na Androidu 5.0 i novijim. Također morate instalirati i preuzeti samu aplikaciju.


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

  • Prethodno sačuvani folderi app, priv-app, framework

  • Pokrenite JoelDroid Lollipop Batch Deodexer uslužni program, kliknite na dugme "Pregledaj" i naznačite direktorij na vašem računalu u koji ste kopirali app, priv-app, framework

  • Kliknite na dugme "Pokreni proces"

Deodex koristeći Deodexer za Android Runtime

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


  • Prethodno sačuvani folderi app, priv-app, framework morate postaviti poseban direktorij na svoj računar.

  • Pokrenite uslužni program Deodexer za Android Runtime, navedite direktorij na računaru u koji ste kopirali app, priv-app, framework

  • Kliknite na dugme "izvršiti" i pričekajte da se završi proces dedeksacije.

Deodex koristeći Jbart

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



Svako od vas je više puta čuo riječi “deodex” ili “odex”. Obično se nalaze tamo gdje se objavljuju različiti firmveri za vaš uređaj, na primjer, na XDA-Developers ili 4pda. Dakle, šta to znači, DEODEX ili ODEX? Koje su njihove razlike? Kako napraviti DEODEX? Odgovore na ova i druga pitanja naći ćete u sljedećem broju sažetka “Šta je...”.
Odex (Optimized Dalvik Executable File) je datoteka koja se nalazi u istoj fascikli sa sistemskim aplikacijama, u kojoj se pohranjuje kod samog programa. Kao što znate, svakom programu su potrebne upute, zahvaljujući kojima će on (program) obavljati jednu ili drugu funkciju ili rad. Ovo je upravo programski kod koji sam ranije opisao. Ako želite da izmenite bilo koji sistemski fajl, moraćete da kopate i u samu odex datoteku i u .apk kada instalirate odex firmver. Iz ovoga postaje jasno da ovaj proces neće biti lak. Iz tog razloga je implementirana mogućnost deodex firmware-a.

Kao što već znate, u odex firmware-u datoteke se pohranjuju “nasumično”. Međutim, kod deodeksa nema takvog poremećaja, da tako kažem. Svi fajlovi u deodex-u su pohranjeni kao .zip arhiva, ali su u našem slučaju “upakovani” u .apk. Iz tog razloga, rastavljanje aplikacije za daljnje modifikacije postaje lakše, a zbog činjenice da je sve spakovano na jednom mjestu, deodex firmware će možda zauzimati manje prostora.

Međutim, deodex se ne može beskrajno hvaliti. Glavni nedostatak deodex-a je taj što se aplikacijama učitava malo duže nego na odex-u. Najvjerovatnije, korisnik to neće primijetiti. Ali ne mogu a da ne primijetim 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 nesumnjivo plus odex firmware-a.

Skoro sam zaboravio napomenuti da kada instalirate razne gotove modifikacije sistema za vaš uređaj, morate imati deodex firmware.

Vjerovatno je u ovoj situaciji značenje pojmova jasno. I spreman sam da se kladim da neki ljudi već žele isprobati deodex. Postoji ogroman broj uputstava za deodex firmware na World Wide Webu. Međutim, neću se usuditi da vas pošaljem da ih tražite na Guglu, već ću jednostavno u tišini 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š PC. Za rad ovog uslužnog programa potreban je Java program. Napominjem da u čestim slučajevima Java aplikacija upisuje svoju putanju pogrešno i pogrešno. Iz tog razloga, morate ručno registrirati ovu putanju prema ovim uputama.
  • Nakon ovoga trebamo instalirati bilo koji upravitelj datoteka na naš uređaj koji radi na Android 5.0 Lollipop, preko kojeg trebamo kopirati tri glavna sistemska foldera - APP, PRIV-APP, FRAEMWORK - u poseban folder na SD kartici. Oni se nalaze u root folderu System.


  • Zatim moramo kreirati MyROM folder u korijenu bilo kojeg internog diska na vašem PC-u. Zatim kreiramo još jednu fasciklu u ovoj fascikli, ali sa imenom System. U teoriji, trebali biste dobiti sljedeću putanju - E:\MyROM\system. Gdje je "E" vaša interna memorija (tvrdi disk)
  • One sistemske fascikle koje smo kopirali u drugom koraku potrebno je premestiti u E:\MyROM\system folder.
  • Sada, u teoriji, sve smo pripremili i već možemo nastaviti do tačke DEODEKSACIJE.
  • Pokrenite prethodno instalirani JoelDroid Lollipop Batch Deodexer uslužni program.
  • Klikom na dugme “Pregledaj” u uslužnom programu, moramo pokazati putanju do E:\MyROM\system
  • Put je naznačen, sve je spremno. Sve što treba da uradimo je da pritisnemo taster “Start Prosecc”, nakon čega će početi dedeksacija. Ovaj postupak traje oko 10-15 minuta.
  • Nakon što je dedeksacija završena, moramo kopirati rezultirajuće datoteke, koje se nalaze duž putanje E:\MyROM\system, na MicroSD fleš disk na vašem uređaju.
  • Zatim moramo preuzeti AROMA FileManager i instalirati ga putem prilagođenog oporavka na vašem uređaju. Ali prije instaliranja, moramo odabrati System u odjeljku Mount ako nije odabran.
  • Nakon svega ovoga, moramo otići u korijen fajl sistema i izbrisati foldere APP, PRIV-APP i FRAEMWORK iz System foldera, samo ih obrisati, jer će pri kopiranju ARM folderi ostati, a cijeli proces uzmite u obzir , otišlo je u kanalizaciju.
  • Zatim kopirajte deodex fascikle koje su prethodno prenete u koraku 9 u sistemski folder u korenu celog sistema datoteka.
  • Nakon ovoga, moramo flešovati skriptu koja postavlja dozvole za foldere (RWXRX-RX), .apk datoteke i .xml datoteke (RW-R-R)
  • Zatim moramo napraviti wipe cache i wipe dalvik/art. Ponovo pokrenite uređaj i uživajte u deodex firmveru koji ste dobili.

  • Uvjerite se da imate instaliran DEODEX - možete ažurirati firmver koristeći sljedeće kratke upute: 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, ugodan dan i uspješno LJETO!

    Korisnici Androida mogu se podijeliti u dvije grupe. Prvi su oni kojima je važno da imaju stabilan rad i da telefon jednostavno radi. Drugi su oni koji jedva čekaju da isprobaju nove funkcije i provjere drugi firmver za svoj telefon, koji zaista vole petljati po svom telefonu. Tu leži glavna razlika između ODEX-a i DEODEX firmvera.

    ODEX (odeksirani) firmver– ovo su službeni, brendirani ili fabrički Android firmver. DEODEX (deoksificirani) su firmveri koje su modificirali korisnici.

    Zašto takva razlika?

    “Odexed” firmver će se odmah otkriti prisustvom datoteka sa ekstenzijom .odex u folderu /system/app. Skraćenica odex znači “Optimizirana Dalvik izvršna datoteka”. Ova vrsta datoteke je vrlo neophodna za jasnu strukturu sistema koja sadrži sve informacije o aplikaciji. Android prima podatke odmah direktno bez raspakivanja apk datoteka. .odex datoteke se obično učitavaju u Dalvik-cache, koji pohranjuje informacije o programima koje korisnik često koristi. Brzina sistema se značajno povećava.

    Prednosti ODEX firmvera se mogu zapisatičinjenica da se aplikacije brže otvaraju i apk datoteke zauzimaju malo prostora. Nedostaci su teškoća hakovanja i promjene programa. Ali većini korisnika ovo nije potrebno; oni cijene brzinu i stabilnost sistema.

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

    DEODEX



    U "deodeksiranom" firmveru, informacije o aplikaciji nalaze se u apk datoteci. Kod koji se obično ubacuje u odex datoteku uključen je u apk koji se zove classex.dex.

    Glavne prednosti takvog firmvera su da ih je mnogo lakše modificirati (svi podaci su na jednom mjestu), a sistemske programe je lakše ukloniti.

    Jedan od nedostataka je taj što je potrebno duže vrijeme za pokretanje programa. Ali ovaj nedostatak nije mnogo značajan. Dalvic-cache pohranjuje sve podatke o aplikacijama koje korisnik često koristi. A programima je potrebno dosta vremena da se učitaju tek nakon brisanja Dalvic keša. Na primjer, nakon instaliranja ažuriranja firmvera ili u drugim slučajevima.

    Da rezimiramo, sa sigurnošću možemo reći da se "odeksirani" (tvornički) firmver preporučuje za one koji cijene brzinu i stabilnost. “Deoxed” (prilagođeni) su pogodniji za one kojima je važno da u potpunosti prilagode firmver svojim potrebama, isprobaju nove funkcije i “kopaju dublje” u Android sistem.

    Zdravo Habr!

    Prije nekoliko godina, kada sam prvi put upoznao Android, č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 i prije pola godine jedva da su me takve stvari zanimale. Duboko u srcu, bio sam siguran da je ono što proizvođač radi već namijenjeno normalnoj upotrebi.

    Zamislite moje razočarenje kada sam kupio telefon iz Kine, gdje su fabrička podešavanja zabranjivala korištenje Google, Skypea, Facebooka i drugih aplikacija. U principu, na neke stvari je bilo moguće zažmiriti, ali kada moj telefon nije zahtijevao korištenje Google naloga, obećao sam da ću to definitivno shvatiti bez obzira šta mi se dogodilo.

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

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

    Preambula

    Dakle! Hajde da prvo definišemo koncepte koji će se koristiti datočlanak. Vaše uobičajeno razumijevanje, međutim, može biti veoma različito.

    Patch- promjena ili zamjena postojećeg programskog koda u cilju modifikacije programskog algoritma.
    Maud- po pravilu dodavanje dodatne funkcionalnosti postojećem programskom kodu bez promjene algoritma.
    Podesite- poboljšanje funkcionalnosti programa u cilju lakšeg pristupa sistemskim parametrima.

    Takođe želim da napomenem da će svi primeri 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 uputstava kako koristiti ovaj ili onaj softver. Ako ste zainteresirani za ovaj članak i pročitali ste do sada, nadam se da ste već iskusan korisnik i da imate iskustva u korištenju, ili barem eksperimentiranju u ovoj oblasti. Mnogo je uputstava, članaka i rezultata testova u javnom domenu, baš kao i na Habréu. Neću i bez opisivanja nekih pojmova, inače će članak ispasti jako dug i zamoran. Pisaćemo samo do tačke. Siguran sam da ste u srijedu već dugo vremena. Ako ne, onda predlažem da ga preuzmete i instalirate.

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

    Konverzija firmvera

    Naravno, firmver koji imate na telefonu od proizvođača je optimizovan za smanjenje potrošnje energije. Da bi se firmver mogao modificirati, mora se konvertirati u format koji omogućava izmjenu koda. Za to se koristi Android kuhinja. Naravno, možete to da uradite i svojim rukama, kao što sam ja radio ranije dok nisam našao baš ovu „kuhinju“. Možete pročitati na internetu kako ukloniti sistemsku oblast sa telefona, instalirati okruženje i napraviti DEODEX firmver. Ako već ništa ne razumijete, mislim da je vrijedno odgoditi čitanje ovog članka dok ne steknete dovoljno iskustva.

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

    Direktne modifikacije

    Kreiranje zakrpa
    Kao što sam već rekao, mom telefonu je prvobitno zabranjeno korištenje Google-a. Pa, bez obzira na sve, ne možete ići u Playstore, ne možete postaviti nalog, telefonski imenik se baš ne sinhronizuje. Zašto vam treba takav Android? Nakon dugog kopanja po logcatu samog uređaja, pronašao sam unose koji govore da je upotreba Google-a zabranjena. Najnezgodnija stvar kod Androida je da vidite dnevnik, ali ne znate koja sistemska aplikacija ga proizvodi. Da bih otkrio odakle dolaze moje noge, morao sam sve sistemske aplikacije izbaciti u rastavljeni Java kod. Trebalo mi je dosta vremena, ali i dalje koristim posao koji sam obavio kada sam analizirao i pronašao pravi kod. Koraci za dobijanje takvih alata su sljedeći:
    1 . Napravite DEODEX svih firmvera
    2 . Vaš novi DEODEX firmver će se morati sastaviti i postaviti na vaš telefon. Kako se to radi, tema je drugog članka.
    3 . Iz svake datoteke koja se nalazi u /system/framework, izvucite datoteku classes.dex i konvertujte je u JAR koristeći dex2jar.
    4 . Otvorite svaki rezultirajući JAR u JD-GUI i ponovo ga sačuvajte u izvornom kodu
    5 . Raspakujte izvorni kod iz arhive.

    Na kraju sam dobio onoliko foldera koliko je bilo JAR fajlova u /system/framework, a svaki folder je imao strukturu Java izvornog koda.
    Kroz jednostavne manipulacije, brzo sam pronašao mjesto koje generiše unose u logcat.

    Nećemo razmatrati cjelokupnu logiku zabrane, jer je svaki slučaj zasebna priča. Morao sam provesti nekoliko sati prije nego što sam otkrio gdje su izvršene provjere, napravio blok dijagram algoritma u svojoj glavi i shvatio kuda da idem da malo “pokvarim” algoritam.

    Ispostavilo se da je to jednostavno. Postoji potprogram koji na osnovu unapred postavljenih konstanti, kada se kontaktira, odgovara da li telefon pripada Kini ili ne.

    Kôd je bio u fajlu HTCExtension.jar, a klasa koja je sadržavala ovaj potprogram je bila u

    Raspakivanje i analiza originalnog fajla
    1 . Prvo, trebamo uzeti originalni DEODEX JAR fajl, koji je odgovoran za dio koda koji nam je potreban. U našem slučaju HTCExtension.jar.
    2 . Otvorite bilo kojim arhivatorom i izvucite classes.dex odatle
    3 . Koristite dex2jar pretvarač da ga konvertujete 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, to je razumljivo, ali je prilično čitljivo. U izvornom kodu vidimo da potprogram 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) while). == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) vrati true; vrati false; )
    6 . Da bismo napravili zakrpu, moramo rastaviti sam Dalvik kod. Za to koristimo baksmali. Najprikladniji način je da napravite zasebnu mapu i u nju stavite tri datoteke zajedno: HTCExtension.jar, smali.jar I baksmali.jar. 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
    - folder u kojem se nalaze svi okviri firmvera.

    U mom slučaju to je bila komanda
    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šem novostvorenom folderu pojavio se folder HTCExtension, a u njemu i naši fajlovi sa Dalvik kodom.
    8 . Pronalaženje datoteke duž putanje \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 v2 const/16 v16 , 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/htcjavaclag/htcavacg/htcflag ;->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/htcavatcflag/htcavatcfg> 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 v.1, v1, v.1 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 v1:3ogo_end/ metoda
    9 . Strašno, zar ne? Ništa nije jasno. Ali ovo je problem koji se može popraviti. Nakon što ste kreirali nekoliko vlastitih zakrpa i tako stekli iskustvo, možete lako modificirati kod bez alata treće strane. U našem slučaju, u ovom kodu
    .prologue const/4 v0, 0x1 dodjeljuje varijablu v0 vrijednost 1, odnosno TRUE. Zatim postoje razne vrste provjera, a ako telefon nije kineski, tada se mijenja vrijednost varijable:
    .line 297 const/4 v0, 0x0 goto:goto_13
    10 . Najlakši način da spasite oca ruske demokratije je da promijenite kod u sljedeći:
    .prologue const/4 v0, 0x0 , odnosno promijenite vrijednost varijable sa 1 na 0. To jest, bez obzira na sve, vrijednost FALSE bi uvijek bila vraćena i u JD-GUI-u bi kod izgledao kao javni statički boolean isChina() ( if (( HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == (lag.PROJECT_flag == 23flag_H) 1) && ( 2 == HtcBuildFlag.Htc _LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) vrati false; vrati false; )
    11 . Da, metoda će raditi. Ali ne tražimo lake puteve - ovaj put. Drugo, nije baš lepo. Htio bih kodirati nešto slično
    public static boolean isChina() (vrati false;)
    12 . Kako možemo dobiti Dalvik kod za ovaj izvorni kod? Za početnike ćemo napraviti mali trik.

    Kreiranje Dalvik koda
    1 . Otvorite Android SDK.
    2 . Kreiramo novi projekat i pišemo sljedeći kod u našoj jedinoj testnoj klasi
    paket ru.habrahabr.test; test javne klase (javni statički boolean isChina() (vrati false;)
    3 . Sastavljamo naš projekat, a zatim preuzimamo sastavljenu aplikaciju iz radnog prostora.
    4 . Stavili smo sastavljenu aplikaciju u fasciklu u koju smo izbacili JAR fajl.
    5 . Dajte naredbu java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
    6 . Novoizgrađenu aplikaciju smo rastavili u Dalvik kod.
    7 . Otvorite naš test.smali fajl i tamo vidite kod
    .method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method
    8 . To je to, kod za zakrpe je spreman.
    Rolling a patch
    1 . Dalvik kod je prepun markera koji označavaju red koda u originalnom izvornom fajlu. Ovo je neophodno prilikom prikazivanja grešaka, ako ih ima, u vašem programu. Kod također radi dobro bez specificiranja linija.
    2 . Brišemo redove sa numerisanim redovima, kopiramo i zamjenjujemo metodu (potprogram) u našem \com\htc\util\contacts\BuildUtils$Customization.java fajl.
    .method public static isChina()Z .registri 1 .prologue const/4 v0, 0x0 return v0 .end metoda
    3 . Sačuvajte fajl. Da, zaboravio sam reći, potreban vam je normalan uređivač, na primjer Notepad++ ili EditPlus. Ko voli koji?
    Kompajliranje i izrada zakrpljene JAR datoteke
    1 . Koristeći backsmali, uništili smo naš JAR fajl i sada ga moramo ponovo sastaviti.
    2 . Dajte naredbu java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
    3 . Datoteka classes.dex se pojavljuje u našoj fascikli
    4 . Opet se otvara HTCExtension.jar datoteku sa arhivatorom i zamijenite postojeću u njoj classes.dex na našu upravo stvorenu.
    5 . To je to, naše HTCExtension.jar sadrži modificirani programski kod.
    Zamjena originalne datoteke zakrpanom
    Obično se kreiraju posebne skripte za obične korisnike, koje se zamjenjuju putem oporavka. Ali nas ovo ne zanima. Prvo, dugo je i zamorno, a drugo, mi smo iskusni korisnici i možemo sebi priuštiti neke suptilnosti.

    1 . Možete zamijeniti trenutnu radnu datoteku 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@ [email protected]@classes.dex ponovno pokretanje

    Prva komanda otprema zakrpljenu datoteku na fleš disk
    2. komanda otvara shell
    3. komanda daje root pristup
    Četvrta komanda montira sistem u modu čitanja/pisanja
    5. komanda pravi rezervnu kopiju datoteke
    Šesta komanda prepisuje postojeći fajl novim zakrpljenim.
    7. komanda konfiguriše dozvole
    8. komanda briše keš memoriju
    9. komanda ponovo pokreće uređaj.

    2 . Hvala vam što ste pročitali do sada, ostalo je malo.
    3 . Nakon ponovnog pokretanja, vaš novi zakrpljeni kod će stupiti na snagu.
    4 . Ako kod ne radi ili dođe do greške, tada 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@ [email protected]@classes.dex ponovno pokretanje

    Epilog

    Da, neki su mislili da je ovaj članak previše konkretan, neki su ga smatrali teškim za razumjeti, a nekima beskorisnim. Namjerno sam izbjegao detaljne detalje i ilustracije kako to sve izgleda uživo i u praksi. Prvo, ovaj rad će biti nezahvalan i samo će potaknuti još više pitanja. Drugo, ne želim da vidim armiju korisnika na forumima koji se žale da su ubili svoj telefon.

    Za sljedeći članak ću vam reći kako napraviti Tweeks. Bit će 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, postavljajte pitanja - uvijek ću rado odgovoriti i objasniti.

    Dok koristite različite Android firmvere, vjerovatno ste naišli na koncepte kao što su "odeksiran" i "deodeksiran". I često, kada izvodite bilo kakve manipulacije s firmverom, morate znati da li je "odeksiran" ili "deodeksiran" kako ne biste učinili nešto glupo. Dakle, šta se krije iza ova dva pojma?

    Odexed ROM

    Ako je firmver označen kao odeksiran, tada ćete u folderu sistemskih aplikacija /system/app pronaći datoteke sa ekstenzijom .odex. Ova ekstenzija je skraćenica za ""Optimized Dalvik Executable File"". Pored normalnog APK fajla, naći ćete njegovu .odex kopiju. Na primjer, Browser.apk i browser.odex.

    Šta je .odex datoteka?

    Ova datoteka prvenstveno služi za organiziranje strukture bilo koje aplikacije, sadrži upute za aplikaciju i omogućava Androidu da im brzo pristupi bez nepotrebnog pretraživanja i vađenja iz .apk datoteke. Odex datoteke se direktno učitavaju u keš Java virtuelne mašine „dalvik“, što omogućava sistemu da radi mnogo brže.

    Prednosti Odexed firmware-a

    Aplikacije se pokreću mnogo brže jer je njihov kod unaprijed učitan u dalvik keš memoriju. Veličina .apk datoteka je mala, tako da zauzimaju manje prostora.

    Nedostaci Odexed firmware-a

    Aplikacija za modiranje/teme/hakovanje postaje mnogo složenija jer je kod sada na dva različita mjesta. Ako izbrišete bilo koju aplikaciju, mora se izbrisati i .odex datoteka. Ako ga ne uklonite, može doći do grešaka.

    Deodeksiran ROM

    Što se tiče ove vrste firmvera, sva uputstva i kod za aplikacije nalaze se u .apk datotekama. Kôd koji je pohranjen u .odex datoteci sada je ugrađen u .apk pozvan classes.dex.

    Prednosti Deodexed firmware-a

    Deodexed je mnogo lakši za modovanje/teme/hakovanje jer je sav kod sada u jednoj .apk datoteci. Sistemske aplikacije je lakše ukloniti jer trebate ukloniti samo jedan APK fajl.

    Nedostaci Deodexed firmware-a

    Aplikacije počinju sporije. Ali ne samo aplikacije, već i sam sistem se duže učitava, jer se sadržaj aplikacije učitava iz sistema, a ne direktno.

    Android firmver, koji dolazi direktno od proizvođača raznih uređaja, uglavnom je odeksiran. Prilagođeni firmver, u 9 od 10 slučajeva, je dedeksiran. Ono što dobijamo je da odexed firmware ima bolju radnu brzinu, Deodexed je pogodniji za hakove, modding i druge manipulacije. To je to, ukratko o glavnoj stvari.