Hur man deodex firmware med jbart. Vad är odex och deodex i Android. Uppackning och analys av originalfilen

Om du inte bara är en vanlig användare av en Android-baserad enhet, utan gillar att installera olika firmware, så har du förmodligen hört eller läst på olika forum och sajter om "odexed" och "deodexed" firmware. Vad är skillnaden? Kort sagt, Deodex firmware är bättre lämpad för modifiering. Utvecklaren av deodexad firmware kan självständigt ändra utseendet på ikoner, konfigurera olika menyer och så vidare. Låt oss berätta om allt mer i detalj.

Vad är Deodex?

Android firmware, som alla andra program, har en speciell "verkställande" del som är utformad för att utföra förprogrammerade åtgärder. Som du själv kan se placeras dessa kommandon i en separat filklasser.DEX, som finns i firmware.

Ofta, i officiell firmware, flyttar tillverkaren den här filen utanför firmware för att påskynda arbetet och minska mängden minne som upptas av firmware. Övergången till Android 5.0 med ART runtime-miljön förändrade avsevärt processen för att starta och installera applikationer, men själva konceptet med odex och deodex behölls.

Fördelar och nackdelar med Odex och Deodex firmware


- Mer komplex modifieringsprocess för firmware
+ Liten ökning av den fasta programvarans prestanda
+ Spara utrymme när du installerar program


+ Förenklad anpassning av firmware
- Behöver mer utrymme för att installera applikationer

Hur får man Deodex firmware?

Innan processen med att deodexa den fasta programvaran påbörjas måste ett antal villkor vara uppfyllda. Det första steget är att installera och konfigurera det på din dator. Därefter måste vi skaffa roträttigheter på vår mobila enhet, installera valfri filhanterare med åtkomst till systempartitionen och kopiera följande mappar till enhetens minne eller till ett microSD-kort.

/app
/priv-app
/ramverk


Deodex med JoelDroid Batch Deodexer

Det här verktyget fungerar bara med enheter baserade på Android 5.0 och senare. Du måste också installera och ladda ner själva applikationen.


  • Packa upp arkivet med verktyget ]JoelDroid Lollipop Batch Deodexer V 2.5.

  • Tidigare sparade mappar app, priv-app, ramverk

  • Starta JoelDroid Lollipop Batch Deodexer-verktyget, klicka på knappen "Bläddra" och ange katalogen på din dator dit du kopierade app, priv-app, ramverk

  • Klicka på knappen "Starta process"

Deodex använder Deodexer för Android Runtime

Först av allt, ladda ner arkivet och packa upp det. Den fortsatta processen skiljer sig inte från det tidigare verktyget:


  • Tidigare sparade mappar app, priv-app, ramverk du måste placera en separat katalog på din dator.

  • Kör Deodexer för Android Runtime-verktyget, ange katalogen på din dator dit du kopierade app, priv-app, ramverk

  • Klicka på knappen "Kör" och vänta på att deodexationsprocessen ska slutföras.

Deodex använder Jbart

Till skillnad från tidigare verktyg, som bara kan fungera med enheter baserade på Android 5.0 och högre, är detta verktyg inte kopplat till operativsystemet. Du kan göra Deodex för alla enheter från Android 2.3.x Ginerbread till Android 6.0 Marshmallow.



Var och en av er har hört orden "deodex" eller "odex" mer än en gång. Vanligtvis finns de där olika firmware för din enhet publiceras, till exempel på XDA-Developers eller 4pda. Så vad betyder det, DEODEX eller ODEX? Vilka är deras skillnader? Hur gör man DEODEX? Du hittar svar på dessa och andra frågor i nästa nummer av sammanfattningen "Vad är...".
Odex (Optimized Dalvik Executable File) är en fil som ligger i samma mapp med systemapplikationer, som lagrar koden för själva programmet. Som du vet behöver varje program instruktioner, tack vare vilka det (programmet) kommer att utföra en eller annan funktion eller arbete. Detta är exakt programkoden som jag beskrev tidigare. Om du vill ändra någon systemfil måste du gräva i både odex-filen och .apk-filen när du installerar odex-firmware. Av detta blir det tydligt att denna process inte kommer att vara särskilt lätt. Det är av denna anledning som möjligheten till deodex firmware implementerades.

