Hello,村长🙂

不负时光,学习不止;做我所想,强身健体
在这里插入图片描述

转载修改 aar 重新打包

1、反编译 jar 获取 java 文件

  • 下载反编译工具 JD-GUI
  • 导出 java 文件并修改

2、java 文件编译成 class 文件

  • 使用 javac 命令编译

  • 当遇到编码问题时添加参数:-encoding utf-8
    在这里插入图片描述

  • 1、当遇到系统程序包不存在时,如下:把相应的程序包(jar)放在与需要编译的 java 文件同级目录下
    在这里插入图片描述

  • 2、当遇到编译源 jar 符号找不到时,如下:
    在这里插入图片描述

  • 3、当遇到编译源 jar 具有相同简明类型(因为第三方包混淆)时,如下:
    在这里插入图片描述

如果放在同一个目录下还是显示找不到程序包,可以在 classpath 后面追加多个 jar 参数,使用分号分隔:例如:javac -encoding utf-8 -classpath android.jar;classes-dex2jar.jar GRAppStoreActivity.java

  • 最后,可能像这样执行编译命令:javac -encoding utf-8 -classpath AAAA.jar BBBB.java
    在这里插入图片描述
    AAAA.jar :这个 jar 是目标 jar,也就是我们需要修改里面的代码,然后重新打包的 jar

注意:这里有个坑:如果我需要修改的 jar 代码依赖 android jar,那么!!!这了 android.jar 必须是 android sdk 目录下的 jar,不能随便找一个,否则编译失败。
在这里插入图片描述

3、替换字节码文件

复制编译生成的 class 文件,替换我们需要修改的 jar(反编译 jar ,从 JD-GUI 导出来是一个目录,里面的内容是 class 文件) 里面对应的 class 文件。

4、使用 jar 命令重新打包生成新的 jar 文件:jar cvf 生成文件名.jar

在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