手游加固cocos接入指南
cocos 方案简介
cocos引擎保护方案默认保护引擎so,按照需求可以额外处理cocos 资源文件,例如 jsc、png、jpg等等。
下载地址
使用说明
该加固工具为jar包文件,适用于Windows、Linux以及Mac系统,以下均以Windows环境下描述,其他系统环境使用方法类似。
- 使用方式:命令行模式(注意,第一次使用需要配置config.ini文件)
- 命令行模式参数:
java -jar NHPProtect.jar -yunconfig -zipalign -apksign -input xxx.apk/xxx.aab
- 参数说明如下:
参数 | 说明 |
---|---|
-yunconfig | 必填项,表示自动从易盾后台获取加固参数 |
-apksign | 对加固后的 APK 包签名 |
-zipalign | 对加固后的 APK 包对齐 |
-dex | 对包体进行dex加密,使用dex加密后如果您的应用需要上架Google play市场,请确保Google play自动完整性保护选项是关闭的(默认是关闭的),避免与APP加固的功能冲突。具体操作如下:在自动完整性保护页面(版本 > 设置 > 应用完整性 > 自动完整性保护)中关闭保护功能。 |
-input | 必填项,参数后面跟待加固的APK文件路径 |
config.ini文件配置说明
默认config.ini必须要跟NHPProtect.jar在同一目录下,如果需要指定config文件,可以执行-config 命令参数来处理:
java -jar NHPProtect.jar -yunconfig -config E:\Desktop\test\config.ini -apksign -zipalign -input %inputapk%
cocos 资源加密(可选)
cocos引擎资源加密,需要在dun.163.com登录后勾选资源加密参数,config 内增加以下配置指定资源文件类型后缀:
[cocosAsset]
a1=.png
a2=.jsc
a3=
热更资源加密
Java -jar %path%\NHPProtect.jar -SingleCocosEn E:\NHPtest\raw.zip
config的功能主要有以下三点:
设置appkey
用户需要将appkey填写在该配置文件中,格式如下所示。若无appkey,请联系客服。
[appkey]
key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
配置签名相关信息
若需要进行自动签名操作,除了在命令行中加入"-apksign"参数外,还需要在config.ini文件中设置签名相关信息,格式和含义如下所示。
[apksign]
keystore=D:\xxx\xx.keystore
alias=xxx
pswd=xxx
aliaspswd=xxx
signver=v1+v2
keystore: 存储签名信息的文件,使用绝对路径表示
alias: 签名别名
pswd: 对应签名信息的密码
aliaspswd: 对应签名别名的密码
signmod | 说明 |
---|---|
0 | 表示同时使用v1 v2和v3签名 |
1 | 表示只使用v1签名 |
2 | 表示只使用v2签名 |
若signmod输入为其他字符,则默认值为0,同时使用v1 v2和v3签名
若config.ini里不包含signmod,则默认为1,只进行v1签名。
(注:只使用v2签名,仅支持Android 7.0以上系统,请谨慎使用)
以上5个信息,任意一项有误的话,签名均会失败。
为了兼容更多的签名版本需求,新增配置signver。优先级:signver>signmod。 signmod逻辑未做修改,现有逻辑不受影响,需要自由配置签名版本时可在config文件加上signver信息。
[apksign]
keystore=
alias=
pswd=
aliaspswd=
signmod=0
signver=v1+v2+v3
Google play上架问题
需要对加固后的 aab 包进行签名,可以增加参数 -aabUseApksig
示例:java -jar NHPProtect.jar -yunconfig -zipalign -apksign -aabUseApksig -input xxx.aab
注意事项
- 注意,appkey为私密信息,请勿泄露!若appkey错误,会返回错误信息:
[I] check appkey failed!
解决方法:若已有appkey,检查在config.ini中是否输入有误;若无appkey,请至官网申请。
- 若加固失败,会返回提示信息:
[I] apk protect failed!For more details,please check log file
其中,日志文件位于jar包客户端同一目录下的Log目录内,可根据日志文件来获取出错原因。
解决方法:重新执行jar包客户端或至官网联系售后客服。
- 若加固成功但由于其他原因(如中途网络断开等)导致下载加固后的APK失败:将会尝试3次重复下载,若3次后仍旧失败,会将具体的错误信息输出到log文件中。
解决方法:根据错误信息检测网络等问题,重新加固。