Odex a Deodex - čo to je a aký je rozdiel? Čo je odex a deodex v systéme Android Ako deodexovať firmvér pomocou programu jbart.

Čo sú to Odex a Deodex?

V priečinku systém / aplikácia sú súbory APK a Odex. Deodex - znamená, že všetky súbory odex sú zahrnuté v APK a nie sú v priečinku systém / aplikácia. Systém Deodex je vhodný na úpravu, ale verí sa, že je nestabilnejší a pomalší, ale v praxi mi to osobne vyhovuje. Súbory Odex sú zabalené moduly kódu dex, ktoré sa zvyčajne nachádzajú v apk. Dalvic VM ho používa na urýchlenie spustenia aplikácie.

Na urýchlenie načítania virtuálneho počítača Dalvik je možné spustiteľný kód (classes.dex) presunúť z programov (súbory .apk) do samostatných súborov s príponou .odex. V tejto forme je spravidla nainštalovaný továrenský (oficiálny) firmvér. Nevýhodou tohto riešenia je nemožnosť prispôsobenia rozhrania.

prevádzanie spustiteľného kódu zo súborov .odex späť na súbory programu (.apk).
Na inštaláciu firmvéru Deodex obvykle potrebujete Root and CWM Recovery alebo inú upravenú obnovu (TWPR, Philz Touch atď.).

Firmvér Odex alebo Deodex môžete zistiť nasledovne.
Ak priečinok systém / aplikácia obsahuje iba súbory s príponou APK, potom firmvér deodex, ak existujú súbory s príponou odex, tak firmvér odex. Všetky oficiálne produkty odex. Takmer všetky upravené deodexové firmvéry, ale medzi upravenými existujú aj odexové firmvéry.

Čo to znamená dať Deodex?
Povedzme, že ste už pre svoj firmvér, buď vytvorený alebo nájdený, samotné súbory deodex. Teraz ich musíte nahrať do priečinka systému / aplikácie, ale jednoducho ich nemôžete nahradiť pomocou prieskumníka, pretože systém ich v súčasnosti môže používať. Na to existuje pripravené súbory... Oni (súbory) sú umiestnené v špeciálnom archíve ZIP so skriptom na obnovu režimu (tento skript môžete napísať sami) a tento archív stačí vložiť pomocou akejkoľvek upravenej obnovy.pokyny na inštaláciu súborov zip

Tento archív ZIP je archív so súbormi deodexedovanými a pokynmi na inštaláciu prostredníctvom režimu. zotavenie. Ak máte trhlinu, potom po inštalácii deodexed odletí ruština, je to v poriadku, ruštinu stačí preinštalovať. K tomu dochádza, pretože v systéme Android je popísaný jazyk rozhrania Súbor XML ktorý je obsiahnutý v apk. Russifikácia sa vykonáva pridaním ruského xml do apk a pri inštalácii Russifieru do vášho systému sa starý apk jednoducho nahradí novým rusifikovaným. Inštalácia trhliny sa vykonáva s rovnakým ZIP pre režim. zhodnocovanie ako aj deodex. Rusifikované súbory sú už deodexované, pretože nemôžeme upravovať súbory odex. Deodexované archívy, ktoré máme, sú prevzaté zo zahraničných stránok, takže v nich nie je ruština, takže po ich inštalácii musíte crack znova nainštalovať.

Po inštalácii deodexed sa obnovia a nahradia všetky systémové aplikácie, a to všetko z rovnakého dôvodu, ako je popísané vyššie. Preto mazanie systémové súbory sa musí vykonať po inštalácii deodexed.

Ahoj Habr!

Pred niekoľkými rokmi, keď som sa prvýkrát zoznámil s Androidom, som od svojho kolegu z práce počul, že Android poskytuje možnosť nainštalovať upravený alebo svojpomocne vyrobený firmvér. Úprimne povedané, potom som od toho mal ďaleko. A ani pred pol rokom som sa o také veci takmer nezaujímal. V hĺbke srdca som si bol istý, že to, čo výrobca robí, je už určené na bežné použitie.

