Skip to content

Mosect/apk2gradle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apk2gradle

Apk to gradle project 将apk转成gradle可开发项目

依赖工具

apktool

dex2jar

dex2jar-all

Android-SmaliPlugin

注意

  1. 不支持加固(加壳)apk
  2. 资源res可以添加和修改,但是不能删除
  3. java类可以添加和修改,不能删除;修改的最小单位是方法和字段

构建工具:

在项目目录下,执行(需要设置JAVA_HOME环境变量为JDK1.8):

gradlew outputProject

相关工具将会输出在build/apk2gradle-xxx目录下

或者使用Android Studio、Idea打开项目,执行gradle任务:outputProject

更新记录

V2.1.2

  1. 修复读取配置文件发生异常问题:Integer cannot be cast to String

V2.1.1

  1. 更换dex2jar工具,修复dex2jar在jdk8出现java.lang.NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer;问题

V2.1.0

  1. 更改资源存储方式,名称含有特殊字符的资源才会放到res.aar,其他资源放在项目src/main/res之下
  2. 更新了Android-SmaliPlugin版本为1.2.0-b1,支持Copy注解

V2.0.2

  1. 更新Android-SmaliPlugin为1.1.2
  2. 其他细节优化

V2.0.0-b1

  1. 导出的项目改用Android-SmaliPlugin,支持java+smali混合开发
  2. 优化资源处理方式

已知问题

V2.1.0

  1. 新版本androidx对v31做了支持,引用了非原生rom资源,values-v31/colors.xml文件可能包含非AndroidSdk资源,需要手动修复出错位置

V2.0.0-b1

  1. 直接运行debug有可能无法编译smali代码,属于Android-SmaliPlugin问题,请在Android-SmaliPlugin项目提issue

使用工具:

进入工具目录,执行:

java -jar apk2gradle.jar export <apk_file_path> [output_dir]

之后输出相关gradle项目,可以使用Androi Studio 4.+打开

二次开发

AndroidStudio打开apk2gradle导出的项目,在app/src/main/java目录,创建相关代码即可。 相同类下的方法、字段会替换原本dex的方法和字段

支持

个人博客:http://mosect.com