您的位置:首页 > 其它

APK反编译以及重新打包的详细步骤

2015-08-23 11:23 351 查看
概述:通过反编译apk可以得到我们想要的资源,学习到自己想要的东西。如果有特殊需求还可以更改相应的地方然后再重新打包回去,达到自己需要的效果。这里我将分成两个部分来描述。
第一:反编译apk,然后根据自己需求更改,再重新打包回去。 用到的工具:apktool.zip
第二:将重新打包的apk进行签名。用到的工具:auto-sign.zip

1、反编译: 工具:apktool (版本是 2.0) 目前很多apk 都要求apktool 版本足够高才行,不然会报版本过低的错误。

cmd ——>cd apktool文件夹的路径(我这里是C:\Users\Administrator\Desktop\android_tool_v2.2\lib\apktool
apktool.bat d -f test.apk -o test (因为apktool的版本升级到了2.0 所以方式有点变化。 标准格式变成 apktool -f [待反编译的apk] -o [反编译之后存放文件夹] ) 具体操作如图1.1所示:





图 1.1

警告:在网上查看怎样反编译的时候给的操作方式是 apktool.bat d -f test.apk test 或者 apktool.bat d test.apk test 这样操作会导致以下错误,如图1.2所示:





图1.2

反编译之后会得到test 文件夹,打开test文件夹,里边就是反编译出来的各种资源文件







图1.3

然后继续执行 apktool.bat b test 如下图所示:





图1.4

警告:这里特别要注意,可能我们反编译的有错,所以如果直接执行打包程序会报错。这里提供两个解决方案:1、将错误看懂然后去对应的地方改,不过这个比较难找,不够直观。 2、可以将反编译的代码拷贝到一个eclipse新建的空工程中,看看是否有错,直到修改正确为止。而且一般错误都是出现在资源文件中,容易修改。

之后再去test文件夹中就会有如下发现, 图1.5 所示 :





图1.5

打开 “dist”文件夹就会看到重新生成的apk。

接下来就要用到签名工具了,如果不经过签名是不能正确运行的。工具: auto-sign.zip
将打包好的test.apk 拷贝到 签名文件夹中,并且重命名为 update.zip 如图2.1所示:





图2.1

通过cmd ——> cd [签名文件夹的路径 ] (我测试的路径为:C:\Users\Administrator\Desktop\android_tool_v2.2\lib\autosign).如图2.2所示:





图2.2

接下来输入 java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip update_signed.zip 就可以了 。测试过程如图2.3所示:





图2.3

之后去签名文件夹中找到签名后的压缩包





图2.4

最后将这个压缩包格式改成.apk就可以正确运行了。如图2.5所示。





图2.5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息