本文目标
使用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