通用版加固工具

2024.03.13 16:58:12

    jar包形式的命令行加固工具,适用于多种平台,包括Win/Mac/Linux,支持apk、aab格式,适合自动打包。以下均以Windows环境下描述,其他系统环境使用方法类似。

    下载地址

    点击下载

    使用说明

    • 使用方式:命令行模式(注意,第一次使用需要配置config.ini文件。应用加固只需要配置appkey及签名信息即可)
    • 命令行模式参数:
        java -jar NHPProtect.jar -yunconfig -fullapk -apksign -zipalign -input  %inputapk%
    
    • 参数说明如下:
    参数 说明
    -yunconfig 必填项,表示自动从易盾后台获取加固参数
    -input 必填项,参数后面跟待加固的APK文件路径
    -apksign 对加固后的 APK 包签名(不加该参数,则不对加固包体进行签名)
    -zipalign 对加固后的 APK 包对齐(不加该参数,则不对加固包体进行对齐)

    config.ini文件配置说明

    默认config.ini必须要跟NHPProtect.jar在同一目录下,如果需要指定config文件,可以执行-config 命令参数来处理:

        java -jar NHPProtect.jar -yunconfig -config E:\Desktop\test\config.ini  -fullapk -apksign -zipalign -input  %inputapk%
    

    config的功能主要有以下三点:

    设置appkey

    用户需要将appkey填写在该配置文件中,格式如下所示。Appkey请在服务管理中查询(若无appkey,请联系客服)。

        [appkey]
        key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

    设置需要处理的so

    config.ini 写入 so 文件名称(建议仅加固自研 so,第三方 so 请不要加固), 例如 apk 有两个 so,分别为 libtest1.solibtest2.soconfig.ini 的配置如下:

        [so]
        so1=libtest1.so
        so2=libtest2.so
    

    配置签名相关信息

    若需要进行自动签名操作,除了在命令行中加入”-apksign”参数外,还需要在config.ini文件中设置签名相关信息,格式和含义如下所示。

        [apksign]
        keystore=D:\xxx\xx.keystore
        alias=xxx
        pswd=xxx
        aliaspswd=xxx
        signmod=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个信息,任意一项有误的话,签名均会失败。

    需要自由配置签名版本时可在config文件加上signver信息,优先级signver>signmod。

    打渠道包

    在 config.ini 写入渠道配置文件路径(相对路径或绝对路径皆可)。配置如下:

        [Channel]
        path=E:\Desktop\Channel.txt
    

    渠道配置文件示例:

    360|CHANNEL|奇虎

    baidu|CHANNEL_BAIDU

    Google

    说明:每一行代表一个渠道信息,每个渠道信息的内容用“|”隔开。其中:

    • 第一项:渠道编号(value),必填。对应标签的 value 字段。

    • 第二项:渠道名称(name),可选。不填,则默认为 CHANNEL。对应<meta·data>标签的 name 字段。

    • 第三项:市场名称,用于标识输出 app,可选。不填,则默认为渠道编号(value)。

    只是签名,不做加固,不打渠道包
    java -jar NHPProtect.jar -sign -zipalign  -input %inputapk%	
    	
    加固并且打渠道包,进行签名对齐
    java -jar NHPProtect.jar -yunconfig -fullapk -channel -apksign -zipalign -input  %inputapk%
    	
    不加固,单独打渠道包,并且进行签名对齐
    java -jar NHPProtect.jar -sign -zipalign  -channel -input %inputapk%
    

    Google play上架问题

    如果使用-apksign 签名aab文件(用jarsigner签的)无法上架应用商店,可以使用 本参数 -aabUseApksig , 使用 apksigner对aab进行签名。

    示例:java -jar NHPProtect.jar -yunconfig -fullapk -zipalign -apksign -aabUseApksig -input xxx.aab

    ps.当前谷歌官网上提示不可使用apksiner签名aab,实际上可行。 所以不推荐优先使用 aabUseApksig。


    Online Chat Tel:95163223 Free trial