如今写个APP不加固,太危险了,特别对于商业APP。反编译你的代码,窥探你的商业机密,更有甚者插入广告,修改你的代码 ,你辛辛苦苦写的APP,就成别人的了。各大应用市场也对应用安全愈来愈重视了,你想上应用市场(应用宝,360,等市场),已经很差上传了,须要上传应用软著,APP加固。APP加固无形中又加大了工做量,好在有大厂帮咱们加固。android
360加固保官网git
360加固保是为移动应用安全提供专业保护的平台,盗版APP一般是将正版APP进行破解、篡改后从新打包生成的应用。若是手机APP可以具有防反编译、防反破解能力,就能够有效的防止APP被盗版。github
360加固保专为开发者的应用提供免费安全加固服务,首创了多重防御方式,对应用程序深度加密处理;独有的程序文字信息加密功能,能有效防止应用被反编译和恶意篡改,保护应用不被二次打包,保护数据信息不会被黑客窃取。开发者无需任何开发成本,一键上传,便可在5分钟内完成应用加固,从而完全防止应用在上线后被反编译、调试、破解、二次打包和内存截取等多种威胁。给予官方应用最强保护,从源头消灭恶意盗版应用,保护开发者收入。windows
360加固保在为APP提供加固服务的同时,还为开发者提供APP数据分析、崩溃日志分析、盗版监测和漏洞扫描等服务,全方位帮助开发者了解数据健康与运行情况。截止2015年第二季度,已使用360加固保的应用达30万,应用所覆盖的用户超过10亿,360加固保已经成为国内最大的移动应用保护平台。安全
为了方便你们的使用,360加固保提供了2种使用方式:app
使用360加固保官网为咱们提供的加固保软件,一看就会,傻瓜式操做。gradle
360加固保下载优化
命令行操做是比较隐藏的,360加固保官网也没有作做任何说明,推荐使用软件界面操做ui
360加固保下载加密
下载下来的“360加固保”软件是一个zip包,解压后的目录:
提供加固功能的jar包
生成生各类渠道的apk模板文件
360提供的两种方式都不太适合自动化流程开发,IDE操做,须要人工来,命令行操做繁琐。JiaGu360 根据360加固命令实现app快捷加固的插件,解放双手,实现自动化流程。
在位于项目的根目录 build.gradle
文件中添加 ApkSign插件的依赖, 以下:
buildscript {
dependencies {
classpath 'com.zf.plugins:JiaGu360:1.0.1'
}
}
复制代码
并在当前App的 build.gradle
文件中apply这个插件
apply plugin: 'jiagu360'
复制代码
jiaGu360Config {
//必填,360用户名
userName "XXXXXX"
//必填, 360密码
passWord "XXXXXX"
//必填,360加固jiagu.jar包位置
jiaGuJarPath new File("D:\\XXXXX\\360jiagubao_windows_64\\jiagu\\jiagu.jar").absolutePath
items {
debug {
//必填, 须要签名的APK 路径
inputApkFilePath file("build/outputs/apk/tap_unsign.apk").absolutePath
}
// ...... 能够添加更多选项
}
}
复制代码
jiaGu360Config {
//必填, 360用户名
userName "XXXXXX"
//必填, 360密码
passWord "XXXXXX"
//必填, 360加固jar包位置
jiaGuJarPath new File("D:\\XXXXX\\360jiagubao_windows_64\\jiagu\\jiagu.jar").absolutePath
//加固配置项服务是否都支持
isSupportAll false
//统一配置 优先低于自定义配置--------------------------start----------------------------------------------------------------------
//android 签名配置名称,默认android默认的'debug'签名配置,signingName="debug"
signingName 'debug'
//加固apk的输出目录
outputApkDirPath new File("D:\\XXXXX\\360jiagubao_windows_64\\jiagu\\XXXX").absolutePath
//加固完成后是否打开输出目录。默认false
openOutputDir false
// 加固配置项服务-------------------------------start-------------------------------------
// 可选加强服务--------------start----------------------
isSupportCrashLong false //【崩溃日志分析】
isSupportX86 false //【x86支持】
isSupportAnalyse false//【加固数据分析】
isNocert false//【跳过签名校验】
// 可选加强服务--------------end----------------------
//高级加固选项-------------start------------------
isSupportVmp false//【全VMP保护】
isSupportDataProtection false//【本地数据文件保护】
isSupportAssetsProtection false// 【资源文件保护】
isSupportFileCheck false//【文件完整性校验】
isSupportPtrace false//【Ptrace防注入】
isSupportSoProtection false//【SO文件保护】
isSupportDex2cProtection false//【dex2C保护】
isSupportStringObfusProtection false//【字符串加密】
isSupportDexShadowProtection false//【DexShadow】
isSupportSoPrivateProtection false//【SO防盗用】
//高级加固选项-------------end------------------
// 加固配置项服务--------------------------------end---------------------------------------------
//自动签名
autosign false
//自定义文件生成多渠道,能够根据前面下载的360加固软件里的 “多渠道模板.txt” 编写
mulpkgFilePath =new File("D:\\XXXXX\\360jiagubao_windows_64\\jiagu\\多渠道模板.txt")
//签名配置项
signingInfo {
storeFilePath "E:\\Document\\XXXXXX.jks"
storePassword "XXXXXX"
keyAlias "XXXXXX"
keyPassword "XXXXXX"
}
//统一配置 --------------------------end----------------------------------------------------------------------
items {
release {
//必填, 须要加固的APK 路径
inputApkFilePath file("build/outputs/apk/XXXX.apk").absolutePath
//自定义配置-----------------------------start-----------------------------------------------------------------------
//android 签名配置名称,默认android默认的'debug'签名配置,signingName="debug"
signingName 'debug'
//加固apk的输出目录
outputApkDirPath new File("D:\\XXXXX\\360jiagubao_windows_64\\jiagu\\XXXX").absolutePath
//加固完成后是否打开输出目录。默认false
openOutputDir false
// 加固配置项服务-------------------------------start-------------------------------------
// 可选加强服务--------------start----------------------
isSupportCrashLong false //【崩溃日志分析】
isSupportX86 false //【x86支持】
isSupportAnalyse false//【加固数据分析】
isNocert false//【跳过签名校验】
// 可选加强服务--------------end----------------------
//高级加固选项-------------start------------------
isSupportVmp false//【全VMP保护】
isSupportDataProtection false//【本地数据文件保护】
isSupportAssetsProtection false// 【资源文件保护】
isSupportFileCheck false//【文件完整性校验】
isSupportPtrace false//【Ptrace防注入】
isSupportSoProtection false//【SO文件保护】
isSupportDex2cProtection false//【dex2C保护】
isSupportStringObfusProtection false//【字符串加密】
isSupportDexShadowProtection false//【DexShadow】
isSupportSoPrivateProtection false//【SO防盗用】
//高级加固选项-------------end------------------
// 加固配置项服务--------------------------------end---------------------------------------------
//自动签名
autosign false
//自定义文件生成多渠道,能够根据前面下载的360加固软件里的 “多渠道模板.txt” 编写
mulpkgFilePath =new File("D:\\XXXXX\\360jiagubao_windows_64\\jiagu\\多渠道模板.txt")
//签名配置项
signingInfo {
storeFilePath "E:\\Document\\XXXXXX.jks"
storePassword "XXXXXX"
keyAlias "XXXXXX"
keyPassword "XXXXXX"
}
//自定义配置-----------------------------end-----------------------------------------------------------------------
}
debug {
//须要加固的APK 路径
inputApkFilePath file("build/outputs/apk/XXXX.apk").absolutePath
}
// ...... 能够添加更多选项
}
}
复制代码
配置项具体解释:
当 “统一配置” ,“自定义配置” 设置的参数都存在时, 自定义配置 > 统一配置 , 这是总的原则
当isSupportAll=true
时 ,统一配置里的可配置服务所有都支持
signingInfo
,signingName
都配置时,优化级为 signingInfo
> signingName
;当两个配置项都不配置时,默认使用 android项目里的默认debug签名。
signingName='release'
签名信息配置的名称,
生成apk加固包:
./gradlew jiagu360${item配置名称(首页字母大小)}
如上面的配置,生成签名包须要执行以下命令:
./gradlew jiagu360Release
360加固升级命令:
./gradlew jiagu360Update