Skip to content

voidbytes/apk_modifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APK 自动修改工具

一个简单易用的 APK 自动修改工具,支持批量修改 APK 的包名、应用名称、版本号,并重新签名。

功能特性

  • 批量修改:支持同时处理多个 APK 配置
  • 包名修改:修改 APK 的包名,包括 Smali 代码中的引用
  • 应用名称修改:修改应用的显示名称
  • 版本号修改:修改版本 Code 和版本 Name
  • 自动依赖检查:运行前自动检查所需工具是否安装
  • 跨平台支持:支持 Windows、Linux 和 macOS
  • GitHub Action 集成:支持通过 GitHub Action 自动构建

安装与依赖

依赖工具

  1. Python 3.6+:运行脚本的基础环境
  2. JDK+:提供 keytooljarsigner 工具
  3. apktool:用于反编译和回编译 APK
  4. Android SDK build-tools:提供 zipalignapksigner 工具
    • 确保配置到环境变量

安装步骤

  1. 克隆或下载本项目到本地
  2. 安装上述依赖工具并配置环境变量
  3. 准备好待修改的原始 APK 文件,命名为 template.apk 并放在项目根目录

使用方法

1. 配置修改参数

在项目根目录创建 config.json 文件,格式如下:

[
    ["com.example.newpackage", "New App Name", 9999, "9999.0.0"],
    ["com.another.package", "Another App", 8888, "8888.0.0"]
]
  • 每个配置项包含四个元素:
    1. 新包名(new_package_name
    2. 新应用名称(new_app_name
    3. 新版本 Code(new_version_code
    4. 新版本 Name(new_version_name

2. 运行脚本

在项目根目录执行以下命令:

# Windows
python main.py

# Linux/macOS
python3 main.py

3. 查看结果

修改后的 APK 文件会生成在 output 目录中,文件名以新包名命名。

工作原理

  1. 依赖检查:检查 apktoolkeytooljarsignerzipalign 等工具是否安装
  2. 生成签名:生成与 Android Studio 一致的 Debug 签名文件
  3. 反编译 APK:使用 apktool 反编译原始 APK
  4. 修改配置
    • 修改 AndroidManifest.xml 中的包名、版本号
    • 修改应用名称(优先修改 strings.xml,其次修改 Manifest
    • 替换 Smali 代码中的包名引用
    • 重命名 Smali 目录结构
  5. 回编译 APK:使用 apktool 回编译修改后的代码
  6. 优化与签名
    • 使用 zipalign 优化 APK
    • 使用 apksignerjarsigner 进行签名
  7. 清理临时文件:删除临时生成的文件和目录

GitHub Action 集成

本项目已集成 GitHub Action,支持自动构建:

  1. 将代码推送到 GitHub 仓库的 main 分支
  2. GitHub Action 会自动:
    • 安装所需依赖
    • 运行修改脚本
    • 上传生成的 APK 作为构建产物
  3. 在 GitHub Actions 页面的 "Artifacts" 部分下载生成的 APK

注意事项

  1. 原始 APK:请确保 template.apk 文件存在且未被加密或加固
  2. 依赖配置:确保所有依赖工具已正确安装并配置到环境变量
  3. 签名冲突:由于使用 Debug 签名,修改后的 APK 可以直接覆盖安装使用相同签名的应用
  4. 兼容性:部分 APK 可能由于混淆或特殊结构导致修改失败
  5. 法律合规:请确保修改和使用 APK 符合相关法律法规

许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。

贡献

欢迎提交 Issue 和 Pull Request 来改进本项目。

联系方式

如有问题或建议,请通过 GitHub Issues 与我们联系。

About

一个简单易用的 APK 自动修改工具,支持批量修改 APK 的包名、应用名称、版本号,并重新签名。

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages