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

     概述:通过反编译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
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值