Hvordan deodex firmware ved hjelp av jbart. Hva er odex og deodex i Android. Utpakking og analyse av originalfilen

Hvis du ikke bare er en vanlig bruker av en Android-basert enhet, men liker å installere diverse fastvare, så har du sannsynligvis hørt eller lest på forskjellige fora og nettsteder om "odexed" og "deodexed" firmware. Hva er forskjellen? Kort sagt, Deodex-firmware er bedre egnet for modifikasjoner. Utvikleren av deodexed firmware kan uavhengig endre utseendet til ikoner, konfigurere ulike menyer og så videre. La oss fortelle deg om alt mer detaljert.

Hva er Deodex?

Android-fastvare, som enhver annen applikasjon, har en spesiell "executive" del som er designet for å utføre forhåndsprogrammerte handlinger. Som du kan se selv, er disse kommandoene plassert i en egen filklasser.DEX, som er til stede i fastvaren.

Ofte, i offisiell firmware, flytter produsenten denne filen utenfor fastvaren for å fremskynde arbeidet og redusere mengden minne som er opptatt av fastvaren. Overgangen til Android 5.0 med ART runtime-miljøet endret prosessen med å lansere og installere applikasjoner betydelig, men selve konseptet odex og deodex ble beholdt.

Fordeler og ulemper med Odex og Deodex firmware


- Mer kompleks fastvaremodifikasjonsprosess
+ Liten økning i fastvareytelse
+ Spar plass når du installerer programmer


+ Forenklet fastvaretilpasning
- Trenger mer plass til å installere applikasjoner

Hvordan får jeg Deodex firmware?

Før du starter prosessen med deodexing av fastvaren, må en rekke betingelser være oppfylt. Det første trinnet er å installere og konfigurere det på datamaskinen din. Deretter må vi skaffe rotrettigheter på mobilenheten vår, installere hvilken som helst filbehandler med tilgang til systempartisjonen og kopiere følgende mapper til enhetens minne eller til et microSD-kort.

/app
/priv-app
/rammeverk


Deodex ved hjelp av JoelDroid Batch Deodexer

Dette verktøyet fungerer bare med enheter basert på Android 5.0 og nyere. Du må også installere og laste ned selve applikasjonen.


  • Pakk ut arkivet med verktøyet ]JoelDroid Lollipop Batch Deodexer V 2.5.

  • Tidligere lagrede mapper app, priv-app, rammeverk

  • Start JoelDroid Lollipop Batch Deodexer-verktøyet, klikk på "Bla gjennom"-knappen og angi katalogen på datamaskinen din der du kopierte app, priv-app, rammeverk

  • Klikk på knappen "Start prosess"

Deodex bruker Deodexer for Android Runtime

Først av alt, last ned arkivet og pakk det ut. Den videre prosessen er ikke forskjellig fra det forrige verktøyet:


  • Tidligere lagrede mapper app, priv-app, rammeverk du må plassere en egen katalog på datamaskinen.

  • Kjør Deodexer for Android Runtime-verktøyet, spesifiser katalogen på datamaskinen din der du kopierte app, priv-app, rammeverk

  • Klikk på knappen "Henrette" og vent til deodeksasjonsprosessen er fullført.

Deodex bruker Jbart

I motsetning til tidligere verktøy, som bare kan fungere med enheter basert på Android 5.0 og høyere, er dette verktøyet ikke knyttet til operativsystemet. Du kan lage Deodex for alle enheter fra Android 2.3.x Ginerbread til Android 6.0 Marshmallow.



Hver av dere har hørt ordene "deodex" eller "odex" mer enn én gang. Vanligvis finnes de der ulike fastvare for enheten din er lagt ut, for eksempel på XDA-Developers eller 4pda. Så hva betyr det, DEODEX eller ODEX? Hva er forskjellene deres? Hvordan lage DEODEX? Du finner svar på disse og andre spørsmål i neste nummer av sammendraget "Hva er...".
Odex (Optimized Dalvik Executable File) er en fil som ligger i samme mappe med systemapplikasjoner, som lagrer koden til selve programmet. Som du vet, trenger hvert program instruksjoner, takket være hvilke det (programmet) vil utføre en eller annen funksjon eller arbeid. Dette er akkurat programkoden jeg beskrev tidligere. Hvis du vil endre en systemfil, må du grave i både selve odex-filen og .apk når du installerer odex-fastvaren. Fra dette blir det klart at denne prosessen ikke vil være veldig enkel. Det er av denne grunn at muligheten for deodex-fastvare ble implementert.

