1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Dekompilieren von Rosie.apk funktioniert nicht!

Dieses Thema im Forum "Root / Hacking / Modding für das HTC Sensation" wurde erstellt von Gomi, 12.03.2012.

  1. Gomi, 12.03.2012 #1
    Gomi

    Gomi Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    70
    Erhaltene Danke:
    0
    Registriert seit:
    03.02.2011
    Phone:
    HTC Sensation
    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
      Dateigröße:
      48.7 KB
      Aufrufe:
      322
  2. he_stheone64, 01.04.2012 #2
    he_stheone64

    he_stheone64 Android-Ikone

    Beiträge:
    6,852
    Erhaltene Danke:
    4,437
    Registriert seit:
    04.02.2010
    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
     
  3. Fallwrrk, 01.04.2012 #3
    Fallwrrk

    Fallwrrk Gast

    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
     
  4. he_stheone64, 01.04.2012 #4
    he_stheone64

    he_stheone64 Android-Ikone

    Beiträge:
    6,852
    Erhaltene Danke:
    4,437
    Registriert seit:
    04.02.2010
    Ich gehe natürlich davon aus, das Du bei deinem Versuch auch die passende framework und com.htc.resources installiert hast... :flapper:
     
  5. Fallwrrk, 01.04.2012 #5
    Fallwrrk

    Fallwrrk Gast

    Ich denke, dass das Standard ist... ;)
     
  6. he_stheone64, 02.04.2012 #6
    he_stheone64

    he_stheone64 Android-Ikone

    Beiträge:
    6,852
    Erhaltene Danke:
    4,437
    Registriert seit:
    04.02.2010
    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.
     
  7. Gomi, 06.04.2012 #7
    Gomi

    Gomi Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    70
    Erhaltene Danke:
    0
    Registriert seit:
    03.02.2011
    Phone:
    HTC Sensation
    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!
     
  8. MaoHD, 13.04.2012 #8
    MaoHD

    MaoHD Android-Experte

    Beiträge:
    466
    Erhaltene Danke:
    189
    Registriert seit:
    11.10.2011
    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:
     
  9. he_stheone64, 13.04.2012 #9
    he_stheone64

    he_stheone64 Android-Ikone

    Beiträge:
    6,852
    Erhaltene Danke:
    4,437
    Registriert seit:
    04.02.2010
    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
     
    MaoHD bedankt sich.
  10. MaoHD, 13.04.2012 #10
    MaoHD

    MaoHD Android-Experte

    Beiträge:
    466
    Erhaltene Danke:
    189
    Registriert seit:
    11.10.2011
    :thumbup: jetzt hats funktioniert besten Dank!
    Habe meinen Fehler auch gefunden, habe versucht mit -x zu dekompilieren... :rolleyes2:
     
  11. MaoHD, 15.04.2012 #11
    MaoHD

    MaoHD Android-Experte

    Beiträge:
    466
    Erhaltene Danke:
    189
    Registriert seit:
    11.10.2011
    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: 15.04.2012
  12. he_stheone64, 15.04.2012 #12
    he_stheone64

    he_stheone64 Android-Ikone

    Beiträge:
    6,852
    Erhaltene Danke:
    4,437
    Registriert seit:
    04.02.2010
  13. MaoHD, 15.04.2012 #13
    MaoHD

    MaoHD Android-Experte

    Beiträge:
    466
    Erhaltene Danke:
    189
    Registriert seit:
    11.10.2011
    Nein leider gleiches Fehlerbild...
    Es wird zwar im Ordner ein Verzeichnis build angelegt, aber das Unterverzeichnis apk ist leer.
     
  14. he_stheone64, 15.04.2012 #14
    he_stheone64

    he_stheone64 Android-Ikone

    Beiträge:
    6,852
    Erhaltene Danke:
    4,437
    Registriert seit:
    04.02.2010
    Welche aapt.exe Version nutzt Du? Pack mal die neueste aus dem SDK rein, falls noch nicht geschehen.
     
  15. MaoHD, 15.04.2012 #15
    MaoHD

    MaoHD Android-Experte

    Beiträge:
    466
    Erhaltene Danke:
    189
    Registriert seit:
    11.10.2011
    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 ;)
     
  16. kassi, 29.04.2012 #16
    kassi

    kassi Android-Lexikon

    Beiträge:
    1,283
    Erhaltene Danke:
    254
    Registriert seit:
    02.07.2011
    Phone:
    OnePlus One
    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. :(
     

Diese Seite empfehlen