Dekompilieren von Rosie.apk funktioniert nicht!

Gomi

Gomi

Ambitioniertes Mitglied
0
Hallo,

Ich wollte mal die Rosie.apk dekompilieren, da ich mich auch ein bisschen ans modifizieren dran machen will.

Ich habe den Apk Manager 4.9. Wenn ich eine normale *.apk dekompilieren will geht das auch, aber bei der Rosie.apk kommt immer eine Fehlermeldung.

Im Anhang habe ich eine Übersicht der Befehle in der Comando Zeile.
Ich habe das Projekt ausgewählt (-22-) und dann habe ich Dekompilieren von proprietären Rom apks ausgewählt (-10-). Dann wird man aufgefordert der com.htc.resources.apk anzugeben. Gesagt getan. Dann kommt immer ein Fehler, den man im Log anschauen kann, dieser lautet wie folgt:

|12.03.2012 -- 16:40:39,20|
--------------------------------------------------------------------------
java version "1.7.0_02"
Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
Java HotSpot(TM) 64-Bit Server VM (build 22.0-b10, mixed mode)
Der Befehl "adb" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
W: Config flags size > 32. Exceeding bytes: 0000000001000000.
W: Invalid config flags detected: dimen-hdpi-ERR0
W: Config flags size > 32. Exceeding bytes: 0000000002000000.
W: Invalid config flags detected: dimen-hdpi-ERR1
W: Config flags size > 32. Exceeding bytes: 0000000004000000.
W: Invalid config flags detected: dimen-hdpi-ERR2
W: Config flags size > 32. Exceeding bytes: 0000000005000000.
W: Invalid config flags detected: dimen-hdpi-ERR3
W: Config flags size > 32. Exceeding bytes: 0000000001000000.
W: Invalid config flags detected: dimen-zh-rCN-hdpi-ERR4
W: Config flags size > 32. Exceeding bytes: 0000000002000000.
W: Invalid config flags detected: dimen-zh-rCN-hdpi-ERR5
W: Config flags size > 32. Exceeding bytes: 0000000004000000.
W: Invalid config flags detected: dimen-zh-rCN-hdpi-ERR6
W: Config flags size > 32. Exceeding bytes: 0000000005000000.
W: Invalid config flags detected: dimen-zh-rCN-hdpi-ERR7
W: Config flags size > 32. Exceeding bytes: 0000000001000000.
W: Invalid config flags detected: dimen-zh-rTW-hdpi-ERR8
W: Config flags size > 32. Exceeding bytes: 0000000002000000.
W: Invalid config flags detected: dimen-zh-rTW-hdpi-ERR9
W: Config flags size > 32. Exceeding bytes: 0000000004000000.
W: Invalid config flags detected: dimen-zh-rTW-hdpi-ERR10
W: Config flags size > 32. Exceeding bytes: 0000000005000000.
W: Invalid config flags detected: dimen-zh-rTW-hdpi-ERR11
W: Config flags size > 32. Exceeding bytes: 0000000001000000.
W: Invalid config flags detected: integer-hdpi-ERR12
W: Config flags size > 32. Exceeding bytes: 0000000002000000.
W: Invalid config flags detected: integer-hdpi-ERR13
W: Config flags size > 32. Exceeding bytes: 0000000004000000.
W: Invalid config flags detected: integer-hdpi-ERR14
W: Config flags size > 32. Exceeding bytes: 0000000005000000.
W: Invalid config flags detected: integer-hdpi-ERR15
I: Framework installed to: C:\Users\Gomi\apktool\framework\2.apk
I: Baksmaling...
Exception in thread "main" java.lang.RuntimeException: bad magic value: 64 65 78 0a 30 33 36 00
at org.jf.dexlib.DexFile.<init>(DexFile.java:377)
at org.jf.dexlib.DexFile.<init>(DexFile.java:274)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:48)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:33)
at brut.androlib.Androlib.decodeSourcesSmali(Androlib.java:68)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:85)
at brut.apktool.Main.cmdDecode(Main.java:120)
at brut.apktool.Main.main(Main.java:57)