Som du allerede vet, lagres filene "tilfeldig" i odex-firmware. Men med deodex er det ingen slik lidelse, for å si det sånn. Alle filer i deodex lagres som et .zip-arkiv, men i vårt tilfelle er de "pakket" inn i .apk. Av denne grunn blir det lettere å demontere applikasjonen for ytterligere modifikasjoner, og på grunn av det faktum at alt er pakket på ett sted, vil deodex-fastvaren kanskje ta mindre plass.

Imidlertid kan deodex ikke prises uendelig. Den største ulempen med deodex er at applikasjoner tar litt lengre tid å laste enn på odex. Mest sannsynlig vil ikke brukeren legge merke til dette. Men jeg kan ikke unngå å legge merke til at både fordelen med odex og ulempen med deodex er at alle systemapplikasjoner i odex er optimalisert for en bestemt enhet av produsenten selv. Og dette er utvilsomt et pluss med odex-firmware.

Jeg glemte nesten å nevne at når du installerer forskjellige ferdige modifikasjoner av systemet for enheten din, må du ha deodex-fastvare.

Sannsynligvis, i denne situasjonen, er betydningen av begrepene klar. Og jeg er villig til å satse på at noen allerede ønsker å prøve deodex. Det er et stort antall instruksjoner for deodex-fastvare på World Wide Web. Jeg vil imidlertid ikke våge å sende deg til å søke etter dem på Google, men jeg vil ganske enkelt stille ned hele denne prosessen, og prøve å fremheve alle de små tingene.

