Android 自动化流程开发之 JiaGu360 插件

3,232 阅读6分钟

前言

现在写个APP不加固,太危险了,特别对于商业APP。反编译你的代码,窥探你的商业机密,更有甚者插入广告,修改你的代码 ,你辛辛苦苦写的APP,就成别人的了。各大应用市场也对应用安全越来越重视了,你想上应用市场(应用宝,360,等市场),已经不好上传了,需要上传应用软著,APP加固。APP加固无形中又加大了工作量,好在有大厂帮我们加固。

360加固保

360加固保官网

360加固保是为移动应用安全提供专业保护的平台,盗版APP通常是将正版APP进行破解、篡改后重新打包生成的应用。如果手机APP能够具备防反编译、防反破解能力,就可以有效的防止APP被盗版。

360加固保专为开发者的应用提供免费安全加固服务,独创了多重防护方式,对应用程序深度加密处理;独有的程序文字信息加密功能,能有效防止应用被反编译和恶意篡改,保护应用不被二次打包,保护数据信息不会被黑客窃取。开发者无需任何开发成本,一键上传,即可在5分钟内完成应用加固,从而彻底防止应用在上线后被反编译、调试、破解、二次打包和内存截取等多种威胁。给予官方应用最强保护,从源头消灭恶意盗版应用,保护开发者收入。

360加固保在为APP提供加固服务的同时,还为开发者提供APP数据分析、崩溃日志分析、盗版监测和漏洞扫描等服务,全方位帮助开发者了解数据健康与运行状况。截止2015年第二季度,已使用360加固保的应用达30万,应用所覆盖的用户超过10亿,360加固保已经成为国内最大的移动应用保护平台。

Quick Start

为了方便大家的使用,360加固保提供了2种使用方式:

IDE操作

使用360加固保官网为我们提供的加固保软件,一看就会,傻瓜式操作。

360加固保下载

360加固保软件

使用命令行

命令行操作是比较隐藏的,360加固保官网也没有做作任何说明,推荐使用软件界面操作

下载 “360加固保”软件

360加固保下载

360加固保软件

解压

下载下来的“360加固保”软件是一个zip包,解压后的目录:

360加固保软件目录

加固jar

提供加固功能的jar包

360加固jar

渠道模板

生成生各种渠道的apk模板文件

360加固渠道模板

jar命令

360加固渠道模板

JiaGu360

360提供的两种方式都不太适合自动化流程开发,IDE操作,需要人工来,命令行操作繁琐。JiaGu360 根据360加固命令实现app快捷加固的插件,解放双手,实现自动化流程。

Gradle插件使用方式

配置build.gradle

在位于项目的根目录 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配置名称(首页字母大小)}

item配置名称

如上面的配置,生成签名包需要执行如下命令:

./gradlew jiagu360Release

360加固升级命令:

./gradlew jiagu360Update

源码

github.com/903600017/J…