APK 加固功能介绍
功能概述
TapTap APK 加固通过文件加密等手段,为开发者提供 APK 安全防护,降低被破解的风险。
- 功能入口:开发者中心 — 选择游戏 — 游戏服务 — APK 加固
功能特点
功能名称 | 描述 |
---|---|
SO 加密保护 | 对 SO 文件进行代码、函数、导出表加密混淆,防止 HOOK 攻击,有效提高脱壳难度。 |
global-metadata 加密 | 针对 IL2CPP 游戏,对 global-metadata 实现加固,提高破解门槛。 |
AAB 加固 | Android App Bundle 加固方案支持。 |
加固方案自保护 | 对加固方案源码进行了混淆,极大的提高了外挂作者对加固方案的逆向分析门槛,进一步提高了游戏的破解难度。 |
使用规则
- 适用厂商:认证开发者。
- 每个游戏每个自然月可加固 5 次,加固前请确保 APK 可正常运行,以免浪费加固次数。
- 有多渠道需求的使用方,请先加固再进行二次打包。
- 加固文件大小不超过 2G。
- 加固不支持自动签名,加固后需要重新签名。
- 每次加固,最多加固 2 个文件。
- 推荐加固游戏逻辑相关文件,如 libil2cpp.so,libue4.so,不同版本 libmono*.so 等。
- 不推荐加固引擎、第三方库相关 如:libmain.so,libunity.so 等。
为应用签名
在 Android 应用发布前,通常需要经过一系列安全处理步骤,如代码混淆、加固、签名等。加固(壳保护)是为了防止 APK 被逆向工程或篡改,其通过对 APK 进行加密和修改来提升应用的安全性。然而,加固会影响 APK 文件的原始结构,尤其是对 classes.dex 或其他文件进行加密或修改,这会使原有的签名失效。因此,加固后的 APK 文件都必须重新签名。
使用 apksigner 进行 APK 重新签名
apksigner 是 Android SDK 提供的官方签名工具,它位于 build-tools 目录下,用于为 APK 文件签名。以下是完整的签名步骤:
1. 确保已安装 Android SDK
首先,确认 Android SDK 已经正确安装,并且环境变量 ANDROID_HOME
已配置。可以通过终端命令检查:
echo $ANDROID_HOME
如果没有输出,则需要手动设置环境变量。例如:
export ANDROID_HOME=/path/to/android-sdk
2. 进入 apksigner 目录
apksigner 位于 Android SDK 的 build-tools 目录中。进入对应版本的 build-tools 文件夹:
cd $ANDROID_HOME/build-tools/30.0.3
(根据实际安装的版本号调整路径)
3. 使用 apksigner 进行签名
在确保签名密钥文件存在的情况下,使用 apksigner 对加固后的 APK 进行签名。执行以下命令:
apksigner sign --ks my-release-key.keystore --ks-key-alias my-key-alias \
--ks-pass pass:my-password --key-pass pass:my-password \
--out my-signed.apk my-unsigned.apk