Android studio gradle实现360加固保自动化打包

随着目前行业竞争越来越激烈,apk加固防逆向应该是标配,而360加固保应该是这方面比较成熟可靠的加固工具了,一次性完成了签名混淆加固分渠道等等功能,虽然360加固保的客户端操作起来也是十分方便,但是作为程序员应该追求自动化解放生产力的原则嘛,幸好360加固保官方提供了命令行加固模式,然后让它和Gradle脚本进行结合就完美了,下面就开始集成

实现方案

360加固保必须加固一个已经签名的apk,我们可以在执行 assembleRelease 之后马上启动一个加固任务就可以了

具体步骤

下载并安装360加固保

project bulid.gradle 中声名我们需要的一些常量,签名文件位置以及密码别名,和安装的路劲位置等等

```
ext{jiaGuPluginPath = 'G:\\program\\360jiagubao_windows_64\\jiagu' //  加固保安装的路劲storeFile = file('../xxx/xx.keystore')                                                  // 签名文件位置storePassword = 'xxxx'                                                                  //  密码 keyAlias = 'xx'                                                                               // 别名keyPassword = 'xxxx'                                                                    //  密码jiaGuUserName = 'xxxx'                                                              //  360加固保用户名jiaGuPwd = 'xxxx'                                                                       //  360加固保登录密码
}```

app bulid.gradle 执行cmd 命令的方法

```
def execute360JiaGuCmd(cmd){
def p = cmd.execute(null, new File("$rootProject.jiaGuPluginPath"))
println p.text
p.waitFor()  // 用以等待外部进程调用结束
println p.exitValue()
}
```