Predstavte si moje sklamanie, keď som si kúpil telefón zo Strednej ríše, kde bolo používanie výrobných nastavení Google, Skype, Facebook a ďalších aplikácií zakázané. V zásade bolo možné nad niektorými vecami zatvárať oči, ale keď môj telefón nenaznačoval používanie účtu Google, sľúbil som, že definitívne zistím, čo to so mnou bude.

Uplynulo pol roka a moje vlastné firmvéry sa úspešne používajú po celom svete.

Táto séria článkov bude diskutovať o tom, ako vykonať reverzné programovanie pre Android, implementovať záplaty, vylepšenia a režimy.

Preambula

Takže! Najprv definujme koncepty, v ktorých sa budú používať danýčlánok. Vaše obvyklé chápanie však môže byť veľmi odlišné.

Nášivka- zmena alebo nahradenie existujúceho programového kódu za účelom úpravy algoritmu programu.
Maud- spravidla pridanie ďalších funkcií do existujúceho programového kódu bez zmeny algoritmu.
Vyladiť- zlepšenie funkčnosti programu s cieľom uľahčiť prístup k parametrom systému.

Tiež chcem poznamenať, že všetky príklady budú uvedené pre telefón HTC, ale to neznamená, že tieto informácie nemožno použiť na iných telefónoch.

Príprava prostredia

Môžem sa zaobísť bez podrobné pokyny ako používať to alebo ono softvér... Ak vás tento článok zaujíma a prečítali ste si tieto riadky, dúfam, že ste už skúseným používateľom a máte skúsenosti s používaním, no, alebo aspoň s experimentovaním v tejto oblasti. Pokyny, články a výsledky testov sú k dispozícii v otvorený prístup, však, ako aj na Habrého. Tiež sa zaobídem bez popisu niektorých pojmov, inak sa článok ukáže ako veľmi rozsiahly a únavný. O prípade budeme iba písať. Som si istý, že vaše prostredie už dlho stojí. Ak nie, odporúčam stiahnuť a nainštalovať.

1 . Android SDK... Ide o vývojové prostredie pre aplikácie pre Android. Aby sme mohli vykonať zmeny, určite budeme musieť skontrolovať náš programový kód. Vývojové prostredie je to najlepšie, čo môžeme použiť.
2 . Kuchyňa s Androidom... Tento nástroj vám umožní pracovať s obrázkami systémových oddielov oficiálneho alebo neoficiálneho firmvéru.
3 . JD-GUI... Decompiler programového kódu jazyka Java. Hneď poznamenávam, že toto je najlepší dekompilátor z hľadiska použiteľnosti.
4 . DJ Java Decompiler... Ďalší dekompilátor alebo rozoberač, ako niektorí ľudia radi volajú, programový kód jazyka Java. Nie je to pohodlné z hľadiska použitia, ale analyzuje kód, ktorému JD-GUI niekedy nerozumie.
5 . smali... Ďalší rozoberač, ale už dalvický kód. smali je potrebný na demontáž a backsmali na zostavenie kódu.
6 . dex2jar... Nástroj na konverziu spustiteľných súborov kódu Dalvik.

Konverzia firmvéru

Firmvér vo vašom telefóne od výrobcu je samozrejme optimalizovaný tak, aby znižoval spotrebu energie. Aby bol firmvér meniteľný, musí byť prevedený do formátu, ktorý umožňuje zmenu kódu. Na tento účel sa používa Android Kitchen. Môžete, samozrejme, rukami, ako som to urobil predtým, kým som nenašiel túto „kuchyňu“. Ako vytiahnuť systémovú oblasť z telefónu, nainštalovať prostredie, vytvoriť firmvér DEODEX, si môžete prečítať na internete. Ak už niečomu nerozumiete, myslím si, že stojí za to článok odložiť, kým nezískate dostatok skúseností.

Potom, čo sa firmvér z optimalizovaného pohľadu (ODEX - optimalizovaný spustiteľný kód dalvik, ak mi pamäť slúži) stane DEODEX (to znamená, že nie je optimalizovaný), všetky spustiteľné súbory sú pripravené na úpravu.

Úpravy priamo

