Android技术栈

Android_360加固

2021-03-09  本文已影响0人  信仰年輕

本文目标

使用360加固保来加固项目

步骤

一.下载360加固保


需要自己创建账号,本文用Mac为例,点击Mac下载

二.复制文件到项目中

把jiagu文件夹整体复制到项目根目录中,我这里改了个名字为360jiagu


三.创建360protect.gradle文件到项目跟目录中

/**
 *   -login <username>                       首次使用必须先登录 <360用户名>
 *                 <password>                              <登录密码>
 *         -importsign <keystore_path>             导入签名信息 <密钥路径>
 *                 <keystore_password>                     <密钥密码>
 *                 <alias>                                 <别名>
 *                 <alias_password>                        <别名密码>
 *         -importmulpkg <mulpkg_filepath>         导入多渠道配置信息,txt格式
 *         -showsign                               查看已配置的签名信息
 *         -showmulpkg                             查看已配置的多渠道信息
 *         -deletemulpkg                   清除已配置的多渠道信息
 *         -help                                   显示帮助信息
 *         -config                                 配置加固可选项
 *         ----------------------可选增强服务-------------------------------
 *                 [-crashlog]                             【崩溃日志分析】
 *                 [-x86]                                  【x86支持】
 *                 [-analyse]                              【加固数据分析】
 *                 [-nocert]                               【跳过签名校验】
 *                 [-piracy]                               【盗版监测】
 *         ----------------------高级加固选项-------------------------------
 *                 [-vmp]                                  【全VMP保护】
 *                 [-data]                                 【本地数据文件保护】
 *                 [-assets]                               【资源文件保护】
 *                 [-filecheck]                            【文件完整性校验】
 *                 [-ptrace]                               【Ptrace防注入】
 *                 [-so]                                   【SO文件保护】
 *                 [-dex2c]                                【dex2C保护】
 *                 [-string_obfus]                         【字符串加密】
 *                 [-dex_shadow]                           【DexShadow】
 *                 [-so_private]                           【SO防盗用】
 *                 [-double_check]                         【双开检测】
 *         -----------------------------------------------------------------
 *         -config_so                      配置需要加固的SO文件,以空格分隔
 *         -config_assets                  配置需要忽略的资源文件,以空格分隔
 *         -config_so_private              配置防盗用的SO文件,以空格分隔
 *
 *         -showconfig                             显示已配置加固项
 *         -version                                显示当前版本号
 *         -update                                 升级到最新版本
 *         -jiagu <inputAPKpath>                   加固命令 <APK路径>
 *                 <outputPath>                            <输出路径>
 *                 [-autosign]                             【自动签名】
 *                 [-automulpkg]                           【自动多渠道】
 *                 [-pkgparam mulpkg_filepath]             【自定义文件生成多渠道】
 */

// 签名配置
ext {
    signing = [
            keyAlias     : 'mall',
            keyPassword  : '123456',
            storeFile    : "../as_key_store",
            storePassword: '123456'
    ]

// app相关的配置
    app = [
            //默认release apk的文件路径,因为加固是基于release包的
            releasePath: "${project.buildDir}/outputs/apk/release",
            //对release apk 加固后产生的加固apk地址
            packersPath: "${project.buildDir}/outputs/packers",
    ]

// 360加固配置
    packers = [account : '***********', //账号,替换成自己的账号
               password: '******',  //密码,替换成自己的密码
               jarPath : "../360jiagu/jiagu.jar",  //执行命令的jar包路径
    ]
}

task protect360() {
    dependsOn("assembleRelease")
    doLast {
        println 'packers===beginning 360 jiagu'
        def releaseApkDir = file(app["releasePath"])
        def releaseApk = null
        releaseApkDir.eachFile { file ->
            if (file.isFile() && file.name.endsWith(".apk")) {
                releaseApk = file
                return
            }
        }
        def packerDir = new File(app["packersPath"])
        if (!packerDir.exists()) {
            packerDir.mkdirs()
        }
        exec {
            // 登录360加固保
            executable = 'java'
            args = ['-jar', packers["jarPath"], '-login', packers["account"], packers["password"]]
        }
        exec {
            // 导入签名信息
            executable = 'java'
            args = ['-jar', packers["jarPath"], '-importsign', signing["storeFile"], signing["storePassword"], signing["keyAlias"], signing["keyPassword"]]
        }
        exec {
            // 查看360加固签名信息
            executable = 'java'
            args = ['-jar', packers["jarPath"], '-showsign']
        }
        exec {
            // 初始化加固服务配置
            executable = 'java'
            args = ['-jar', packers["jarPath"], '-config']
        }
        exec {
            // 执行加固,然后自动签名,若不采取自动签名,需要自己通过build-tools命令自己签名
            executable = 'java'
            args = ['-jar', packers["jarPath"], '-jiagu', releaseApk.absolutePath, app["packersPath"], '-autosign']
        }
        println 'packers===360 jiagu finished'
        println "packers===360 jiagu path ${app["packersPath"]}"
    }
}

在app中的build.gradle文件中应用

apply from: '../360protect.gradle'

四.使用

360加固是基于release包进行加固的的,可以在Terminal中输入

./gradlew protect360

也可以在app--->Tasks---> other--->protect360
加固成功后apk路径:

/Users/houyadong/iProject/ASProj/app/build/outputs/packers/app-release_10_jiagu_sign.apk 
上一篇 下一篇

猜你喜欢

热点阅读