全面指南:Android 马甲包开发全流程
一、环境与工具准备
- 安装 JDK、Android SDK 并配置环境变量。
- 下载
apktool
、aapt2
、zipalign
、jarsigner
。 - 准备签名用的
.keystore
文件及密码。
二、反编译原始 APK
apktool d original.apk -o original_decompiled
解出 AndroidManifest.xml
、资源文件以及 smali
目录,方便后续修改。
三、修改包名与资源
- 在
AndroidManifest.xml
中替换package="com.example.app"
为新包名。 - 替换
res/mipmap-*
下的 App 图标和启动图。 - 在
assets/
或res/values/
注入渠道标识(如:google
、360
)。
四、重编译与签名
apktool b original_decompiled -o unsigned.apk zipalign -v -p 4 unsigned.apk aligned.apk jarsigner -verbose -keystore mykeystore.keystore \ -storepass 密码 -keypass 密钥别名 aligned.apk 别名
五、自动化脚本示例(Shell)
#!/bin/bash CHANNELS=(google huawei xiaomi) for CH in "${CHANNELS[@]}"; do apktool d app.apk -o build/$CH # 替换资源 & manifest cp -r res/icon_$CH/* build/$CH/res/mipmap-* sed -i "s/com.example.app/com.example.app.$CH/g" build/$CH/AndroidManifest.xml apktool b build/$CH -o out/$CH-unsigned.apk zipalign -p 4 out/$CH-unsigned.apk out/$CH-aligned.apk jarsigner -keystore release.keystore -storepass 密码 \ out/$CH-aligned.apk release_alias done
执行后即可在 out/
目录下生成多渠道签名包。
六、最佳实践
- 保持渠道配置与版本号同步,避免覆盖安装失败。
- 严格管理签名证书与密码权限,防止泄露。
- 使用 CI/CD 服务自动化上述脚本,提高稳定性与可追溯性。