Vytváranie záplat
Ako som povedal, môj telefón bol pôvodne zakázaný spoločnosti Google. Aj keď prasknete, nemôžete ísť do obchodu Playstore, účet neprispôsobovať, telefónny zoznam nie je skutočne synchronizovaný. Prečo potrebujete taký Android? Keď som dlho kopal v protokole samotného zariadenia, našiel som záznamy, ktoré hovorili, že používanie Googlu je zakázané. Najnepríjemnejšia vec v Androide je, že vidíte protokol, ale neviete, ktorá systémová aplikácia ho vytvára. Aby som zistil, odkiaľ mi rastú nohy, musel som vypitvať všetky systémové aplikácie, aby som rozložil kód Java. Trvalo to nejaký čas, ale stále používam prácu na analýzu a nájdenie kódu, ktorý potrebujem. Fázy získania takejto súpravy nástrojov sú tieto:
1 ... Vytvorte DEODEX všetkého firmvéru
2 ... Váš nový firmvér DEODEX bude potrebné zostaviť a vložiť do telefónu. Ako sa to robí, je téma iného článku.
3 ... Extrahujte súbor classes.dex z každého súboru umiestneného v / system / framework a konvertujte ho na JAR pomocou dex2jar.
4 ... Každý prijatý JAR sa otvorí v JD-GUI a znova sa uloží do zdrojového kódu
5 ... Rozbaľte zdrojový kód z archívu.

Skončil som s toľkými priečinkami, koľko bolo súborov JAR v / system / framework, a každý priečinok mal štruktúru zdrojového kódu Java.
Prostredníctvom jednoduchých manipulácií som rýchlo našiel miesto, ktoré generovalo položky v protokole.

Nebudeme brať do úvahy celú logiku zákazu, pretože toto je samostatný prípad pre každý prípad. Musel som stráviť niekoľko hodín, kým som zistil, kde sa vykonávajú kontroly, vybudovať si v hlave blokový diagram algoritmu a zistiť, kam vyliezť, aby som algoritmus trochu „pokazil“.

Všetko sa ukázalo byť jednoduché. Existuje podprogram, ktorý na základe vopred stanovených konštánt na otázku odpovedal, či telefón odkazuje na Čínu alebo nie.

Kód bol v súbore HTCExtension.jar, a trieda, ktorá obsahovala tento podprogram, bola v

Rozbalenie a analýza pôvodného súboru
1 ... Najprv musíme vziať pôvodný súbor DEODEX JAR, ktorý je zodpovedný za časť kódu, ktorý potrebujeme. V našom prípade HTCExtension.jar.
2 ... Otvorte ho pomocou ľubovoľného archivátora a odtiaľ stiahnite class.dex
3 ... Pomocou prevodníka dex2jar ho preveďte do súboru JAR. Príkaz: dex2jar.bat classes.dex
4 ... Otvorte výsledný súbor classes_dex2jar.jar v JD-GUI.
5 ... Áno, JD-GUI najčastejšie dekomplikuje kód nie tak, ako vyzerá v origináli, je zrozumiteľný, ale je celkom možné ho prečítať. V zdroji vidíme, že podprogram kontroluje parametre projektu a jazykový príznak firmvéru. V našom nešťastnom prípade sa vráti PRAVDA.
public static boolean isChina () (ak ((HtcBuildFlag.Htc_PROJECT_flag == 216) || | (HtcBuildFlag.Htc_PROJECT_flag == 27)) return true; return false;)
6 ... Aby sme vytvorili opravu, musíme rozobrať samotný kód Dalvik. Na to používame baksmali. Najpohodlnejším spôsobom je vytvoriť samostatný priečinok a spojiť tam tri súbory: HTCExtension.jar, smali.jar a baksmali.jar... Dáme príkaz java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

Toto je API vašej verzie systému Android. Pre JB je to 16
- priečinok, v ktorom sú umiestnené všetky rámce firmvéru.

