apktoolでエラー


apktoolでデコンパイルしようと以下の様なエラーが出た。

apktool d hoge.apk
...
W: Could not decode attr value, using undecoded value instead: ns=android, name=touchscreenBlocksFocus, value=0xffffffff
...

どうやらframework.apkが古いようなのでnexus5から引っ張ってきて入れ替える。

adb pull /system/framework/framework-res.apk
apktool if framework-res.apk

これで無事デコンパイルできるようになった。

参考

[電話] apktoolでapkを弄り回す日々。そのいち

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

6 comments

  1. kj より:

    はじめまして!
    apkのデコンパイルがエラーがでてしまいます。
    原因はわかりますでしょうか?
    java version “1.7.0_79”
    Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
    I: Baksmaling…
    I: Loading resource table…
    Exception in thread “main” brut.androlib.AndrolibException: Could not decode arsc file
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56)
    at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:491)
    at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74)
    at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66)
    at brut.androlib.Androlib.getResTable(Androlib.java:50)
    at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
    at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
    at brut.apktool.Main.cmdDecode(Main.java:146)
    at brut.apktool.Main.main(Main.java:77)
    Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
    at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
    at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44)
    at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:102)
    at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83)
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
    … 8 more

  2. kj より:

    ありがとうございます。最新版にしてもだめのようです。JAVA SE kitは8で大丈夫でしょうか?
    それともJAVA SE kit 7のほうがいいのでしょうか?
    apkファイルはうまくいくものは、デコンパイルできるのですが、できないものは上のようなエラーがでてしまいます。

    • kj より:

      apktoolではなく、apk multi toolのほうもやってみました。本家のサイトから最新版をいれると

      以下のエラーがでて、cmdが閉じてしまいます。こちらもうまくいかないようです。

      |2015/06/04 — 16:14:57.77|

      java version “1.8.0_45”
      Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
      Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
      .apk) の使い方が誤っています。

      • epy0n0ff より:

        apktoolはjava8のほうでも動くようです。
        framework-res.apkはデコンパイルしたいapkを動かしていた端末から抜き取った物でしょうか?

        apk multi toolはちょっと使ったことないので何ともコメントできないですー。

        • kj より:

          ありがとうございます!framework-res.apkは、端末から抜き取っていませんでした。
          以前、apk multi toolのほうは、framework-res.apkを抜き取らず、そのまま
          デコンパイルできたことがあります。やはり抜きとる必要がありますか?
          やはり、デコンパイルできないapk ファイルとかあるのでしょうか。。。。