Som du redan vet lagras filerna i odex firmware "slumpmässigt". Men med deodex finns det ingen sådan störning, så att säga. Alla filer i deodex lagras som ett .zip-arkiv, men i vårt fall är de "packade" i .apk. Av denna anledning blir det lättare att demontera applikationen för ytterligare modifieringar, och på grund av att allt är packat på ett ställe kommer deodex-firmwaren kanske att ta mindre plats.

Deodex kan dock inte berömmas i det oändliga. Den största nackdelen med deodex är att applikationer tar lite längre tid att ladda än på odex. Mest troligt kommer användaren inte att märka detta. Men jag kan inte låta bli att notera att både fördelen med odex och nackdelen med deodex är att alla systemapplikationer i odex är optimerade för en specifik enhet av tillverkaren själv. Och detta är utan tvekan ett plus med odex firmware.

Jag glömde nästan att nämna att när du installerar olika färdiga modifieringar av systemet för din enhet, måste du ha deodex firmware.

Förmodligen, i denna situation, är innebörden av termerna tydlig. Och jag är villig att slå vad om att vissa människor redan vill prova deodex. Det finns ett stort antal instruktioner för deodex firmware på World Wide Web. Jag kommer dock inte att våga skicka dig att söka efter dem på Google, utan jag kommer helt enkelt tyst att skriva ner hela processen och försöka lyfta fram alla små saker.