V mojom prípade to bol príkaz
java -Xmx512m -jar baksmali.jar -a 16 -d S: \ dev \ Android \ Android -Kitchen \ WORKING_JB_15 \ system \ framework -o HTCExtension -x HTCExtension.jar
7 ... V našom novovytvorenom priečinku sa objavil priečinok HTCExtension a v ňom naše súbory s kódom Dalvik.
8 ... Súbor nachádzame pozdĺž cesty \ com \ htc \ util \ kontakty \ BuildUtils $ Customization.java a pozri sa na kod:
.metoda 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 v , 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 / htc;- > 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_ -ne v1, v0 ,: cond_1d .line 285 const / 4 v1, 0x2 sget-short v2, Lcom / htc / htcjavaflag / HtcBuildFlag;-> Htc_LANGUAGE_flag: S if-eq: cond_ v2. 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, 0x13. Metóda
9 ... Strašidelné, však? Nič nie je jasné. Ale toto je opraviteľná vec. Po vytvorení niekoľkých vašich opráv a vyplnení vašej ruky môžete kód ľahko upraviť bez nástrojov tretích strán. V našom prípade v tomto kóde
.prologue const / 4 v0, 0x1 premennej v0 je priradená hodnota 1, to znamená PRAVDA. Potom existujú všetky druhy kontrol, a ak telefón nie je čínsky, hodnota premennej sa zmení:
.line 297 const / 4 v0, 0x0 prejsť: prejdi_13
10 ... Najľahším spôsobom, ako zachrániť otca ruskej demokracie, je zmeniť kód na nasledujúci:
.prologue const / 4 v0, 0x0, to znamená, že zmeníte hodnotu premennej z 1 na 0. To znamená, že nech už to bolo čokoľvek, hodnota by vždy vrátila hodnotu FALSE a v JD-GUI by kód vyzeral ako verejný statický boolean isChina () (if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23 )t (H2) ((||) == 27)) return false; return false;)
11 ... Áno, metóda bude fungovať. Nehľadáme však jednoduché spôsoby - tentoraz. Za druhé, nie je to veľmi krásne. Chcel by som kódovať niečo podobné
public static boolean isChina () (return false;)
12 ... A ako k tomu získame dalvický kód zdrojový kód? Pre začiatočníkov urobíme malý trik.

Generovanie kódu Dalvik
1 ... Otvorte súpravu Android SDK.
2 ... Vytvoríme nový projekt a v našej jedinej testovacej triede napíšeme nasledujúci kód
balíček ru.habrahabr.test; test verejnej triedy (public static boolean isChina () (return false;))
3 ... Zostavíme náš projekt a potom stiahneme zostavenú aplikáciu z pracovného priestoru.
4 ... Zostavenú aplikáciu sme vložili do priečinka, kde sme vylúštili súbor JAR.
5 ... Dáme príkaz java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 ... Novo postavenú aplikáciu sme rozobrali na kód Dalvik.
7 ... Otvorte náš súbor test.smali a pozrite sa na jeho kód
.metoda public static isChina () Z .registers 1 .prologue .line 7 const / 4 v0, 0x0 return v0 .end method
8 ... To je všetko, opravný kód je pripravený.
Rolovanie náplasti
1 ... Dalvikov kód je posiaty značkami označujúcimi riadok kódu v pôvodnom zdrojovom súbore. Je to nevyhnutné pri zobrazovaní chýb, ak vo vašom programe existujú. Bez zadania reťazcov kód tiež funguje skvele.
2 ... Vymažeme riadky s číslovaním riadkov, skopírujeme a nahradíme metódu (podprogram) v našom \ com \ htc \ util \ kontakty \ BuildUtils $ Customization.java súbor.
.metoda public static isChina () Z .registers 1 .prologue const / 4 v0, 0x0 return v0 .end method
3 ... Uložíme súbor. Áno, zabudol som povedať, že potrebujete normálny editor, napríklad Notepad ++ alebo EditPlus. Komu sa čo páči.
Kompilácia a vytváranie opraveného súboru JAR
1 ... S pomocou backsmali sme vygúglili náš súbor JAR a teraz ho musíme dať znova dohromady.
2 ... Dáme príkaz java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 ... Súbor classes.dex sa objaví u nášho tátoša
4 ... Opäť sa otvára HTCExtension.jar súbor s archivátorom a nahraďte v ňom existujúci triedy.dex na náš novovytvorený.
5 ... Všetko, naše HTCExtension.jar obsahuje upravený kód programu.
Výmena pôvodného súboru za opravený
Obvykle sú pre bežných používateľov vytvárané špeciálne skripty, ktoré sú nahradené obnovením. Ale toto nás nezaujíma. Po prvé, je to dlhé a únavné, a po druhé, sme skúsení používatelia a môžeme si dovoliť niektoré jemnosti.