Kennt jemand das Problem und weiß was zu tun ist, dass das funktioniert?

Danke im vorraus ;)
 

Anhänge

  • cmd.PNG
    cmd.PNG
    10,6 KB · Aufrufe: 459
Musst Du auch smali Werte anpassen oder nur xml und pngs? Im 2. Fall mache folgendes:

  • Exportiere und sichere die classes.dex aus Rosie
  • Lösche die classes.dex aus der apk
  • Dekompiliere ohne die classes
  • Führe deine edits durch und kompiliere
  • Pack die gesicherte classes.dex zurück in deine Rosie.apk
 
hestheone hat Recht. Das einfache Kompilieren und Dekompilieren ist bei Sense-ROMs lustigerweise nicht möglich. Das hat mich auch schon auf die Palme gebracht. Such bei den XDAs in "Android General Hacking & Development" auf den ersten 5 Seiten mal nach dem "HTC Decompiler", der macht die ganze Sache automatisch.

mfg Marcel
 
Ich gehe natürlich davon aus, das Du bei deinem Versuch auch die passende framework und com.htc.resources installiert hast... :flapper:
 
Ich denke, dass das Standard ist... ;)
 
Ich habe schon die lustigsten Sachen hier und vor allem auf XDA erlebt, daher frage ich mittlerweile immer noch mal zur Sicherheit nach. Wenn ich jemanden gut kenne, ist das nicht notwendig. Aber das kann man eben sonst nie genau wissen.
 
Hey, danke bin inzwischen immer noch noch nicht draufgekommen, aber werde mal morgen wenn oder wann anders wenn ich Zeit habe, euren Antworten nachgehen ;)

Danke!
 
Jetzt muss ich hier auch mal fragen...
Möchte Smali-Werte in der Roise.apk editieren. Wenn ich die Roise.apk ohne classes.dex dekompiliere klappt alles:

