2016-04-28 14 views
2

Ich möchte Odex-Datei zu Dex-Datei zu verdecken. Ich habe bereits Rahmenordner vom System gezogen. Ich habe versucht "java -jar baksmali-2.1.2.jar -d System/Framework-X temp.odex" -Befehl, aber Fehler wurde produziert - Fehlermeldung ist wie unten.konvertieren Odex-Datei in Dex-Datei

Error occurred while loading boot class path files. Aborting. org.jf.util.ExceptionWithContext: Cannot locate boot class path file /system/framework/core.jar 
     at org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry(ClassPath.java:277) 
     at org.jf.dexlib2.analysis.ClassPath.fromClassPath(ClassPath.java:182) 
     at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:67) 
     at org.jf.baksmali.main.run(main.java:113) 
     at org.jf.baksmali.main.main(main.java:322) 

Ich konnte "core.jar" in meinem Android-System-Framework-Ordner nicht finden.

+0

Ist das mit Dalvik? Oder Kunst? – JesusFreke

+0

das ist mit der Kunst. –

Antwort

1

Versuchen Sie stattdessen:

java -jar baksmali-2.1.2.jar -c boot.oat -d system/framework/arm/boot.oat -x temp.odex 

Der spezifische Pfad zu Ihrem boot.oat könnte anders sein.

Beachten Sie auch, dass baksamali die N Vorschaubilder noch nicht unterstützt.

+0

Ich habe es versucht, aber ein anderer Fehler wurde erzeugt. Beim Laden der Boot-Klassenpfaddateien ist ein Fehler aufgetreten. Abbrechen. org.jf.util.ExceptionWithContext: Kann nicht Boot-Classpath Datei boot.oat bei org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry (ClassPath.java:2 77) bei org.jf.dexlib2.analysis finden. ClassPath.fromClassPath (ClassPath.java:182) bei org.jf.baksmali.baksmali.disassembleDexFile (baksmali.java:67) bei org.jf.baksmali.main.run (main.java:113) bei org. jf.baksmali.main.main (main.java:322) –

+0

Wie ich schon sagte, der spezifische Pfad zu Ihrer boot.oat könnte anders sein. – JesusFreke

0

Dieser arbeitete für mich adb pull /system/framework/arm/boot.oat /tmp/framework/boot.oat Platzierung der apk und die ODEX-Datei baksmali.jar -x -c boot.oat -d /tmp/framework APKname.odex -o APKname

+0

Ich habe es so versucht. java -jar baksmali-2.1.2.j ar -x -c boot.oat -d System/Framework Test.odex -o Test.apk. aber Fehler wurde erzeugt. Beim Laden der Boot-Klassenpfaddateien ist ein Fehler aufgetreten. Abbrechen. org.jf.util.ExceptionWithContext: Die Boot-Klassenpfaddatei boot.oat kann nicht gefunden werden unter org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry (ClassPath.java:2 77) unter org.jf.dexlib2.analysis.ClassPath.fromClassPath (ClassPath.java:182) bei org.jf.baksmali.baksmali.disassembleDexFile (baksmali.java:67) bei org.jf.baksmali.main.run (main.java:113) bei org.jf.baksmali.main.main (main.java:322) –

+1

Stellen Sie sicher, dass sich die Datei boot.oat im System/Framework befindet. Dies sollte der Code sein 'java -jar baksmali-2.1.2.jar -x -c boot.oat -d System/Framework Temp.Odex -o temp' –

+0

Ich zog boot.oat aus System/Framework und versuchen es erneut. aber der gleiche Fehler wurde reproduziert. –

0

Ich bin nicht sicher, dass ich deine Frage richtig verstanden habe (korrigieren Sie mich freundlich, wenn ich falsch liege), aber wenn Sie versuchen, eine odex zu konvertieren dex, habe ich bereits hier auf eine ähnliche Frage geantwortet: https://reverseengineering.stackexchange.com/questions/12393/reverse-engineering-android-vendor-system-apps/12406#12406

Wie dem auch sei, meines Wissens zwei chooice haben:

Viel Glück

+0

Ich habe dies mit oat2dex versucht. aber erro wurde produziert. Fehlermeldung ist "OAT Hader Checking ..: Fehler! OAT2DEX File Check File FAIL". –

+0

Danke. Ich habe es geschafft. –

2

Ab 2017.06.09 baksmali hat sich geändert. Es funktioniert so.

java -jar baksmali-2.2.0.jar d SamsungInCallUI.odex -o SamsungInCallUI 

Dann die Dex-Datei zusammenstellen.

java -jar smali-2.2.0.jar ass SamsungInCallUI -o SamsungInCallUI.dex