APK的反编译和重新编译
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,具体命令太多,建议使用第三方工具进行签名
转载于:https://my.oschina.net/ososchina/blog/358867