Liste der Anhänge anzeigen (Anzahl: 9)
[HOWTO]Decompilieren - Deodex - Reodex Framework Files
1.- Grundlagen (bei Bedarf)
--> SDK / ADB
--> Busybox
--> Odex / Deodex
--> BOOTCLASSPATH
--> Grundbefehle Linux Konsole
2.- Vorraussetzungen
--> PC
--> Gerootetes Smartphone mit Android (z.B. Samsung I9300)
--> Firmware von der Dateien gemoddet werden muss auf eurem Gerät geflasht sein
3.- Vor.- Vorbereitungen (einmalig)
--> SDK Downloaden und installieren (ca. 60MB großes Packet)
--> 7-Zip installieren
--> Deodexing-Odexing Tools Downloaden --> Anhang 102793
Entpacken der heruntergeladenen Deodexing-Odexing Tools in einen Ordner eurer Wahl, ich nehme hierfür D:\ROOT\Deodexing und verwende diesen Pfad in der weiteren Beschreibung.
4.- Vorbereitungen (einmalig)
--> Busybox installieren
Anhang 102770 Anhang 102771
--> dexopt-wrapper in /system/xbin einbinden
Anhang 102772
> USB Debugging einschalten
> Systemeinstellungen / Entwickler-Optionen / USB-Debugging
> Das Smartphone mit dem PC verbinden
> Eine Eingabeaufforderung in android-sdks / platform-tools öffnen
Code:
adb shell
// shell auf Gerät öffnen
mkdir sdcard/Deodexing
// Ordner Deodexing auf SD Karte anlegen
exit
// adb shell verlassen
Code:
adb push D:\ROOT\Deodexing\dexopt-wrapper sdcard/Deodexing/dexopt-wrapper
// dexopt-wrapper auf SD Karte in Ordner Deodexing kopieren
Code:
adb shell
// shell auf Gerät öffnen
su
// zu Superuser wechseln
mount -o remount,rw /system
// system Partition als R/W mounten
cp sdcard/Deodexing/dexopt-wrapper system/xbin/dexopt-wrapper
// dexopt-wrapper von Speicherkarte nach system/xbin kopieren
chmod 755 /system/xbin/dexopt-wrapper
// Rechte anpassen
Jetzt kann das Script dexopt-wrapper verwendet werden.
--> BOOTCLASSPATH heraus finden
Anhang 102773
Der Bootclasspath ist modellabhängig ihr könnt deshalb nicht einfach den eines Galaxy S2 oder eines anderen Gerätes nehmen. Der Bootclasspath ist in einer Variablen abgelegt und kann ganz einfach abgerufen werden.
> Das Smartphone mit dem PC verbinden
> Eine Eingabeaufforderung in android-sdks / platform-tools öffnen
Code:
adb shell
// shell auf Gerät öffnen
echo $BOOTCLASSPATH
// BOOTCLASSPATH ausgeben
Das Ergebnis müsste so aussehen:
Code:
/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar:/system/framework/sec_edm.jar:/system/framework/seccamera.jar
Jetzt könnt ihr den Pfad /system/framework/ vor jedem Eintrag entfernen.
Danach sollte es so aussehen:
Zitat:
core.jar: core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:filterfw.jar:sec_edm.jar:seccamera.jar
Das solltet ihr euch jetzt in eine Textdatei kopieren, später werden wir diese Abfolge nämlich brauchen. Die Reihenfolge MUSS genau so beibehalten werden wie Sie Ausgegeben wird. Es ist sehr wichtig hier nicht irgendwie herum zu pfuschen oder irgend etwas zu verändern!!!
5.- Durchführung an Frameworkfiles (Files im framework Ordner)
Beispiel an der Datei (services.jar / services.odex (CRT Mod))
1.- Vorbereitung
Zunächst müsst ihr alle Dateien aus dem Ordner framework eurer Firmware in den Ordner D:\ROOT\Deodexing saven, wo auch die scripts aus der Deodexing-Odexing Tools zip liegen. Wie ihr an den framework Ordner ran kommt ist schon sehr gut erklärt:
[ANLEITUNG] Wie entpacke ich eine Firmware
2.- Deodexen der .odex Datei
--> Schritt 1
Es sollten sich nun alle Dateien aus der Firmware /system/framework sowie die Dateien aus der Deodexing/Odexing Tools zip in einem Ordner befinden (D:\ROOT\Deodexing)
In diesen Ordner wechselt ihr jetzt und öffnet dort eine Konsole, in dieser gebt ihr folgenden Befehl ein:
Code:
java -Xmx1024m -jar baksmali-1.3.3.jar -c :core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:filterfw.jar:sec_edm.jar:seccamera.jar -x services.odex
// hinter Parameter –c fügt ihr den gekürzten BOOTCLASSPATH ein, hinter Parameter –x die odex Datei welche ihr bearbeiten wollt.
Anschließend habt ihr jetzt einen Ordner out in eurem Deodexing Verzeichnis. Das ist die decompilierte odex Datei. Sie enthält alle zugehörigen smali Dateien die ihr nun nach Herzenslust verändern könnt…
--> Schritt 2
Erzeugung einer classes.dex Datei.
Code:
java -Xmx1024m -jar smali-1.3.3.jar out -o classes.dex
//Es wird jetzt eine classes.dex in eurem Deodexing Verzeichnis erzeugt.
3.- Deodex Datei erstellen
Wir haben nun eine classes.dex welche unsere durchgeführten Änderungen der services.odex enthält, der Schritt zum Deodex File ist jetzt ein Kinderspiel.
Ihr kopiert die original services.jar aus eurem Deodex Verzeichnis auf den Desktop, öffnet diese mit 7-Zip und fügt die erzeugte classes.dex ein:
Anhang 102774
Jetzt haben wir die services.jar deodex vorliegen, eine zusätzliche Odex Datei ist durch die nun integrierte classes.dex nicht mehr notwendig. Die Deodexde jar kann nun in Deodex ROMS eingebunden werden.
4.- Reodexen
Aber nun zum wirklich interessanten Teil. Wie kommen wir von unserer Deodex services.jar wieder zu einer funktionierenden Odex Version?
Wir benennen zuerst einmal die Deodex services.jar die wir nun auf dem Desktop haben um in patched_services.jar
> Das Smartphone mit dem PC verbinden
> Eine Eingabeaufforderung in android-sdks / platform-tools öffnen
Code:
adb push C:\Users\Ghost\Desktop\patched_services.jar sdcard/Deodexing/patched_services.jar
// Verschieben der patched_services.jar auf den Deodexing Ordner der SD Karte
adb shell
// shell öffnen
su
// Superuserrechte
mount -o remount,rw system
// system Ordner R/W mounten
cp system/framework/services.jar sdcard/Deodexing
//original services.jar im Deodexing Ordner gesichert.
cp -f sdcard/Deodexing/patched_services.jar system/framework/services.jar
//services.jar im Frameworkordner mit der patched_services.jar (Deodex) überschreiben.
dexopt-wrapper system/framework/services.jar system/framework/patched_services.odex $BOOTCLASSPATH
//Die Deodex services.jar wird nun zu einer patched_services.odex gemacht
cp -f sdcard/Deodexing/services.jar system/framework
//original services.jar wieder in system/framework laden
Anhang 102779
5.- Signatur anpassen
Ein wichtiger Punkt beim reodexen ist die Signatur. Diese hat sich durch den reodex verändert. Das Android System überprüft beim Bootvorgang die Signaturen, ist eine fehlerhaft bleibt das Gerät beim hochfahren in einem Bootloop hängen.
Also kopieren wir einfach die Signatur der original Odex Datei und überschreiben mit dieser dann die falsche in unserem neu erzeugten Odex File. Die adb shell ist bereits geöffnet...
Code:
busybox dd if=/system/framework/services.odex of=/system/framework/patched_services.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
Anhang 102780
6.- Abschluss
Jetzt haben wir ein korrekt signiertes odex file (patched_services.odex) erstellt welches wir nun wieder exportieren können um es in eine flashbare zip Datei einzubinden.
Code:
cp system/framework/patched_services.odex sdcard/Deodexing
//reodexte patched_services.odex in den Deodexing Ordner der SD Karte verschieben.
rm system/framework/patched_services.odex
//löschen der reodexten Datei im Verzeichnis system/framework
exit
//Superuser ausloggen
exit
//shell schließen
adb pull sdcard/Deodexing/patched_services.odex C:\Users\Ghost\Desktop\services.odex
//reodexte patched_services.odex von der SD Karte auf den Desktop holen
adb pull sdcard/Deodexing/ services.jar C:\Users\Ghost\Desktop\services.jar
//originale services.jar von der SD Karte auf den Desktop holen
Nach diesen Schritten befindet sich unsere reodexte services.odex und unsere original services.jar auf dem Desktop und können in eine flashbare zip Datei gepackt werden.
7.- In flashbare .zip einbinden
Ich habe eine flashbare zip Vorlag vorbereitet:
Anhang 102769
Ihr könnt nun diese zip mit 7-Zip öffnen und die Reodexte services.odex sowie die originale services.jar in den Ordner system/framework legen und anschließend die zip einfach flashen.
Wollt ihr den Mod für ein Deodex ROM müsst ihr in den framework Ordner natürlich nur die
Deodexde services.jar legen.
Anhang 102781
8.- Updater script anpassen
In der flashbaren zip ist immer ein updater-script enthalten welches dem Gerät sagt was für
Schritte ausgeführt werden sollen. Diese liegt in:
/META-INF/com/google/android/
Diese kann aus der zip heraus kopiert, in einem Text Editor bearbeitet und anschließend wieder
in der zip überschrieben werden. Die Codeteile hinter ui_print stehen dafür zum Beispiel für die
Textausgabe auf dem Display während des flash Vorgangs.
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Hey, sollte es an der ein oder anderen Stelle nicht ausführlich genug sein,
bitte ich um Rückmeldung ;)
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Super Anleitung, danke Notronic!;)
Unter "3. --> Deodexing-Odexing Tools Downloaden --> [ATTACH]Deodexing Tools[/ATTACH]" ist glaube ich der Link nicht richtig übernommen worden.
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Hey, danke für den Hinweis. Habe das noch korrigiert...
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Schon jemand nach der Anleitung ausprobiert?
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Ich habe deine ausführliche Anleitung hier unter Deodexing/Deodexed zugefügt. ;)
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Sobald ich es brauch, werde ich es mal durchziehen.
Meine Sachen beschränkten sich bisher nur auf frameworks decompilieren ohne deodexen.
Hab den Thread hier auch im Anleitungssticky verlinkt.
Danke.
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Notronic for President ;-)
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Also, das tool ist fertig. Ohne viel schnick schnack...
Es geht jetzt nur noch darum die Readme ein wenig zu verdeutlichen (werde ich auf Englisch machen...)
Findet ihr das Tool als .exe anzubieten unseriös???
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Zitat:
Zitat von
Notronic
Findet ihr das Tool als .exe anzubieten unseriös???
Nein im Gegenteil.. sieht man in dem Segment einfach nicht oft ;)
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Nein, schlägt kein Alarm... ist jetzt alles fertig.
Muss nur noch überlegen wie wir es publizieren...
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Einfach hier testen ;)
https://www.virustotal.com/
Dann kann nachher auch keiner meckern... ^^
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
AW: [HOWTO]Decompilieren - Deodex - Reodex Framework Files
Ich hole den Thread nochmal raus. Habe das ganze jetzt noch etwas aufgepept und eine Swing Gui dazu geschrieben. Damit ist die Bedienung Kinder leicht ;)
Bin mit der Entwicklung leider noch nicht ganz fertig, aber im Endstadium. Mich würde aber sehr interessieren was ihr davon haltet.
Wer nutzt es?
Anregungen, Ideen, Kritik...?
Gesendet mit der Macht der vier Kerne xD