1 ... Ak už máte firmvér DEODEX a máte prístup root, môžete aktuálny pracovný súbor nahradiť nasledujúcimi príkazmi:

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 / [chránené e -mailom]@[chránené e -mailom] reštartovať

Prvý príkaz nahraje opravený súbor na USB flash disk
2. príkaz otvorí shell
Tretí príkaz poskytuje prístup root
Štvrtý príkaz prepne systém do režimu čítania / zápisu
5. tím áno záloha súbor
Šiesty príkaz prepíše existujúci súbor novým opraveným.
Siedmy príkaz konfiguruje povolenia
8. príkaz vymaže vyrovnávaciu pamäť
9. príkaz reštartuje zariadenie.

2 ... Ďakujem, že ste dočítali až do tohto bodu, veľa toho nezostalo.
3 ... Po reštarte sa váš nový opravený kód prejaví.
4 ... Ak kód nefunguje alebo sa objaví chyba, môžete záložnú kópiu vrátiť pomocou nenáročných kombinácií.
adb shell su mount -o remount -rw / system dd if = / system / framework / HTCExtension.jar.back of = / system / framework / HTCExtension.jar rm / data / dalvik -cache / [chránené e -mailom]@[chránené e -mailom] reštartovať

Epilóg

Áno, niekomu sa zdal tento článok príliš konkrétny, niekomu málo zrozumiteľnému a niekomu zbytočné. Zámerne som to urobil bez hĺbkových podrobností a ilustrácií, ako to všetko vyzerá naživo a v praxi. Po prvé, táto práca bude nevďačná a vyvolá iba ďalšie otázky. Za druhé, nechcem vidieť na fórach armádu používateľov, ktorí sa sťažujú, že zabili svoj telefón.

V nasledujúcom článku vám poviem, ako vykonať vylepšenia. Nasleduje príklad použitia automatického nahrávania telefónnych hovorov natívnymi prostriedkami telefónu. Ďakujem za tvoju pozornosť.

P.S. Ak vám niečo nie je jasné alebo mätúce, položte otázky - vždy rád odpoviem a vysvetlím.

Ak sa aktívne zaujímate o svet Android, inštalujte si vlastný firmvér a rôzne režimy, pravdepodobne ste už počuli, že existujú firmvér Odex a Deodex, čo to znamená? Zistite to z tohto článku!

Čo znamená Odex, Deodex

Na čo slúži Deodex?

Predtým trochu spustíme, aby sme dali všetko na svoje miesto naraz: Aplikácie Deodex vo firmvéri sú potrebné pre tých, ktorí si chcú nainštalovať rôzne režimy - ktoré sa môžu radikálne zmeniť vzhľad Android (zmeniť ikony, zmeniť panel s upozorneniami, pridať alebo odstrániť ponuky). Teraz sa pozrime na to, čo sú odex a deodex vo všeobecnosti.

Čo je to Odex?

V každom programe je takzvaná výkonná časť, ktorá vykonáva zadané užívateľské údaje. V OS Android danýčasť presunutá do samostatný súbor v triedach. DEX

Spravidla však v oficiálny firmvér táto časť aplikácie je vybraná na urýchlenie spustenia a spracovania systému virtuálny prístroj Virtuálny stroj Dalvik(až do systému Android 4.4). Ak je odstránená výkonná časť, potom vola sa to ODEX. S príchodom nového runtime pre Android aplikácie pod názvami UMENIE(od Android Lollipop 5.0), veľké zmeny v fungovaní aplikácií, ale potreba deodexu pre milovníkov modov zostáva.

Výhody a nevýhody firmvéru Odex a Deodex

Odex

  • - Odex, ťažšie upraviteľný firmvér
  • + Odex, funguje o niečo rýchlejšie
  • + Odex, zaberá menej miesta na inštaláciu aplikácií

Deodex

  • - Deodex - ak sa počas deodexingu niečo pokazilo, prídeš na obnovu systému Android
  • + Deodex - jednoduché prispôsobenie firmvéru
  • - Deodex - zaberá viac pamäte na inštaláciu aplikácií