Instruktionerna för olika versioner av Android är inte desamma. På grund av att Android 5.0 Lollipop är installerat på min enhet kommer jag att skriva instruktioner för deodex specifikt för denna version.

  1. Först måste vi ladda ner ett speciellt verktyg, JoelDroid Lollipop Batch Deodexer, till vår PC. Det här verktyget kräver ett Java-program för att fungera. Jag noterar att i vanliga fall skriver en Java-applikation sin sökväg felaktigt och felaktigt. Av denna anledning måste du registrera denna sökväg manuellt enligt dessa instruktioner.
  • Efter detta måste vi installera på vår enhet som körs på Android 5.0 Lollipop vilken filhanterare som helst genom vilken vi behöver kopiera de tre huvudsystemmapparna - APP, PRIV-APP, FRAEMWORK - till en separat mapp på SD-kortet. De finns i rotmappen System.


  • Därefter måste vi skapa MyROM-mappen i roten på valfri intern enhet på din PC. Sedan skapar vi ytterligare en mapp i den här mappen, men med namnet System. I teorin bör du få följande sökväg - E:\MyROM\system. Där "E" är ditt interna minne (hårddisk)
  • De systemmappar som vi kopierade i det andra steget måste flyttas till mappen E:\MyROM\system.
  • Nu, i teorin, har vi förberett allt, och vi kan redan gå vidare till DEODEXATION-punkten.
  • Starta det tidigare installerade JoelDroid Lollipop Batch Deodexer-verktyget.
  • Genom att klicka på knappen "Bläddra" i verktyget måste vi visa sökvägen till E:\MyROM\system
  • Vägen är indikerad, allt är klart. Allt vi behöver göra är att trycka på "Start Prosecc" -tangenten, varefter deodexation börjar. Denna procedur tar cirka 10-15 minuter.
  • När deodexeringen är klar måste vi kopiera de resulterande filerna, som finns längs vägen E:\MyROM\system, till en MicroSD-flashenhet på din enhet.
  • Därefter måste vi ladda ner AROMA FileManager och installera den via anpassad återställning på din enhet. Men innan vi installerar måste vi välja System i monteringssektionen om det inte är valt.
  • Efter allt detta måste vi gå till roten av filsystemet och ta bort mapparna APP, PRIV-APP och FRAEMWORK från systemmappen, ta bara bort dem, eftersom när du kopierar ARM-mapparna kommer att finnas kvar, och hela processen, överväg det , har gått i sjön.
  • Kopiera sedan deodex-mapparna som tidigare överförts i steg 9 till systemmappen i roten av hela filsystemet.
  • Efter detta måste vi flasha ett skript som ställer in behörigheter för mappar (RWXRX-RX), .apk-filer och .xml-filer (RW-R-R)
  • Därefter måste vi göra wipe cache och torka dalvik/art. Starta om enheten och njut av deodex firmware du fick.

  • Se till att du har DEODEX installerat - du kan uppdatera firmware med följande korta instruktioner: D


    Jag tror fullt ut att jag har pratat om de mest grundläggande sakerna om termerna ODEX och DEODEX, och den här artikeln kan kompletteras. Tack alla för er uppmärksamhet, betygsätt artikeln, ha en bra dag och en lyckad SOMMAR!

    Android-användare kan delas in i två grupper. Den första är de för vilka det är viktigt att ha ett stabilt arbete och att telefonen helt enkelt fungerar. Den andra är de som inte kan vänta med att prova nya funktioner och kolla annan firmware för sin telefon, som verkligen älskar att mixtra med sin telefon. Det är här den största skillnaden mellan ODEX och DEODEX firmware ligger.

    ODEX (odexed) firmware– dessa är officiell, märkes- eller fabriksfast Android-firmware. DEODEX (deoxified) är firmware som modifierats av användare.

    Varför en sådan skillnad?

    “Odexed” firmware kommer omedelbart att avslöja sig genom närvaron av filer med filtillägget .odex i mappen /system/app. Förkortningen odex betyder "Optimerad Dalvik Executable File". Den här typen av filer är mycket nödvändiga för en tydlig systemstruktur som innehåller all information om applikationen. Android tar emot data direkt direkt utan att packa upp apk-filerna. .odex-filer laddas vanligtvis in i Dalvik-cache, som lagrar information om program som användaren ofta använder. Hastigheten på systemet ökar avsevärt.

    Fördelarna med ODEX firmware kan skrivas ner det faktum att applikationer öppnas snabbare och apk-filer tar lite plats. Nackdelarna är svårigheten att hacka och byta program. Men de flesta användare behöver inte detta; de värdesätter systemets hastighet och stabilitet.

    Till exempel är sådan firmware en idealisk lösning för dem som bara vill ladda ner spel till en Android-surfplatta (http://vipsmart.org/all-genres/tablet/).

    DEODEX



    I "deodexed" firmware finns programinformation i apk-filen. Koden som vanligtvis infogas i en odex-fil ingår i en apk som heter classex.dex.

    De främsta fördelarna med sådan firmware är att de är mycket lättare att ändra (all data finns på ett ställe), och systemprogram är lättare att ta bort.

    En av nackdelarna är att program tar längre tid att starta. Men denna nackdel är inte särskilt betydande. Dalvic-cache lagrar all data om applikationer som användaren ofta använder. Och program tar lång tid att ladda först efter att ha rensat Dalvic-cachen. Till exempel efter installation av en firmwareuppdatering eller i andra fall.

    För att sammanfatta kan vi med tillförsikt säga att "odexad" (fabriks) firmware rekommenderas för dem som värdesätter hastighet och stabilitet. "Deoxade" (anpassade) är mer lämpliga för dem för vilka det är viktigt att anpassa firmwaren helt för att passa deras behov, prova nya funktioner och "gräva djupare" i Android-systemet.

    Hej Habr!

    För flera år sedan, när jag först introducerades för Android, hörde jag från en arbetskollega att Android ger möjligheten att installera modifierad eller hemmagjord firmware. Ärligt talat var jag långt ifrån det då. Och till och med för ett halvår sedan var jag knappt intresserad av sådant. Djupt i mitt hjärta var jag säker på att det som tillverkaren gjorde redan var avsett för normal användning.

    Föreställ dig min besvikelse när jag köpte en telefon från Kina, där fabriksinställningarna förbjöd användningen av Google, Skype, Facebook och andra applikationer. I princip gick det att blunda för vissa saker, men när min telefon inte krävde användning av ett Google-konto lovade jag att definitivt lista ut det oavsett vad som hände mig.

    Ett halvår har gått och min anpassade firmware används framgångsrikt över hela världen.

    Den här serien av artiklar kommer att diskutera hur man gör omvänd programmering för Android, implementerar patchar, tweaks och mods.

    Inledning

    Så! Låt oss först definiera begreppen som kommer att användas i given artikel. Din vanliga förståelse kan dock vara väldigt annorlunda.

    Lappa- ändra eller ersätta befintlig programkod för att modifiera programalgoritmen.
    Maud- som regel lägga till ytterligare funktionalitet till befintlig programkod utan att ändra algoritmen.
    Modifiera- Förbättring av programmets funktionalitet för att underlätta åtkomst till systemparametrar.

    Jag vill också notera att alla exempel kommer att tas för en HTC-telefon, men det betyder inte att denna information inte kan användas på andra telefoner.

    Att förbereda miljön

    Jag klarar mig utan detaljerade instruktioner om hur man använder den eller den programvaran. Om du är intresserad av den här artikeln och har läst så här långt, så hoppas jag att du redan är en erfaren användare och har erfarenhet av att använda, eller åtminstone experimentera inom, detta område. Det finns gott om instruktioner, artiklar och testresultat i allmänhetens egendom, precis som på Habré. Jag kommer också att göra utan att beskriva några termer, annars kommer artikeln att bli väldigt lång och tråkig. Vi kommer att skriva bara till punkten. Jag är säker på att du har varit i onsdags länge. Om inte, föreslår jag att du laddar ner och installerar det.

    1 . Android SDK. Detta är en applikationsutvecklingsmiljö för Android. För att göra ändringar måste vi definitivt kontrollera vår programkod. Utvecklingsmiljön är den bästa vi kan använda.
    2 . Android kök. Detta verktyg låter dig arbeta med bilder av systempartitioner av officiell eller inofficiell firmware.
    3 . JD-GUI. Java-koddekompilerare. Jag skulle genast vilja notera att detta är den bästa dekompilatorn när det gäller användarvänlighet.
    4 . DJ Java Decompiler. Ytterligare en dekompilator, eller disassemblerare, som vissa vill kalla det, av programkod för Java-språk. Det är inte bekvämt att använda, men det analyserar kod som JD-GUI ibland inte förstår.
    5 . smali. Ännu en demonterare, men denna gång dalvik-kod. smali behövs för demontering och backsmali behövs för att montera kod.
    6 . dex2jar. Ett verktyg för att konvertera Dalvik-kod körbara filer.

    Firmware konvertering

    Självklart är firmwaren som du har på din telefon från tillverkaren optimerad för att minska strömförbrukningen. För att den fasta programvaran ska kunna modifieras måste den konverteras till ett format som gör att koden kan modifieras. Android Kitchen används för detta. Naturligtvis kan du göra det med händerna, som jag gjorde förut tills jag hittade just detta "kök". Du kan läsa på Internet hur du tar bort systemområdet från telefonen, installerar miljön och gör DEODEX firmware. Om du inte redan förstår något så tycker jag att det är värt att vänta med att läsa den här artikeln tills du får tillräckligt med erfarenhet.

    Efter att firmware har ändrats från en optimerad version (ODEX - optimerad dalvik körbar kod, om mitt minne fungerar rätt) till DEODEX (det vill säga INTE optimerad), är alla körbara filer redo för modifiering.

    Direkta ändringar

    Skapa patchar
    Som jag redan sa, var min telefon från början förbjuden att använda Google. Nåväl, oavsett vad, du kan inte gå till Playstore, du kan inte skapa ett konto, telefonboken synkroniseras inte riktigt. Varför behöver du en sådan Android? Efter att ha grävt länge i själva enhetens logcat hittade jag poster som sa att användningen av Google är förbjuden. Det mest obekväma med Android är att du ser loggen, men du vet inte vilken systemapplikation som producerar den. För att ta reda på var mina ben kom ifrån, var jag tvungen att knyta alla systemapplikationer till demonterad Java-kod. Det tog mycket tid, men jag använder fortfarande det arbete jag gjorde när jag analyserade och hittade rätt kod. Stegen för att få sådana verktyg är följande:
    1 . Gör DEODEX av all firmware
    2 . Din nya DEODEX firmware måste monteras och flashas på din telefon. Hur detta går till är ämnet i en annan artikel.
    3 . Extrahera filen classes.dex från varje fil som finns i /system/framework och konvertera den till JAR med dex2jar.
    4 . Öppna varje resulterande JAR i JD-GUI och spara den igen i källkoden
    5 . Packa upp källkoden från arkivet.

    Till slut fick jag lika många mappar som det fanns JAR-filer i /system/framework, och varje mapp hade en Java-källkodsstruktur.
    Genom enkla manipulationer hittade jag snabbt platsen som genererade poster i logcat.

    Vi kommer inte att överväga hela logiken i förbudet, eftersom varje fall är en separat historia. Jag var tvungen att spendera ett par timmar innan jag hittade var kontrollerna gjordes, byggde ett blockschema över algoritmen i mitt huvud och förstod vart jag skulle gå för att "spoila" algoritmen lite.

    Det visade sig vara enkelt. Det finns en subrutin som, baserat på förutbestämda konstanter, vid kontakt svarade om telefonen tillhör Kina eller inte.

    Koden fanns i filen HTCExtension.jar, och klassen som innehöll den här subrutinen var i

    Uppackning och analys av originalfilen
    1 . Först måste vi ta den ursprungliga DEODEX JAR-filen, som är ansvarig för den del av koden vi behöver. I vårat fall HTCExtension.jar.
    2 . Öppna med valfri arkivering och dra ut classes.dex därifrån
    3 . Använd dex2jar-konverteraren för att konvertera den till en JAR-fil. Kommando: dex2jar.bat classes.dex
    4 . Öppna den resulterande filen classes_dex2jar.jar i JD-GUI.
    5 . Ja, oftast dekompilerar JD-GUI koden inte som den ser ut i originalet, det är förståeligt, men det är ganska läsbart. I källkoden ser vi att subrutinen kontrollerar projektparametrarna och firmware-språkflaggan. I vårt olyckliga fall returneras TRUE.
    public static boolean isChina() (if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); medan (Flag.1Htc && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return true; return false; )
    6 . För att göra en patch måste vi ta isär själva Dalvik-koden. Till detta använder vi baksmali. Det bekvämaste sättet är att skapa en separat mapp och lägga tre filer där tillsammans: HTCExtension.jar, smali.jar Och baksmali.jar. Ge kommandot java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

    Detta är API:et för din version av Android. För JB är det 16
    - mappen där alla ramverk för fast programvara finns.

    I mitt fall var det kommandot
    java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar
    7 . I vår nyskapade mapp dök HTCExtension-mappen upp och i den våra filer med Dalvik-kod.
    8 . Hitta filen längs vägen \com\htc\util\contacts\BuildUtils$Customization.java och titta på koden:
    .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, 0qxd , 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/, LchttvaFlag/, Lchttflag ;->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/htcflag/ht 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.cond_2, 3 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 goto, .go metod
    9 . Skrämmande, är det inte? Ingenting är klart. Men det här är ett problem som går att fixa. Efter att ha skapat några av dina egna patchar och därmed fått erfarenhet kan du enkelt modifiera koden utan verktyg från tredje part. I vårt fall, i den här koden
    .prologue const/4 v0, 0x1 tilldelar variabeln v0 värdet 1, det vill säga TRUE. Sedan finns det alla möjliga kontroller, och om telefonen inte är kinesisk, ändras värdet på variabeln:
    .line 297 const/4 v0, 0x0 goto:goto_13
    10 . Det enklaste sättet att rädda den ryska demokratins fader är att ändra koden till följande:
    .prologue const/4 v0, 0x0 , det vill säga ändra värdet på variabeln från 1 till 0. Det vill säga, oavsett vad skulle värdet FALSE alltid returneras och i JD-GUI skulle koden se ut som offentlig statisk boolean isChina() ( if (( HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)&; while ((HtcBuild_Flag_) ((HtcBuildFlag_) 2 == HtcBuildFlag.Htc _LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; )
    11 . Ja, metoden kommer att fungera. Men vi letar inte efter lätta vägar – den här gången. För det andra är det inte direkt vackert. Jag skulle vilja ha kod något liknande
    public static boolean isChina() ( return false; )
    12 . Hur kan vi få Dalvik-koden för denna källkod? För nybörjare kommer vi att göra ett litet trick.

    Skapar Dalvik-kod
    1 . Öppna Android SDK.
    2 . Vi skapar ett nytt projekt och skriver följande kod i vår enda testklass
    paket ru.habrahabr.test; public class test ( public static boolean isChina() ( return false; ) )
    3 . Vi sammanställer vårt projekt och tar sedan den sammansatta applikationen från arbetsytan.
    4 . Vi lade den sammansatta applikationen i mappen där vi rensade JAR-filen.
    5 . Ge kommandot java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
    6 . Vi plockade isär den nybyggda applikationen till Dalvik-kod.
    7 . Öppna vår test.smali-fil och se koden där
    .method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method
    8 . Det var allt, patchkoden är klar.
    Rulla en lapp
    1 . Dalvik-koden är fylld med markörer som indikerar en kodrad i den ursprungliga källfilen. Detta är nödvändigt när du visar eventuella fel i ditt program. Koden fungerar också bra utan att ange rader.
    2 . Vi raderar raderna med radnumrering, kopierar och ersätter metoden (subrutinen) i vår \com\htc\util\contacts\BuildUtils$Customization.java fil.
    .method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
    3 . Spara filen. Ja, jag glömde säga att du behöver en vanlig editor, till exempel Notepad++ eller EditPlus. Vem gillar vilken?
    Kompilera och bygga en korrigerad JAR-fil
    1 . Med hjälp av backsmali rensade vi vår JAR-fil och nu måste vi sätta ihop den igen.
    2 . Ge kommandot java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
    3 . Classes.dex-filen visas i vår mapp
    4 . Öppnar igen HTCExtension.jar fil med en arkivering och ersätt den befintliga i den classes.dex till vår nyss skapade.
    5 . Det är det, vårt HTCExtension.jar innehåller modifierad programkod.
    Ersätter originalfilen med en korrigerad fil
    Vanligtvis skapas speciella skript för vanliga användare, som ersätts via återställning. Men vi är inte intresserade av detta. För det första är det långt och tråkigt, och för det andra är vi erfarna användare och har råd med lite finesser.

    1 . Du kan ersätta den nuvarande arbetsfilen med följande kommandon om du redan har DEODEX firmware och har root-åtkomst:

    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-postskyddad]@classes.dex starta om

    Det första kommandot laddar upp den korrigerade filen till flashenheten
    2:a kommandot öppnar skalet
    3:e kommandot ger root-åtkomst
    Det 4:e kommandot monterar systemet i läs/skrivläge
    5:e kommandot gör en säkerhetskopia av filen
    Det 6:e kommandot skriver över den befintliga filen med den nya korrigerade.
    7:e kommandot konfigurerar behörigheter
    8:e kommandot tar bort cacheminnet
    Det nionde kommandot startar om enheten.

    2 . Tack för att du läser hittills, det finns lite kvar.
    3 . Efter en omstart kommer din nya patchade kod att träda i kraft.
    4 . Om koden inte fungerar eller ett fel uppstår kan du med enkla kombinationer returnera säkerhetskopian.
    adb-skal su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@ [e-postskyddad]@classes.dex starta om

    Epilog

    Ja, vissa tyckte att den här artikeln var för specifik, en del tyckte att den var svår att förstå och en del tyckte att den var värdelös. Jag undvek medvetet djupgående detaljer och illustrationer av hur det hela ser ut live och i praktiken. För det första kommer detta arbete att vara otacksamt och bara ge upphov till ännu fler frågor. För det andra vill jag inte se en armé av användare på forum som klagar på att de dödade sin telefon.

    För nästa artikel kommer jag att berätta hur man gör Tweeks. Det kommer att finnas ett exempel på att använda automatisk inspelning av telefonsamtal med hjälp av inbyggda telefonverktyg. Tack för din uppmärksamhet.

    P.S. Om något är oklart eller förvirrande, ställ frågor – jag svarar och förklarar alltid gärna.

    När du använder olika Android-firmware har du förmodligen stött på sådana begrepp som "odexed" och "deodexed". Och ofta, när du utför några manipulationer med firmware, måste du veta om den är "odexed" eller "deodexed" för att inte göra något dumt. Så vad ligger bakom dessa två termer?

    Odexed ROM

    Om den fasta programvaran är märkt odexed, hittar du i mappen systemapplikationer /system/app filer med tillägget .odex. Detta tillägg står för ""Optimerad Dalvik Executable File"". Utöver den vanliga APK-filen hittar du en .odex-kopia av den. Till exempel Browser.apk och browser.odex.

    Vad är en .odex-fil?

    Den här filen tjänar främst till att organisera strukturen för alla program, innehåller programinstruktioner och låter Android snabbt komma åt dem utan onödig sökning och extrahering från .apk-filen. Odex-filer laddas direkt in i cachen på den virtuella Java-maskinen "dalvik", detta gör att systemet kan arbeta mycket snabbare.

    Fördelar med Odexed firmware

    Applikationer startar mycket snabbare eftersom deras kod är förladdad i dalvik-cachen. Storleken på .apk-filer är liten, så de tar mindre plats.

    Nackdelar med Odexed firmware

    Applikationen modding/teman/hackning blir mycket mer komplex eftersom koden nu finns på två olika platser. Om du tar bort något program måste .odex-filen också tas bort. Om du inte tar bort det kan fel uppstå.

    Deodexed ROM

    När det gäller denna typ av firmware finns alla instruktioner och kod för applikationer i .apk-filer. Koden som lagrades i .odex-filen är nu inbäddad i .apk-filen classes.dex.

    Fördelar med Deodexed firmware

    Deodexed är mycket lättare för modding/teman/hackning eftersom all kod nu finns i en .apk-fil. Systemappar är lättare att ta bort eftersom du bara behöver ta bort en APK-fil.

    Nackdelar med Deodexed firmware

    Applikationer startar långsammare. Men inte bara applikationer, utan även själva systemet tar längre tid att ladda, eftersom applikationsinnehåll laddas från systemet, och inte direkt.

    Android firmware, som kommer direkt från tillverkare av olika enheter, är mestadels odexad. Anpassad firmware, i 9 fall av 10, är ​​deodexed. Vad vi får är att odexed firmware har bättre driftshastighet, Deodexed är mer lämpad för hacks, modding och andra manipulationer. Det var allt, kort om huvudsaken.