首页 > 代码库 > 有关于apktool的使用的一些心得

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

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

1)JAVA_HOME配置:

2)C:\Program Files\Java\jdk1.7.0_51;CLATHPATH配置:C:\Program Files\Java\jdk1.7.0_51\lib\dt.jar;C:\Program Files\Java\jdk1.7.0_51\lib\tools.jar;.注意:最后有“.”

3)path配置:C:\Program Files\Java\jre7\bin;C:\Program Files\Java\jdk1.7.0_51\bin;

可以就个人情况而言。

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:\Users\Administrator\apktool\framework\1.
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:\Users\Administrator中apktool文件删除即可解决。

未完待续。。。。。。。。。