有关于apktool的使用的一些心得

<span style="font-family: Arial, Helvetica, sans-serif;">1.配置Java的环境</span>

1)JAVA_HOME配置:

2)C:Program FilesJavajdk1.7.0_51;CLATHPATH配置:C:Program FilesJavajdk1.7.0_51libdt.jar;C:Program FilesJavajdk1.7.0_51lib ools.jar;.注意:最后有“.”

3)path配置:C:Program FilesJavajre7in;C:Program FilesJavajdk1.7.0_51in;

能够就个人情况而言。

2.下载apktool工具:http://www.cngr.cn/dir/209/sjrj/2012121291256.html (仅仅供參考)

3.解压apktool包。将apktool.jar、aapt.exe、apktool.bat复制到根文件夹的apktool文件里(本人是在E盘中创建了一个apktool文件夹)。假设要进行签名则须要使用signapk.jar、testkey.pk8、testkey.x509.pem来进行签名。

4.将您想要反编译的apk文件复制到apktool目录中,使用命令行进行反编译。


假设再次进行反编译则会出现:


则须要使用:apktool d -f framebyframe.apk进行覆盖反编译


5.将反编译的文件又一次回编译成apk文件,则须要:


6.进行签名则须要:


7.遇到的问题:

E:apktool>apktool d framebyframe.apk
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:UsersAdministratorapktoolframework1.
apk
I: Loaded.
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec:
0x01030119
        at brut.androlib.res.data.ResPackage.getResSpec(ResPackage.java:61)
        at brut.androlib.res.data.ResTable.getResSpec(ResTable.java:58)
        at brut.androlib.res.data.ResTable.getResSpec(ResTable.java:54)
        at brut.androlib.res.data.value.ResReferenceValue.getReferent(ResReferen
ceValue.java:62)
        at brut.androlib.res.data.value.ResReferenceValue.encodeAsResXml(ResRefe
renceValue.java:46)
        at brut.androlib.res.data.value.ResScalarValue.encodeAsResXmlAttr(ResSca
larValue.java:44)
        at brut.androlib.res.data.value.ResStyleValue.serializeToResValuesXml(Re
sStyleValue.java:48)
        at brut.androlib.res.data.value.ResBagValue.serializeToResValuesXml(ResB
agValue.java:40)
        at brut.androlib.res.AndrolibResources.generateValuesFile(AndrolibResour
ces.java:440)
        at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:243
)
        at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:115)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
        at brut.apktool.Main.cmdDecode(Main.java:146)
        at brut.apktool.Main.main(Main.java:77)
将C:UsersAdministrator中apktool文件删除就可以解决。



未完待续。。

。。。

。。

原文地址:https://www.cnblogs.com/brucemengbm/p/7270244.html