APK的反编译和重新编译

原创
2014/12/21 12:57
阅读数 2K

jar包准备工作:

apktool-xx.jar

signapk-xx.jar

参考:http://www.oschina.net/question/54100_33457

http://www.itnose.net/detail/6168594.html


1.完整反编译apk命令:

java -jar apktool\apktool-1.25.jar d -r myApp.apk

如果只是部分反编译

java -jar apktool\apktool-1.25.jar d  myApp.apk

如果你配置了java jdk的环境变量,那么这条命令可以这样

apktool\apktool-1.25.jar d -r myApp.apk


在反编译完成后,我们可以得到apktool.yml和public.xml


①这条命令运行的条件是在apktool-xx.jar包同一目录下存在appt.exe,或者你可以将appt.exe设置为环境变量。

appt.exe从在与你的android sdk目录下的/build-tools/android-xx/ 目录下


②重新打包编译可能会发生如下异常,说明你的命令参数缺少 -r命令,因此 -r是必须的

Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN
otExist: apktool.yml
        at brut.androlib.Androlib.readMetaFile(Unknown Source)
        at brut.androlib.Androlib.build(Unknown Source)
        at brut.androlib.Androlib.build(Unknown Source)
        at brut.apktool.Main.cmdBuild(Unknown Source)
        at brut.apktool.Main.main(Unknown Source)
Caused by: brut.directory.PathNotExist: apktool.yml
        at brut.directory.AbstractDirectory.getFileInput(Unknown Source)
        ... 5 more


2.重新打包编译被反编译的apk

java -jar apktool\apktool-1.25.jar b myApp copyMyApp.apk


3.给apk签名

signapk-xx.jar,具体命令太多,建议使用第三方工具进行签名

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部