最終更新: bokkuri_orz 2013年11月09日(土) 00:11:25履歴
adb pull [端末内のアプリ(xxx.apk)] xxx.apk apktool d xxx.apk xxx --- xxx.apkをxxxディレクトリに decode
smaliコードとして、プログラムをいじれます。
apktool b xxx xxx2.apk --- ビルドして xxx2.apk 作成 jarsigner -verbose -keystore xxx.keystore xxx2.apk xxx --- 署名 zipalign -v 4 xxx2.apk xxx3.apk --- 最適化 adb install -r xxx3.apk --- 端末に(上書き)インストール
以下の様なエラーが発生しました。
>apktool d xxxxx.apk xxxxx I: Baksmaling... I: Loading resource table... I: Loaded. I: Loading resource table from file: C:\Users\[ユーザー]\apktool\framework\1.apk I: Loaded. W: Could not decode attr value, using undecoded value instead: ns=android, name=largeHeap, value=0xffffffff I: Decoding file-resources... W: Could not decode attr value, using undecoded value instead: ns=android, name=state_activated, value=0xffffffff W: Could not decode attr value, using undecoded value instead: ns=android, name=actionViewClass, value=0x0000000b Exception in thread "main" java.lang.NullPointerException at java.io.Writer.write(Unknown Source) at brut.androlib.res.util.ExtMXSerializer.writeAttributeValue(ExtMXSerializer.java:38)
デコード、ビルド時に、framework.apk的なものが必要らしいです。
framework.apkの取得についてはこちらを参考にしました。
https://code.google.com/p/android-apktool/wiki/Fra...
自分の端末から
/system/framework/framework-res.apk
を拾ってきて 1.apk にリネームして上記パスに配置。
これでデコード、ビルドが成功しました。
1. apkファイルを解凍して classes.dex を取得。
zipファイルなので、普通に解凍できます。
2. dexをjarへコンバート。
dex2jar.bat classes.dex
3. jarを jd-gui で開く。
このツール上でソースを確認できますが、Fileメニューからjavaファイルとして保存することも出来ます。
タグ
最新コメント