Skip to content

Commit f7b9956

Browse files
committed
add readme
1 parent 35f4f04 commit f7b9956

File tree

2 files changed

+116
-3
lines changed

2 files changed

+116
-3
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ name: Build and Upload APK
33
on:
44
push:
55
branches: [ main ]
6-
pull_request:
7-
branches: [ main ]
86
workflow_dispatch:
7+
# watch:
8+
# types: [ started ]
99

1010
jobs:
1111
build:
@@ -14,7 +14,7 @@ jobs:
1414
steps:
1515
- uses: actions/checkout@v4
1616

17-
- name: Set up JDK 11
17+
- name: Set up JDK
1818
uses: actions/setup-java@v5
1919
with:
2020
java-version: '25'

README.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# APK 自动修改工具
2+
3+
一个简单易用的 APK 自动修改工具,支持批量修改 APK 的包名、应用名称、版本号,并重新签名。
4+
5+
## 功能特性
6+
7+
- **批量修改**:支持同时处理多个 APK 配置
8+
- **包名修改**:修改 APK 的包名,包括 Smali 代码中的引用
9+
- **应用名称修改**:修改应用的显示名称
10+
- **版本号修改**:修改版本 Code 和版本 Name
11+
- **自动依赖检查**:运行前自动检查所需工具是否安装
12+
- **跨平台支持**:支持 Windows、Linux 和 macOS
13+
- **GitHub Action 集成**:支持通过 GitHub Action 自动构建
14+
15+
## 安装与依赖
16+
17+
### 依赖工具
18+
19+
1. **Python 3.6+**:运行脚本的基础环境
20+
2. **JDK+**:提供 `keytool``jarsigner` 工具
21+
3. **apktool**:用于反编译和回编译 APK
22+
- 下载地址:[https://github.com/iBotPeaches/Apktool](https://github.com/iBotPeaches/Apktool)
23+
- 确保配置到环境变量
24+
4. **Android SDK build-tools**:提供 `zipalign``apksigner` 工具
25+
- 确保配置到环境变量
26+
27+
### 安装步骤
28+
29+
1. 克隆或下载本项目到本地
30+
2. 安装上述依赖工具并配置环境变量
31+
3. 准备好待修改的原始 APK 文件,命名为 `template.apk` 并放在项目根目录
32+
33+
## 使用方法
34+
35+
### 1. 配置修改参数
36+
37+
在项目根目录创建 `config.json` 文件,格式如下:
38+
39+
```json
40+
[
41+
["com.example.newpackage", "New App Name", 9999, "9999.0.0"],
42+
["com.another.package", "Another App", 8888, "8888.0.0"]
43+
]
44+
```
45+
46+
- 每个配置项包含四个元素:
47+
1. 新包名(`new_package_name`
48+
2. 新应用名称(`new_app_name`
49+
3. 新版本 Code(`new_version_code`
50+
4. 新版本 Name(`new_version_name`
51+
52+
### 2. 运行脚本
53+
54+
在项目根目录执行以下命令:
55+
56+
```bash
57+
# Windows
58+
python main.py
59+
60+
# Linux/macOS
61+
python3 main.py
62+
```
63+
64+
### 3. 查看结果
65+
66+
修改后的 APK 文件会生成在 `output` 目录中,文件名以新包名命名。
67+
68+
## 工作原理
69+
70+
1. **依赖检查**:检查 `apktool``keytool``jarsigner``zipalign` 等工具是否安装
71+
2. **生成签名**:生成与 Android Studio 一致的 Debug 签名文件
72+
3. **反编译 APK**:使用 apktool 反编译原始 APK
73+
4. **修改配置**
74+
- 修改 `AndroidManifest.xml` 中的包名、版本号
75+
- 修改应用名称(优先修改 `strings.xml`,其次修改 `Manifest`
76+
- 替换 Smali 代码中的包名引用
77+
- 重命名 Smali 目录结构
78+
5. **回编译 APK**:使用 apktool 回编译修改后的代码
79+
6. **优化与签名**
80+
- 使用 `zipalign` 优化 APK
81+
- 使用 `apksigner``jarsigner` 进行签名
82+
7. **清理临时文件**:删除临时生成的文件和目录
83+
84+
## GitHub Action 集成
85+
86+
本项目已集成 GitHub Action,支持自动构建:
87+
88+
1. 将代码推送到 GitHub 仓库的 `main` 分支
89+
2. GitHub Action 会自动:
90+
- 安装所需依赖
91+
- 运行修改脚本
92+
- 上传生成的 APK 作为构建产物
93+
3. 在 GitHub Actions 页面的 "Artifacts" 部分下载生成的 APK
94+
95+
## 注意事项
96+
97+
1. **原始 APK**:请确保 `template.apk` 文件存在且未被加密或加固
98+
2. **依赖配置**:确保所有依赖工具已正确安装并配置到环境变量
99+
3. **签名冲突**:由于使用 Debug 签名,修改后的 APK 可以直接覆盖安装使用相同签名的应用
100+
4. **兼容性**:部分 APK 可能由于混淆或特殊结构导致修改失败
101+
5. **法律合规**:请确保修改和使用 APK 符合相关法律法规
102+
103+
## 许可证
104+
105+
本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。
106+
107+
## 贡献
108+
109+
欢迎提交 Issue 和 Pull Request 来改进本项目。
110+
111+
## 联系方式
112+
113+
如有问题或建议,请通过 GitHub Issues 与我们联系。

0 commit comments

Comments
 (0)