Ako získam firmvér Deodex?

Nasledujú programy, pomocou ktorých môžete spustiť firmvér Deodex. Ale na to sa musíte trochu pripraviť.

  1. Musíte si stiahnuť a nainštalovať Java JDK do svojho počítača
  2. Nainštalujte správcu súborov Root Browser a pomocou neho prejdite do sekcie / systém a skopírujte do vnútornej pamäte alebo na pamäťovú kartu nasledujúce priečinky:
    • / priv-app
    • / rámec

Firmvér Deodex pomocou JoelDroid Batch Deodexer

Verzie systému Android: Lollipop 5.x.x
Potrebné pre prácu: NET Framework 4.5 a Java JDK
Stiahnuť ▼: JoelDroid Batch Deodexer

Ako používať JoelDroid Batch Deodexer

  1. Skopírujte priečinky Android (aplikácia, súkromná aplikácia, framework) do ľubovoľného priečinka v počítači (napríklad MyRom)
  2. Spustite program JoelDroid Batch Deodexer a zadajte umiestnenie kliknutím na „Prehľadávať“, priečinky, v ktorých (aplikácia, súkromná aplikácia, rámec)
  3. Kliknite na „Spustiť proces“

Firmvér Deodex používajúci Deodexer pre Android Runtime

Verzie systému Android: Lollipop 5.x.x, Marshmallow 6.x.x
Potrebné pre prácu: Java JDK
Stiahnuť ▼: Deodexer pre Android Runtime

Ako používať Deodexer pre Android Runtime

  1. Rozbaľte archív obsahujúci priečinok programu
  2. Skopírujte priečinky Android (aplikácia, súkromná aplikácia, framework) do ľubovoľného priečinka v počítači (napríklad v systéme)
  3. Spustite program Deodexer for Android Runtime a zadajte umiestnenie priečinka, v ktorom sa nachádza (aplikácia, súkromná aplikácia, rámec)
  4. Skontrolujte deodex: aplikácia, súkromná aplikácia, rámec
  5. Stlačte tlačidlo Vykonať

Firmvér Deodex pomocou Jbart

Verzie systému Android: Ginerbread 2.3.x - Marshmallow 6.x.x
Potrebné pre prácu: Java JDK
Stiahnuť ▼: Jbart

Ako používať Jbart

  1. Rozbaľte archív obsahujúci priečinok programu
  2. Spustite Jbart
  3. Stiahnuť ▼ celý priečinok s / system c Android, presuňte ho do počítača a zabaľte ho do ZIP archívu, alebo potrebujete firmvér zabalený v ZIP
  4. Zadajte ZIP archív
  5. Vyberte Verzia pre Android(Rom API)
  6. Vpravo dole kliknite na „D - (Deodex)“

To je všetko! Viac článkov a pokyny prečítané v tejto sekcii Články a hacky pre Android... Zostaňte s webom Android +1, bude to ešte zaujímavejšie ďalej!

Jeho Tablet s Androidom alebo telefón venoval pozornosť skutočnosti, že existuje firmvér odexed a deodexed... A len málo ľudí chápe, čo sa skrýva za týmito pojmami a aké výhody a nevýhody prináša tento alebo ten typ firmvéru.

Dnes skúsim jednoduchými slovami vysvetlite, čo sú odex a deodex a prečo sú potrebné.

Ak sa na tablete alebo telefóne so zásobným (výrobným) firmvérom pozriete do priečinka so systémovými aplikáciami, všimnete si, že každá aplikácia má okrem súboru apk aj svoje dvojča, súbor odex. Súbor applikatoin.apk napríklad zodpovedá súboru applikatoin.odex.

Prečo je tento súbor odex potrebný? Stručne povedané (a zjednodušene), každý program pozostáva zo sady pokynov, vďaka ktorým funguje, a pomocných údajov, napríklad z obrázkov, ktoré sa zobrazujú na obrazovke. Samotný kód programu je teda uložený v súbore odex.

Všetky aplikácie v Systém Android napísané (kódované) v jazyku Java a aby mozog zariadenia - jeho procesor bol schopný vykonať tento kód Java, je preložený do jazyka zrozumiteľného pre procesor virtuálnym strojom Java „Dalvik“.