Code:
C:\Dokumente und Einstellungen\XPMUser>apktool d C:\Android\Rosie.apk C:\Android
\Rosie
I: Loading resource table...
I: Loaded.
I: Loading resource table from file: C:\Dokumente und Einstellungen\XPMUser\apkt
ool\framework\1.apk
I: Loaded.
I: Loading resource table from file: C:\Dokumente und Einstellungen\XPMUser\apkt
ool\framework\2.apk
W: Config flags size > 36. Exceeding bytes: 0x1000000.
W: Invalid config flags detected: dimen-hdpi-ERR0
W: Config flags size > 36. Exceeding bytes: 0x2000000.
W: Invalid config flags detected: dimen-hdpi-ERR1
W: Config flags size > 36. Exceeding bytes: 0x4000000.
W: Invalid config flags detected: dimen-hdpi-ERR2
W: Config flags size > 36. Exceeding bytes: 0x5000000.
W: Invalid config flags detected: dimen-hdpi-ERR3
W: Config flags size > 36. Exceeding bytes: 0x1000000.
W: Invalid config flags detected: dimen-zh-rCN-hdpi-ERR4
W: Config flags size > 36. Exceeding bytes: 0x2000000.
W: Invalid config flags detected: dimen-zh-rCN-hdpi-ERR5
W: Config flags size > 36. Exceeding bytes: 0x4000000.
W: Invalid config flags detected: dimen-zh-rCN-hdpi-ERR6
W: Config flags size > 36. Exceeding bytes: 0x5000000.
W: Invalid config flags detected: dimen-zh-rCN-hdpi-ERR7
W: Config flags size > 36. Exceeding bytes: 0x1000000.
W: Invalid config flags detected: dimen-zh-rTW-hdpi-ERR8
W: Config flags size > 36. Exceeding bytes: 0x2000000.
W: Invalid config flags detected: dimen-zh-rTW-hdpi-ERR9
W: Config flags size > 36. Exceeding bytes: 0x4000000.
W: Invalid config flags detected: dimen-zh-rTW-hdpi-ERR10
W: Config flags size > 36. Exceeding bytes: 0x5000000.
W: Invalid config flags detected: dimen-zh-rTW-hdpi-ERR11
W: Config flags size > 36. Exceeding bytes: 0x1000000.
W: Invalid config flags detected: integer-hdpi-ERR12
W: Config flags size > 36. Exceeding bytes: 0x2000000.
W: Invalid config flags detected: integer-hdpi-ERR13
W: Config flags size > 36. Exceeding bytes: 0x4000000.
W: Invalid config flags detected: integer-hdpi-ERR14
W: Config flags size > 36. Exceeding bytes: 0x5000000.
W: Invalid config flags detected: integer-hdpi-ERR15
I: Loaded.
I: Decoding file-resources...
I: Decoding values*/* XMLs...
I: Done.
I: Copying assets and libs...
Allerdings bekomme ich dadurch ja keine Smali-Dateien. Wenn ich es mit der classes.dex versuche passiert folgendes:

Code:
C:\Dokumente und Einstellungen\XPMUser>apktool d C:\Android\Rosie.apk C:\Android
\Rosie
I: Baksmaling...
Exception in thread "main" java.lang.RuntimeException: bad magic value: 64 65 78
 0a 30 33 36 00
        at org.jf.dexlib.DexFile.<init>(DexFile.java:377)
        at org.jf.dexlib.DexFile.<init>(DexFile.java:274)
        at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:44)
        at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:33)
        at brut.androlib.Androlib.decodeSourcesSmali(Androlib.java:68)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:85)
        at brut.apktool.Main.cmdDecode(Main.java:128)
        at brut.apktool.Main.main(Main.java:65)
Framework-res.apk und com.htc.resources.apk sind installiert.
Wo klemmts jetzt? :confused:
 
Es klemmt bei apktool mit der aktuellen Rosie, Du musst in dem Fall die classes.dex getrennt von Rosie bearbeiten. Sämtliche xml und png edits machst Du via apktool, wie oben beschrieben. Die classes.dex nimmst Du mit der neuesten smali baksmali Version auseinander.

Hier habe ich Dir ein Paket geschnürt inkl. einer kompakten Anleitung zu den Befehlen, falls Du keine smali baksmali Erfahrung hast.

Miscellaneous - Minus

Anschliessend packst Du die fertige classes.dex einfach per winrar wieder zurück in Rosie.apk
 
  • Danke
Reaktionen: MaoHD
:thumbup: jetzt hats funktioniert besten Dank!
Habe meinen Fehler auch gefunden, habe versucht mit -x zu dekompilieren... :rolleyes2:
 
Nachem ich mir jetzt das ganze Wochenende um die Ohren geschlage habe und nicht weiter komme wende ich mich nochmal an euch.

Das decompilieren klappt problemlos und auch die Modifikationen (.smali, .xml, etc.) gingen gut von der Hand.
Allerdings wollte ich jetzt die App kompilieren und bekomme wiedermal einen Fehler:

Code:
C:\Android>apktool b rosie
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
    (skipping index file 'C:\Android\rosie\res\drawable\Thumbs.db')
    (skipping index file 'C:\Android\rosie\res\drawable-hdpi\Thumbs.db')
    (skipping index file 'C:\Android\rosie\res\drawable-land-hdpi\Thumbs.db')
    (skipping index file 'C:\Android\rosie\res\drawable-port-hdpi\Thumbs.db')
invalid resource directory name: C:\Android\rosie\res/drawable-sw480dp-long-port
-hdpi
invalid resource directory name: C:\Android\rosie\res/values-sw320dp-long-port-h
dpi
invalid resource directory name: C:\Android\rosie\res/values-sw360dp-long-port-h
dpi
invalid resource directory name: C:\Android\rosie\res/values-sw480dp-long-port-h
dpi
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutExce
ption: could not exec command: [aapt, p, -F, C:\DOKUME~1\XPMUser\LOKALE~1\Temp\A
PKTOOL435715783773269962.tmp, -I, C:\Dokumente und Einstellungen\XPMUser\apktool
\framework\1.apk, -I, C:\Dokumente und Einstellungen\XPMUser\apktool\framework\2
.apk, -S, C:\Android\rosie\res, -M, C:\Android\rosie\AndroidManifest.xml]
        at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:193)
        at brut.androlib.Androlib.buildResourcesFull(Androlib.java:301)
        at brut.androlib.Androlib.buildResources(Androlib.java:248)
        at brut.androlib.Androlib.build(Androlib.java:171)
        at brut.androlib.Androlib.build(Androlib.java:154)
        at brut.apktool.Main.cmdBuild(Main.java:182)
        at brut.apktool.Main.main(Main.java:67)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\D
OKUME~1\XPMUser\LOKALE~1\Temp\APKTOOL435715783773269962.tmp, -I, C:\Dokumente un
d Einstellungen\XPMUser\apktool\framework\1.apk, -I, C:\Dokumente und Einstellun
gen\XPMUser\apktool\framework\2.apk, -S, C:\Android\rosie\res, -M, C:\Android\ro
sie\AndroidManifest.xml]
        at brut.util.OS.exec(OS.java:83)
        at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:191)
        ... 6 more
Nachdem dekompilieren der Rosie.apk befinden sich in dem Ordner folgende Ordner bzw. Dateien:

- assets
- res
- AndroidManifest.xml
- apktool.yml

Wenn ich es mit apktool b rosie.apk versuche bekomme ich diese Meldung:

Code:
C:\Android>apktool b rosie.apk
Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN
otExist: apktool.yml
        at brut.androlib.Androlib.readMetaFile(Androlib.java:142)
        at brut.androlib.Androlib.build(Androlib.java:159)
        at brut.androlib.Androlib.build(Androlib.java:154)
        at brut.apktool.Main.cmdBuild(Main.java:182)
        at brut.apktool.Main.main(Main.java:67)
Caused by: brut.directory.PathNotExist: apktool.yml
        at brut.directory.AbstractDirectory.getFileInput(AbstractDirectory.java:
103)
        at brut.androlib.Androlib.readMetaFile(Androlib.java:138)
        ... 4 more
Auch wenn ich die App dekompiliere und dann direkt wieder kompiliere klappt es nicht...
Warum geht das dekompilieren problemlos aber das kompilieren nicht?
 
Zuletzt bearbeitet:
Nein leider gleiches Fehlerbild...
Es wird zwar im Ordner ein Verzeichnis build angelegt, aber das Unterverzeichnis apk ist leer.
 
Welche aapt.exe Version nutzt Du? Pack mal die neueste aus dem SDK rein, falls noch nicht geschehen.
 
Ich verwende eigentlich die aktuelleste Version von http://code.google.com/p/android-apktool...
Aktuellste aapt.exe, apktool.bat und apktool.jar liegen unter C:\Windows, mit dem SDK habe ich mich noch nicht groß außeinander gesetzt ;)
 
Hab genau das selbe Problem :( Selbst wenn ich es dekompiliere/kompiliere ohne etwas an den Dateien zu ändern, bekomme ich die gleiche Fehlermeldung beim rekompilieren. :(
 

Ähnliche Themen

O
Antworten
0
Aufrufe
918
OneGamer
O
C
  • candlebox
Antworten
1
Aufrufe
1.786
daniel9180
D
S
  • selinamulle
Antworten
1
Aufrufe
1.994
korrosionsschutzz
K
Zurück
Oben Unten