• apk反编译和重新打包流程


    1.工具准备

            a.jdk下载,添加“...\jdk\bin”到系统环境变量  Java Downloads | Oracle

    2.反编译   

        java  -jar  apktool_2.6.1.jar (拖入你的apktool)  d   +(拖入你的.apk)

        格式为:java  -jar  apktool的名字  d(反编译)  要解包的apk  -o(输出)  文件名

    反编译出来的文件目录

    其中,res文件夹中存放着该app所有的资源(xml,布局文件和图片);smali文件中存放的是app的所有代码,但代码是smali语言格式,smali语言是Android虚拟机所使用的寄存器语言。还有就是 Androidmanifest.xml功能清单文件一目了然,可以直接查看。
    注意: 1.将apk文件重命名为.zip格式并解压,androidmanifest会出现乱码;
            2.解压后,classes.dex文件中存放在着所有代码,但需要用特殊工具(dex2jar\jd-gui)进行查看,解压操作一般用于获取资源图片快捷
            3.如果就查看代码而言,你可以用jadx工具直接导入apk查看源码
    如果你能看懂smali语言,可以修改smail中的一些静态成员变量,这里简单对androidManifest.xml某个activity做修改,然后重新打包

     

    3.重新打包  

    java -jar .\apktool.jar b .\打包的文件夹\
       格式为: java  -jar  apktool的名字  b(打包)  要打包的文件夹名字
    重新打包后,反编译目录下会出现dist目录以及其中未签名的apk文件

     

    4.生成签名证书(造一个简单签名文件)

     keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
    格式   36500 :100年 ; test.keystore :签名后的文件名
      填写密码,对应名称(记住密码,没记住就重造一个文件)
      随时查看证书    keytool -list -v -keystore test.keystore  
            Enter keystore password: //输入密码,回车

     

    5.签名:

    jarsigner -verbose -keystore E:\反编译\test.keystore  -signedjar  shop111.apk E:\反编译\shop-release\dist\shop-release.apk  testalias
    格式: jarsigner -verbose -keystore 签名 -signedjar  签名文件后的文件名 需要签名文件  证书里alias别名

     

    6.遇到问题:

    1.jarsigner不是内部命令?
            重装jdk,确保安装目录bin里有jarsigner.exe
    2.  [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries?安装不能提取native库
        a.回到AndroidManifest.xml中,把android :extractNativeLibs="false"改为true(工程对so库进行压缩,安装时解压)重新打包
        b.如果原因是由于apktool在回编译apk包是没有进行内存对齐,可以使用zipalign工具再次对齐已经签名后的apk
    ​​​​​​​

     

    参考链接:
  • 相关阅读:
    大佬们有没有办法把这个json变成sql db或者df?
    【译】了解17.10 GA 中最新的 Git 工具特性
    java毕业设计网上购物商城系统研发mybatis+源码+调试部署+系统+数据库+lw
    【计算机毕业设计】基于JSP的毕业设计选题系统的设计与实现
    从html radio到android RadioButton
    USB转2路RS422串口
    【算法】插入排序
    jQuery学习:基本选择器
    4. algorithm
    拦截浏览器从服务器后台加载的js 文件 替换为本地js文件 方便调试线上前端bug
  • 原文地址:https://blog.csdn.net/ly_xiamu/article/details/126676446