当前位置: 首页 > news >正文

APK多渠道加固打包笔记之360加固宝

知识储备

首先需要知道V1,V2,V3签名的区别,可以参考之前的文章:AndroidV1,V2,V3签名原理详解

前言:一般开发者会指定使用自己创建的证书,如果没有指定,则会默认使用系统的证书,该默认的证书存储在C:\Users\admin.android\debug.keystore,不同的电脑可能安装不同路径。一个签名证书文件中,是包含一对公私钥,用私钥对apk进行签名,在安装到android手机时,系统会使用证书中对应签名私钥的公钥来验证,查看apk是否被更改过,如果没有则可以安装在手机上。任何的app store都不允许使用默认的debug.keystore打包的apk发布上去,因为debug.keystore的密码是默认的,不安全。 一,没有签名的APK无法安装 Android的APK要进行签名才能够安装到手机上,这是因为在安装的时候系统会进行检测,平时我们直接点AS里面那个绿色的运行按钮也能够直接安装到手机上,这是因为其实它也进行了签名,只不过AS自动帮我们做了这个操作有个默认的签名

企业微信截图_16546061905218.png

大致流程

  • 找到assembleRelease生成的app-release.apk
  • 在assembleRelease后面新建Task处理apk包
  • 对这个apk进行加固
  • 对这个apk进行多渠道打包
  • 对多渠道的apk重新签名
360加固宝
命令行

登录 -jar jiagu.jar –login <username><password>

导入签名

java -jar jiagu.jar -importsign <keystore_path> <keystore_password> <alias>

导入渠道列表文件 java -jar jiagu.jar -importmulpkg <mulpkg_path>

加固 多渠道打包

java -jar jiagu.jar -jiagu <inputAPKpath> <outputpath> -autosign -automulpkg

找到assembleRelease生成的app-release.apk
findReleaseApkPath = { ->def appBuildOutPut = new File("${rootProject.rootDir}/app/build/outputs/apk/release")def apkFile = nullappBuildOutPut.eachFile {if (it.name.endsWith(".apk") && it.name.contains("release")) {println(it)apkFile = it}} return apkFile
}
处理apk包
/**
* 通过调用360的命令行加固并且多渠道打包
* 参数: 
* apk -> 原有release包的文件
* outputPath -> 多渠道打包后文件输出路径
*/
reinForceApk = { File apk, File outPutPath ->println(outPutPath)if (apk == null || !apk.exists()) {println("没有找到apk文件")throw new FileNotFoundException("没有找到APK文件")}if (!outPutPath.exists()) {outPutPath.mkdirs()} //360加固和多渠道打包命令行
java -jar ${rein360ForceJarPath} -login ${account360}
${psw360}".execute().waitForProcessOutput(System.out, System.err)
"java -jar ${rein360ForceJarPath} -importmulpkg
${mulpkgPath}".execute().waitForProcessOutput(System.out, System.err)
"java -jar ${rein360ForceJarPath} –importsign ${keyStorePath} ${KEYSTORE_PASSWORD}
${KEY_ALIAS} ${KEY_PASSWORD}".execute().waitForProcessOutput(System.out, System.err)
"java -jar ${rein360ForceJarPath} -config -
analyse".execute().waitForProcessOutput(System.out, System.err)
"java -jar ${rein360ForceJarPath} -jiagu ${apk.path} ${outPutPath.path} -autosign -
automulpkg".execute().waitForProcessOutput(System.out, System.err)
}
将处理apk的task写到输出release包后的task上
task assembleReinForceRelease() {group 'multipleChannels'dependsOn('assembleRelease')doLast {def apk = findReleaseApkPath()def outputFile = new File(reinForcedOutPutPath)reinForceApk(apk, outputFile)}
}

之后使用gradle命令运行assembleReinForceRelease这个task即可,这个task依赖于assembleRelease任务,所以打release的task会先执行,执行完后获取apk的地址然后调用360的加固和多渠道打包命令行将处理后的apk输出到一个文件中,之后交由测试即可。

原文链接:APK多渠道加固打包笔记之360加固宝 - 掘金 (juejin.cn)

http://www.lryc.cn/news/275470.html

相关文章:

  • 编程天赋和努力哪个更重要?
  • SpringCloud Alibaba之Nacos配置中心配置详解
  • 个人实际开发心得感悟及学习方法
  • 光速爱购--靠谱的SpringBoot项目
  • P1019 [NOIP2000 提高组] 单词接龙
  • 图解设计模式-中介者模式(Mediator)
  • 小程序面试问答(解决方案)
  • qt第三天快速回顾
  • Android 编译过程介绍,Android.mk 和 Android.bp 分析, 在源码中编译 AndroidStudio 构建的 App
  • 【C++】几种常用的类型转换
  • CCNP课程实验-07-OSPF-Trouble-Shooting
  • 75.乐理基础-打拍子-八三、八六拍的三角形打法
  • STLink下不了程序的解决办法
  • 操作系统---期末应用综合题
  • 56K star!一键拥有跨平台 ChatGPT 应用:ChatGPT-Next-Web
  • springMvc向request作用域存储数据的4种方式
  • SolidUI Gitee GVP
  • uthash -- basic
  • 利用MATLAB绘制折线图
  • C# halcon 工业产品尺寸测量
  • Vue中插槽的简单使用
  • 华为OD机试真题-机器人仓库搬砖-2023年OD统一考试(C卷)
  • 三维模型数据的几何坐标变换的点云重建并行计算技术方法分析
  • Android 横竖屏切换之窗体泄露leaked window DecorView XXXActivity
  • mysql之视图执行计划
  • 软件安装文档 | Docker (简洁)
  • PHP代码审计之实战审代码篇2
  • 05 Ciso模拟器连接腾讯云物联网开发平台
  • Nginx(二十) 获取真实客户端IP
  • 【攻防世界】Reverse—— IgniteMe writeup