app bulid.gradle 加入加固任务Task

   android{......task reinforceAppTask(dependsOn: 'assembleRelease') {group "jiaGuApk"doLast {println "360加固 begin"def currFile = new File(".")// 生成的apk的路劲def appFilePath = currFile.getCanonicalPath() +File.separator + "build" + File.separator + "outputs"+ File.separator + "apk" + File.separator +"xxxxx.apk";  println "appFilePath=" + appFilePathif(!new File(appFilePath).exists()){println "apk not exist"return}def cmdBase = 'java -jar jiagu.jar'def cmdLogin = cmdBase + " -login  ${rootProject.jiaGuUserName}   ${rootProject.jiaGuPwd}"def cmdImportSign = cmdBase + ' -importsign ' +rootProject.storeFile.getCanonicalPath() + ' ' + rootProject.storePassword + ' ' + rootProject.keyAlias + ' ' + rootProject.keyPassworddef cmdShowSign = cmdBase + ' -showsign'def cmdConfig = cmdBase + ' -config -x86'def cmdShowConfig = cmdBase + ' -showconfig'def cmdVersion = cmdBase + ' -version'def outPath = new File('..')def cmdJiaGu = cmdBase + ' -jiagu ' + appFilePath + ' ' + outPath.getCanonicalPath() + ' -autosign' +' -automulpkg'execute360JiaGuCmd(cmdLogin)execute360JiaGuCmd(cmdImportSign)execute360JiaGuCmd(cmdJiaGu)println "360加固 end"}}tasks.whenTaskAdded { theTask ->if (theTask.name == "assembleRelease") {theTask.dependsOn "cleanOutputsDir"}}task cleanOutputsDir {def outputsPath = getBuildDir().getAbsolutePath() + File.separator + "outputs" + File.separatorprintln "delete outputsPath=" + outputsPathnew File(outputsPath).deleteDir()}}

同步完成之后 工程效果图

点击打包任务完成之后apk 就会出现在工程的根目录中

Android studio gradle实现360加固保自动化打包相关推荐

  1. 在Android Studio中实现360加固自动化,进一步提升生产力!

    1.概述 Android Studio目前已经成为Android APP开发的首选IDE,其使用Gradle作为构建系统,Gradle使用groovy语言作为DSL可以扩展出随心所欲的功能,让APK构 ...

  2. 使用360加固保后获取不到友盟多渠道信息

    使用360加固保后获取不到友盟多渠道信息 今天在使用360加固保进行多渠道打包时遇到一个很有趣的问题,就是打完包后怎么也获取不到渠道信息(统计用的友盟),但是使用Studio gradle多渠道打包就 ...

  3. Android Studio Gradle实践之多渠道自动化打包+版本号管理

    转: Android Studio Gradle实践之多渠道自动化打包+版本号管理 上次介绍了Android Studio的安装.配置和基本使用.这次讲一下Android Studio用到的打包工具G ...

  4. android 360加固远离,安卓党小心账户被克隆!360加固保为开发者提供修复建议

    来源: 互联网 2018-01-10/19:22 近期国内多款安卓版知名手机APP被曝光存在"应用克隆"漏洞.攻击者利用该漏洞,可以轻松"克隆"用户账户,窃取隐 ...

  5. android 360加固保

    android 360加固 360加固保是什么 转自:http://www.veryhuo.com/a/view/92865.html 360加固保是为移动应用安全提供专业保护的平台,盗版App通常是 ...

  6. Android应用加固(使用360加固保)

    Android应用加固(使用360加固保) 前言 使用360加固保进行应用加固 加固结果验证 前言 使用常见的反编译工具能够轻松地进行应用破解,然后对应用进行二次开发,甚至植入病毒.为了保护应用的安全 ...

  7. android应用加固后闪退,360加固保加固后打开app即闪退

    首次使用360加固,完全按照说明操作. 用签名后的apk进行加固,加固选项选择了应用盗版检测和支持x86架构.加固后下载到本地,使用了360提供的签名工具进行签名.签名后安装到手机里,一运行就闪退. ...

  8. 签名文件及使用360加固保生成渠道包

    一.签到文件的生成 1.进入Android studio 上方的build,选择Generate Singned Bundle/APK,是生成和打apk包的入口 2.选择APK-->next-- ...

  9. android插件开发,使用360加固自动多渠道打包

    android插件开发,使用360加固自动多渠道打包 最近研究了一下安卓插件的开发,就以开发一个360加固自动打包插件为例,练了一下,本次使用android studio基于kotlin构建自动打包插 ...

最新文章

  1. mysql遇到your password does not satisfy the current policy requirements
  2. boost::mp11::mp_any_of_q相关用法的测试程序
  3. 点运算符(.)和中括号运算符([])有哪些区别
  4. apache camel_Apache Camel的性能调整思路
  5. 22岁大学生获谷歌天价offer,击败6000人年薪百万
  6. shell生成随机数+判断路径存不存在+判断文件夹有无内容
  7. git 本地项目上传
  8. java中的多态性_[转载] c++多态与java多态性_Java中的多态性
  9. Zabbix SNMP配置(学习笔记十九)
  10. python语言的两种注释方法_python中编写注释的方法
  11. 无机金属专业里有计算机课吗,无机非金属材料工程专业课程有不少
  12. openvas漏洞扫描器
  13. 【阿帕奇服务器文件修改后页面不发生变化问题解决】
  14. STM32的函数ssert_param(IS_GPIO_ALL_PERIPH(GPIOx));
  15. 【Unity】在Inspector上显示自定义的位掩码枚举(Flags)
  16. macbook黑屏_Mac Book电脑黑屏开不了机三种解决方法
  17. DrawerLayoutMenu使用详解
  18. ctf:kali2:端口扫描:nmap和portscan
  19. 标准立方米的单位换算
  20. QQ登录php无限制,PHP实现QQ登录实例代码

热门文章

  1. sugon服务器进装系统,曙光服务器怎么做centos6.5系统步骤
  2. 北京交大计算机类铁路信息,北京交通大学,优质211,交通运输、信息类专业值得报考...
  3. 球坐标系和直角坐标系转换
  4. 一名数据分析师的Python学习历程
  5. TypeError: super(type, obj): obj must be an instance or subtype of type这个问题怎么处理?
  6. 30位烈士葬身火海,请记住英雄的名字!
  7. 苹果手机之间怎么传照片_相机与手机之间传送RAW格式照片问题!
  8. 【力学性能预测】材料力学性能预测数据集介绍
  9. HDU - 1164 - Eddy‘s research I
  10. 2021年茶艺师(初级)免费试题及茶艺师(初级)复审考试