Instruksjonene for forskjellige versjoner av Android er ikke de samme. På grunn av det faktum at Android 5.0 Lollipop er installert på enheten min, vil jeg skrive instruksjoner for deodex spesielt for denne versjonen.

  1. Først må vi laste ned et spesielt verktøy, JoelDroid Lollipop Batch Deodexer, til PC-en vår. Dette verktøyet krever et Java-program for å fungere. Jeg legger merke til at i hyppige tilfeller skriver en Java-applikasjon sin bane feil og feil. Av denne grunn må du registrere denne banen manuelt i henhold til disse instruksjonene.
  • Etter dette må vi installere hvilken som helst filbehandler på enheten vår som kjører på Android 5.0 Lollipop, gjennom hvilken vi må kopiere de tre hovedsystemmappene - APP, PRIV-APP, FRAEMWORK - til en egen mappe på SD-kortet. De er plassert i rotmappen System.


  • Deretter må vi opprette MyROM-mappen i roten til en hvilken som helst intern stasjon på PC-en din. Så lager vi en annen mappe i denne mappen, men med navnet System. I teorien bør du få følgende sti - E:\MyROM\system. Hvor "E" er din interne lagring (harddisk)
  • De systemmappene som vi kopierte i det andre trinnet må flyttes til E:\MyROM\systemmappen.
  • Nå, i teorien, har vi forberedt alt, og vi kan allerede fortsette til DEODEXATION-punktet.
  • Start det tidligere installerte JoelDroid Lollipop Batch Deodexer-verktøyet.
  • Ved å klikke på "Bla gjennom"-knappen i verktøyet, må vi vise banen til E:\MyROM\system
  • Stien er angitt, alt er klart. Alt vi trenger å gjøre er å trykke på "Start Prosecc"-tasten, hvoretter deodexation vil begynne. Denne prosedyren tar ca. 10-15 minutter.
  • Etter at deodekseringen er fullført, må vi kopiere de resulterende filene, som ligger langs banen E:\MyROM\system, til en MicroSD-flash-stasjon på enheten din.
  • Deretter må vi laste ned AROMA FileManager og installere den via tilpasset gjenoppretting på enheten din. Men før vi installerer, må vi velge System i Mount-delen hvis det ikke er valgt.
  • Etter alt dette må vi gå til roten av filsystemet og slette APP-, PRIV-APP- og FRAEMWORK-mappene fra systemmappen, bare slett dem, siden når kopiering av ARM-mappene vil forbli, og hele prosessen, vurder det , har gått i vasken.
  • Deretter kopierer du deodex-mappene som tidligere ble overført i trinn 9 til systemmappen i roten til hele filsystemet.
  • Etter dette må vi flashe et skript som angir tillatelser for mapper (RWXRX-RX), .apk-filer og .xml-filer (RW-R-R)
  • Deretter må vi lage wipe cache og wipe dalvik/art. Start enheten på nytt og nyt deodex-fastvaren du mottok.

  • Sørg for at du har DEODEX installert - du kan oppdatere fastvaren ved å bruke følgende korte instruksjoner: D


    Jeg har full tro på at jeg har snakket om de mest grunnleggende tingene om begrepene ODEX og DEODEX, og denne artikkelen kan fullføres. Takk alle for oppmerksomheten, vær så snill å rangere artikkelen, ha en god dag og en vellykket SOMMER!

    Android-brukere kan deles inn i to grupper. Den første er de som det er viktig å ha stabilt arbeid for og at telefonen rett og slett fungerer. Den andre er de som ikke kan vente med å prøve nye funksjoner og sjekke annen fastvare for telefonen, som virkelig elsker å fikle med telefonen. Det er her hovedforskjellen mellom ODEX og DEODEX firmware ligger.

    ODEX (odexed) fastvare– dette er offisiell, merket eller fabrikkbasert Android-firmware. DEODEX (deoksifisert) er fastvare modifisert av brukere.

    Hvorfor et slikt skille?

    "Odexed" fastvare vil umiddelbart avsløre seg selv ved tilstedeværelsen av filer med .odex-utvidelsen i /system/app-mappen. Forkortelsen odex betyr "Optimalisert Dalvik Executable File". Denne typen filer er svært nødvendig for en tydelig systemstruktur som inneholder all informasjon om applikasjonen. Android mottar dataene umiddelbart uten å pakke ut apk-filene. .odex-filer lastes vanligvis inn i Dalvik-cache, som lagrer informasjon om programmer som brukeren ofte bruker. Hastigheten på systemet øker betydelig.

    Fordelene med ODEX-firmware kan skrives ned det faktum at applikasjoner åpnes raskere og apk-filer tar liten plass. Ulempene er vanskeligheten med å hacke og endre programmer. Men de fleste brukere trenger ikke dette; de ​​verdsetter hastigheten og stabiliteten til systemet.

    For eksempel er slik fastvare en ideell løsning for de som bare vil laste ned spill til et Android-nettbrett (http://vipsmart.org/all-genres/tablet/).

    DEODEX



    I "deodeksed" firmware finnes programinformasjon i apk-filen. Koden som vanligvis settes inn i en odex-fil er inkludert i en apk kalt classex.dex.

    De viktigste fordelene med slik fastvare er at de er mye lettere å endre (alle data er på ett sted), og systemprogrammer er lettere å fjerne.

    En av ulempene er at programmer tar lengre tid å starte. Men denne ulempen er ikke særlig betydelig. Dalvic-cache lagrer all data om applikasjoner som brukeren ofte bruker. Og programmer tar lang tid å laste først etter at du har tømt Dalvic-bufferen. For eksempel etter installasjon av en fastvareoppdatering eller i andre tilfeller.

    For å oppsummere kan vi med sikkerhet si at "odeksed" (fabrikk) firmware anbefales for de som verdsetter hastighet og stabilitet. "Deoxed" (egendefinerte) er mer egnet for de som det er viktig å tilpasse fastvaren helt for å passe deres behov, prøve nye funksjoner og "grave dypere" i Android-systemet.

    Hei Habr!

    For flere år siden, da jeg først ble introdusert for Android, hørte jeg fra en arbeidskollega at Android gir muligheten til å installere modifisert eller hjemmelaget firmware. Ærlig talt var jeg langt fra det da. Og selv for et halvt år siden var jeg knapt interessert i slike ting. Dypt i hjertet mitt var jeg sikker på at det produsenten gjorde allerede var beregnet på normal bruk.

    Forestill deg min skuffelse da jeg kjøpte en telefon fra Kina, der fabrikkinnstillingene forbød bruk av Google, Skype, Facebook og andre applikasjoner. I prinsippet var det mulig å lukke øynene for enkelte ting, men da telefonen min ikke krevde bruk av Google-konto, ga jeg løfter om å definitivt finne ut av det uansett hva som skjedde med meg.

    Et halvt år har gått og min egendefinerte firmware blir brukt med suksess over hele verden.

    Denne serien med artikler vil diskutere hvordan du gjør omvendt programmering for Android, implementerer patcher, tweaks og mods.

    Innledning

    Så! La oss først definere konseptene som skal brukes i gitt artikkel. Din vanlige forståelse kan imidlertid være veldig annerledes.

    Lapp- endre eller erstatte eksisterende programkode for å modifisere programalgoritmen.
    Maud- som regel å legge til ekstra funksjonalitet til eksisterende programkode uten å endre algoritmen.
    Tweak- forbedring av programfunksjonaliteten for å lette tilgangen til systemparametere.

    Jeg vil også merke meg at alle eksempler vil bli tatt for en HTC-telefon, men dette betyr ikke at denne informasjonen ikke kan brukes på andre telefoner.

    Forberede miljøet

    Jeg klarer meg uten detaljerte instruksjoner om hvordan jeg bruker denne eller den programvaren. Hvis du er interessert i denne artikkelen og har lest så langt, så håper jeg at du allerede er en erfaren bruker og har erfaring med å bruke, eller i det minste eksperimentere på, dette området. Det er nok av instruksjoner, artikler og testresultater i det offentlige domene, akkurat som på Habré. Jeg vil også klare meg uten å beskrive noen begreper, ellers vil artikkelen vise seg å bli veldig lang og kjedelig. Vi vil bare skrive til poenget. Jeg er sikker på at du har vært på onsdag lenge. Hvis ikke, foreslår jeg at du laster ned og installerer det.

    1 . Android SDK. Dette er et applikasjonsutviklingsmiljø for Android. For å gjøre endringer, må vi definitivt sjekke programkoden vår. Utviklingsmiljøet er det beste vi kan bruke.
    2 . Android kjøkken. Dette verktøyet lar deg jobbe med bilder av systempartisjoner av offisiell eller uoffisiell firmware.
    3 . JD-GUI. Java-kodedekompilator. Jeg vil med en gang merke at dette er den beste dekompilatoren når det gjelder brukervennlighet.
    4 . DJ Java Decompiler. En annen dekompilator, eller disassembler, som noen liker å kalle det, av Java-språkprogramkode. Det er ikke praktisk å bruke, men det analyserer kode som JD-GUI noen ganger ikke forstår.
    5 . smali. Nok en demonter, men denne gangen dalvik-kode. smali er nødvendig for demontering, og backsmali er nødvendig for å sette sammen kode.
    6 . dex2jar. Et verktøy for å konvertere Dalvik-kode kjørbare filer.

    Konvertering av fastvare

    Selvfølgelig er fastvaren du har på telefonen fra produsenten optimalisert for å redusere strømforbruket. For at fastvaren skal endres, må den konverteres til et format som gjør at koden kan endres. Android Kitchen brukes til dette. Selvfølgelig kan du gjøre det med hendene, som jeg gjorde før til jeg fant dette "kjøkkenet". Du kan lese på Internett hvordan du fjerner systemområdet fra telefonen, installerer miljøet og lager DEODEX-fastvare. Hvis du ikke forstår noe allerede, synes jeg det er verdt å vente med å lese denne artikkelen til du får nok erfaring.

    Etter at fastvaren har endret seg fra en optimalisert versjon (ODEX - optimalisert dalvik kjørbar kode, hvis minnet mitt tjener meg riktig) til DEODEX (det vil si IKKE optimalisert), er alle kjørbare filer klare for modifikasjon.

    Direkte modifikasjoner

    Opprette patcher
    Som jeg allerede sa, ble telefonen min i utgangspunktet utestengt fra å bruke Google. Vel, uansett hva, kan du ikke gå til Playstore, du kan ikke sette opp en konto, telefonboken synkroniseres egentlig ikke. Hvorfor trenger du en slik Android? Etter å ha gravd lenge i logcaten til selve enheten, fant jeg oppføringer som sa at bruk av Google er forbudt. Det mest upraktiske med Android er at du ser loggen, men du vet ikke hvilken systemapplikasjon som produserer den. For å finne ut hvor beina mine kom fra, måtte jeg koble alle systemapplikasjoner til demontert Java-kode. Det tok mye tid, men jeg bruker fortsatt arbeidet jeg gjorde når jeg analyserte og fant riktig kode. Trinnene for å skaffe slike verktøy er som følger:
    1 . Lag DEODEX av all fastvare
    2 . Din nye DEODEX-firmware må settes sammen og flashes på telefonen. Hvordan dette gjøres er tema for en annen artikkel.
    3 . Fra hver fil som ligger i /system/framework, pakk ut classes.dex-filen og konverter den til JAR ved hjelp av dex2jar.
    4 . Åpne hver resulterende JAR i JD-GUI og lagre den på nytt i kildekoden
    5 . Pakk ut kildekoden fra arkivet.

    Til slutt endte jeg opp med like mange mapper som det var JAR-filer i /system/framework, og hver mappe hadde en Java-kildekodestruktur.
    Gjennom enkle manipulasjoner fant jeg raskt stedet som genererte oppføringer i logcat.

    Vi vil ikke vurdere hele logikken i forbudet, siden hver sak er en egen historie. Jeg måtte bruke et par timer før jeg fant hvor sjekkene ble gjort, bygde et blokkdiagram av algoritmen i hodet mitt og forsto hvor jeg skulle gå for å "spoile" algoritmen litt.

    Det viste seg å være enkelt. Det er en subrutine som, basert på forhåndsetablerte konstanter, ved kontakt, svarte om telefonen tilhører Kina eller ikke.

    Koden var i filen HTCExtension.jar, og klassen som inneholdt denne subrutinen var i

    Utpakking og analyse av originalfilen
    1 . Først må vi ta den originale DEODEX JAR-filen, som er ansvarlig for den delen av koden vi trenger. I vårt tilfelle HTCExtension.jar.
    2 . Åpne med hvilken som helst arkiver og trekk ut classes.dex derfra
    3 . Bruk dex2jar-konverteren til å konvertere den til en JAR-fil. Kommando: dex2jar.bat classes.dex
    4 . Åpne den resulterende classes_dex2jar.jar-filen i JD-GUI.
    5 . Ja, oftest dekompilerer JD-GUI koden ikke slik den ser ut i originalen, den er forståelig, men den er ganske lesbar. I kildekoden ser vi at subrutinen sjekker prosjektparametrene og firmware-språkflagget. I vårt uheldige tilfelle returneres TRUE.
    offentlig statisk boolsk isChina() (if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); mens (Flag_PROJECT_flag == 23)); && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return true; return usant; )
    6 . For å lage en patch må vi demontere selve Dalvik-koden. Til dette bruker vi baksmali. Den mest praktiske måten er å lage en egen mappe og legge tre filer der sammen: HTCExtension.jar, smali.jar Og baksmali.jar. Gi kommandoen java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

    Dette er API-en for din versjon av Android. For JB er det 16
    - mappen der alle fastvarerammene er plassert.

    I mitt tilfelle var det kommandoen
    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 nyopprettede mappe dukket HTCExtension-mappen opp, og i den filene våre med Dalvik-kode.
    8 . Finne filen langs stien \com\htc\util\contacts\BuildUtils$Customization.java og se 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/htctflag/htc 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 metode
    9 . Skremmende, ikke sant? Ingenting er klart. Men dette er et problem som kan løses. Etter å ha laget noen av dine egne patcher og dermed fått erfaring, kan du enkelt endre koden uten tredjepartsverktøy. I vårt tilfelle, i denne koden
    .prologue const/4 v0, 0x1 tildeler variabelen v0 verdien 1, det vil si TRUE. Så er det alle slags kontroller, og hvis telefonen ikke er kinesisk, endres verdien av variabelen:
    .line 297 const/4 v0, 0x0 goto:goto_13
    10 . Den enkleste måten å redde faren til russisk demokrati er å endre koden til følgende:
    .prologue const/4 v0, 0x0 , det vil si endre verdien av variabelen fra 1 til 0. Det vil si, uansett hva, vil verdien FALSE alltid bli returnert og i JD-GUI vil koden se ut som offentlig statisk boolsk isChina() ( if (( HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23) = & & (HtcBuildFlag_) = & ((HtcBuild_Flag_)) 2 == HtcBuildFlag.Htc _LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; )
    11 . Ja, metoden vil fungere. Men vi leter ikke etter enkle måter – denne gangen. For det andre er det ikke akkurat vakkert. Jeg vil ha kode noe sånt
    offentlig statisk boolsk isChina() ( return usant; )
    12 . Hvordan kan vi få Dalvik-koden for denne kildekoden? For nybegynnere vil vi gjøre et lite triks.

    Lage Dalvik-kode
    1 . Åpne Android SDK.
    2 . Vi oppretter et nytt prosjekt, og skriver følgende kode i vår eneste testklasse
    pakke ru.habrahabr.test; offentlig klassetest ( offentlig statisk boolsk isChina() ( return usant; ) )
    3 . Vi kompilerer prosjektet vårt og tar deretter den sammensatte søknaden fra arbeidsområdet.
    4 . Vi la den sammensatte applikasjonen i mappen der vi sløyde JAR-filen.
    5 . Gi kommandoen java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
    6 . Vi demonterte den nybygde applikasjonen til Dalvik-kode.
    7 . Åpne vår test.smali-fil og se koden der
    .method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method
    8 . Det er det, patchkoden er klar.
    Ruller en lapp
    1 . Dalvik-koden er strødd med markører som indikerer en kodelinje i den originale kildefilen. Dette er nødvendig når du viser eventuelle feil i programmet. Koden fungerer også fint uten å spesifisere linjer.
    2 . Vi sletter linjene med linjenummerering, kopierer og erstatter 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 . Lagre filen. Ja, jeg glemte å si, du trenger en vanlig editor, for eksempel Notepad++ eller EditPlus. Hvem liker hvilken?
    Kompilere og bygge en lappet JAR-fil
    1 . Ved å bruke backsmali sløyde vi JAR-filen vår, og nå må vi sette den sammen igjen.
    2 . Gi kommandoen java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
    3 . Classes.dex-filen vises i mappen vår
    4 . Åpner igjen HTCExtension.jar fil med en arkiver og erstatt den eksisterende i den classes.dex til vår nettopp opprettede.
    5 . Det er det, vår HTCExtension.jar inneholder modifisert programkode.
    Erstatter den opprinnelige filen med en lappet fil
    Vanligvis lages spesielle skript for vanlige brukere, som erstattes via gjenoppretting. Men vi er ikke interessert i dette. For det første er det langt og kjedelig, og for det andre er vi erfarne brukere og har råd til noen finesser.

    1 . Du kan erstatte gjeldende arbeidsfil med følgende kommandoer hvis du allerede har DEODEX-fastvare og har root-tilgang:

    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-postbeskyttet]@classes.dex omstart

    Den første kommandoen laster opp den lappede filen til flash-stasjonen
    2. kommando åpner skallet
    3. kommando gir root-tilgang
    Den fjerde kommandoen monterer systemet i lese-/skrivemodus
    5. kommando lager en sikkerhetskopi av filen
    Den sjette kommandoen overskriver den eksisterende filen med den nye oppdateringen.
    7. kommando konfigurerer tillatelser
    8. kommando sletter cache
    Den niende kommandoen starter enheten på nytt.

    2 . Takk for at du leser til dette punktet, det er lite igjen.
    3 . Etter en omstart vil den nye oppdateringskoden din tre i kraft.
    4 . Hvis koden ikke fungerer eller det oppstår en feil, kan du ved hjelp av enkle kombinasjoner returnere sikkerhetskopien.
    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-postbeskyttet]@classes.dex omstart

    Epilog

    Ja, noen syntes denne artikkelen var for spesifikk, noen syntes den var vanskelig å forstå, og noen syntes den var ubrukelig. Jeg unngikk bevisst dybdedetaljer og illustrasjoner av hvordan det hele ser ut live og i praksis. For det første vil dette arbeidet være utakknemlig og vil bare gi opphav til enda flere spørsmål. For det andre vil jeg ikke se en hær av brukere på fora som klager over at de drepte telefonen deres.

    For den neste artikkelen vil jeg fortelle deg hvordan du lager Tweeks. Det vil være et eksempel på bruk av automatisk opptak av telefonsamtaler ved bruk av native telefonverktøy. Takk for din oppmerksomhet.

    P.S. Hvis noe ikke er klart eller forvirrende, still spørsmål – jeg svarer og forklarer alltid gjerne.

    Mens du bruker annen Android-fastvare, har du sannsynligvis kommet over slike konsepter som "odexed" og "deodexed". Og ofte, når du utfører noen manipulasjoner med fastvaren, må du vite om den er "odexed" eller "deodexed" for ikke å gjøre noe dumt. Så hva ligger bak disse to begrepene?

    Odexed ROM

    Hvis fastvaren er merket odexed, vil du i systemapplikasjonsmappen /system/app finne filer med utvidelsen .odex. Denne utvidelsen står for ""Optimized Dalvik Executable File"". I tillegg til den vanlige APK-filen finner du en .odex-kopi av den. For eksempel Browser.apk og browser.odex.

    Hva er en .odex-fil?

    Denne filen tjener først og fremst til å organisere strukturen til enhver applikasjon, inneholder applikasjonsinstruksjoner og lar Android raskt få tilgang til dem uten unødvendig søking og utpakking fra .apk-filen. Odex-filer lastes direkte inn i cachen til den virtuelle Java-maskinen "dalvik", dette lar systemet jobbe mye raskere.

    Fordeler med Odexed-fastvare

    Applikasjoner starter mye raskere fordi koden deres er forhåndslastet inn i dalvik-cachen. Størrelsen på .apk-filer er liten, så de tar mindre plass.

    Ulemper med Odexed-firmware

    Modding/tema/hacking-applikasjonen blir mye mer kompleks siden koden nå er på to forskjellige steder. Hvis du sletter et program, må .odex-filen også slettes. Hvis du ikke fjerner den, kan det oppstå feil.

    Deodeksed ROM

    Når det gjelder denne typen fastvare, er alle instruksjoner og kode for applikasjoner plassert i .apk-filer. Koden som ble lagret i .odex-filen er nå innebygd i .apk-en kalt classes.dex.

    Fordeler med Deodexed firmware

    Deodexed er mye enklere for modding/temaer/hacking siden all koden nå er i én .apk-fil. Systemapper er lettere å fjerne fordi du bare trenger å fjerne én APK-fil.

    Ulemper med Deodexed firmware

    Applikasjoner starter tregere. Men ikke bare applikasjoner, men også selve systemet tar lengre tid å laste, siden applikasjonsinnhold lastes fra systemet, og ikke direkte.

    Android-firmware, som kommer direkte fra produsenter av ulike enheter, er for det meste odeksed. Tilpasset fastvare, i 9 av 10 tilfeller, er deodeksed. Det vi får er at odexed firmware har bedre driftshastighet, Deodexed er mer egnet for hacks, modding og andre manipulasjoner. Det er det, kort om det viktigste.