Vo firmvéri deodexed je kód vnútri apk súbor a. Súbory APK sú zabalené rovnako ako obvykle zip súbory, takže firmvér deodexovaný je zvyčajne menší.

Pravdepodobne ste už prišli na to, čo je výhodou firmvéru s odexedom. Jeho systémové aplikácie sú už optimalizované na spustenie na konkrétnom hardvéri.

Kód obsiahnutý v aplikácii deodexed je však možné spustiť na akomkoľvek zariadenie s Androidom a tieto programy sa dajú jednoduchšie upravovať. Ak napríklad chcete nahradiť obrázky v ňom, stačí rozbaliť súbor apk ako bežný archív zip, nahradiť obrázky a znova zabaliť aplikáciu. Pri aplikáciách s odexedom toto číslo nebude fungovať - ​​po takýchto zmenách môže program úplne prestať fungovať.

Keď systém Android prvýkrát spustí deodexedované systémové aplikácie, extrahuje z nich kód, prekompiluje a uloží ho na špeciálne miesto: do priečinka dalvik-cache a potom z tohto priečinka prevezme pripravený kód pre požadovaný súbor apk. Preto sa odporúča pri obnovení tabletu alebo telefónu vyčistiť Dalvik-cache (vymazať Dalvik-cache)-program v nový firmvér sa môže zmeniť a systém pri štarte použije starý kód. A preto trvá tak dlho, kým sa deodexovaný firmvér spustí prvýkrát po inštalácii na zariadenie a vymazaní vyrovnávacej pamäte dalvik.

Okrem toho sa verí, že odexované firmvéry fungujú rýchlejšie ako podobné, ale deodexované firmvéry.

V tejto krátkej poznámke povieme našim čitateľom o deodexingu firmvéru pre Android pomocou jBart, ako aj o rozdieloch medzi firmvérom ODEX (odex) a DEODEX (deodex). Po prvé, poďme zistiť, čo sa myslí pojmami odex / deodex, a odkazovať na to na nasledujúce odkazy:

V čase tohto písania aktuálna verzia bol jBart v1.8.9 -"Program je navrhnutý tak, aby automatizoval proces prekladu firmvéru na základe operačného systému Android. Podporuje verzie systému Android od 2.x.x do 4.x.x (vrátane Android 4.4 KitKat). Jadrom programu je upravený apktool. Pracovať aj s jedným súbory apk a jar z firmvéru. "

Bez dlhého naťahovania príbehu - poďme na to praktický príklad... Budeme „trénovať“ na firmvéri od MTS, o ktorom sme písali nie tak dávno. Prvým krokom je tak či onak stiahnutie priečinkov / system / app a / system / framework z tabletu a tiež súboru build.prop. ktoré nájdete v systémovom priečinku. Na kopírovanie môže byť potrebné skopírovať časť firmvéru koreňové práva(Na Oysters T7V 3G sa dajú ľahko získať pomocou aplikácie motochopper, ktoré môžete ľahko nájsť vo vyhľadávačoch). Potom, čo sme stiahli potrebné súbory a priečinky - umiestnite ich do systémového adresára a zabalte ich do archívu - system.zip, takže koreň archívu obsahuje systémový priečinok a v ňom sú aplikácie, podpriečinky rámca a priečinok bulid.prop:

Vyberieme správnu verziu ROM API (t.j. verzia pre Android), v našom prípade je to 4.2.x, stlačte tlačidlo Deodex a čakajte. Po dokončení operácie bude archív s deodexovaným firmvérom umiestnený v jBART-master \ output \ deodexed_system.zip. Ako vidíte, súbory firmvéru už neobsahujú súbory .odex, ale iba .apk. Teraz môžete pristúpiť k ich úprave, prekladu, úprave atď. zmeny. Ale to je už téma na úplne inú nôtu. Stručne povedané, poznamenávame, že pomocou jBart a niekoľkých jednoduchých operácií sme sa naučili, ako získať deodex z hodinového firmvéru, t.j. „na mieru“. Súbory, v ktorých sa každý môže upravovať v súlade so svojimi túžbami a potrebami.