架设网站服务器,wordpress两个站点共用用户,网站制作推广,金华做企业网站公司知识储备
首先需要知道V1,V2,V3签名的区别#xff0c;可以参考之前的文章#xff1a;AndroidV1,V2,V3签名原理详解 前言#xff1a;一般开发者会指定使用自己创建的证书#xff0c;如果没有指定#xff0c;则会默认使用系统的证书#xff0c;该默认的证书存储在C:\Users…知识储备
首先需要知道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自动帮我们做了这个操作有个默认的签名 大致流程
找到assembleRelease生成的app-release.apk在assembleRelease后面新建Task处理apk包对这个apk进行加固对这个apk进行多渠道打包对多渠道的apk重新签名
360加固宝
命令行
登录 -jar jiagu.jar –login usernamepassword
导入签名
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 multipleChannelsdependsOn(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)