本文目標
使用360加固保來加固項目
步驟
一.下載360加固保
需要自己創(chuàng)建賬號,本文用Mac為例,點擊Mac下載
二.復(fù)制文件到項目中
把jiagu文件夾整體復(fù)制到項目根目錄中,我這里改了個名字為360jiagu
三.創(chuàng)建360protect.gradle文件到項目跟目錄中
/**
* -login <username> 首次使用必須先登錄 <360用戶名>
* <password> <登錄密碼>
* -importsign <keystore_path> 導(dǎo)入簽名信息 <密鑰路徑>
* <keystore_password> <密鑰密碼>
* <alias> <別名>
* <alias_password> <別名密碼>
* -importmulpkg <mulpkg_filepath> 導(dǎo)入多渠道配置信息,txt格式
* -showsign 查看已配置的簽名信息
* -showmulpkg 查看已配置的多渠道信息
* -deletemulpkg 清除已配置的多渠道信息
* -help 顯示幫助信息
* -config 配置加固可選項
* ----------------------可選增強服務(wù)-------------------------------
* [-crashlog] 【崩潰日志分析】
* [-x86] 【x86支持】
* [-analyse] 【加固數(shù)據(jù)分析】
* [-nocert] 【跳過簽名校驗】
* [-piracy] 【盜版監(jiān)測】
* ----------------------高級加固選項-------------------------------
* [-vmp] 【全VMP保護】
* [-data] 【本地數(shù)據(jù)文件保護】
* [-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相關(guān)的配置
app = [
//默認release apk的文件路徑,因為加固是基于release包的
releasePath: "${project.buildDir}/outputs/apk/release",
//對release apk 加固后產(chǎn)生的加固apk地址
packersPath: "${project.buildDir}/outputs/packers",
]
// 360加固配置
packers = [account : '***********', //賬號,替換成自己的賬號
password: '******', //密碼,替換成自己的密碼
jarPath : "../360jiagu/jiagu.jar", //執(zhí)行命令的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 {
// 導(dǎo)入簽名信息
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 {
// 初始化加固服務(wù)配置
executable = 'java'
args = ['-jar', packers["jarPath"], '-config']
}
exec {
// 執(zhí)行加固,然后自動簽名,若不采取自動簽名桨武,需要自己通過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文件中應(yīng)用
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