Safe 示例教程
Safe 示例教程
1. 准备工作
本教程将以 Unity 示例应用 BoatAttack 为例,来展示 UOS Safe 的操作步骤。您不需要事先准备 Unity Editor 和任何项目,完成教程只需要下载以下内容
BoatAttack URL: https://multiverse-pub.unity.cn/BoatAttack.apk
2. 上传应用包
请确保您已经 创建 UOS APP 并开启 Safe 服务,进入 「Safe -> 应用列表」 页面。
根据页面上的提示,打开上传页面将 BoatAttack.apk 进行上传。
在后续步骤中您可以先配置自己的 SHA-1,再对包体进行加固。如果不配置SHA-1签名,创建加固任务时,您可以授权 UOS Safe 将使用UOS提供的官方SHA-1进行加固,并对加固后的apk使用该SHA-1进行签名。
如果未配置SHA-1的话,您需要授权 UOS Safe 将使用UOS提供的官方SHA-1对该包体创建加固任务。
当您采用官方SHA-1进行加固时,您可以在加固任务完成之后下载带签名的包体。
您需要准备好用于 apk 签名的证书。开发者们可以通过 Java Development Kit (JDK) 的 keytool 工具来管理自己证书的SHA-1。没有签名证书的开发者可以通过以下指令生成用于 apk 签名的证书,生成的签名证书可以是.jks文件,也可以是.keystore文件:
keytool -genkeypair -alias <alias名称> -keyalg RSA -keysize 2048 -validity 365 -keystore <签名文件>在已有签名证书的情况下,可以通过以下指令查看证书的 SHA-1 摘要:
keytool -list -v -keystore <签名文件>
在创建加固任务前,先在签名配置中编辑并保存您的SHA-1。
在完成 apk 的上传之后,就可以对该包体创建加固任务了。
如果您在创建加固任务前上传了自己的SHA-1,那么等待创建任务完成,就可以下载加固后的未签名包体。
下载加固完的apk后,需要对apk做一下对齐。
使用 zipalign 工具( Android SDK 中的一个工具),执行以下命令查看生成的apk包体是否对齐(Android11 后,不进行4字节对齐会导致安装失败)
zipalign -c -v 4 <待检查apk路径>如果apk已经对齐了,会看到类似下面的信息
Verifying alignment of your-app.apk (4)
some_file.png (OK - compressed)
...
some_other_file.xml (OK - compressed)
Verification successful如果apk未对齐,需要使用zipalign执行下面的命令对apk包体进行对齐
zipalign -p -f -v 4 <未对其的apk> <对齐后的apk>如果您在创建加固任务前上传了自己的SHA-1,您需要在apk包体对齐后,并对其进行签名。下面使用 apksigner 进行签名:
// 如果使用的是keystore签名密钥则执行
java -jar apksigner.jar sign --ks <keystore签名文件> --ks-key-alias <签名对应的alias> <待签名apk路径>
// 如果使用的是jks签名密钥,则执行
.\apksigner sign --ks <jks签名文件> --ks-key-alias <签名对应的alias> --out <签名后apk路径> <待签名apk路径>注意事项:
- 使用.keystore签名文件对apk进行签名,该方式会默认将签名后的apk直接覆盖原文件。
- 使用.jks签名文件对apk进行签名,会生成一个新的签名的apk。