admin管理员组文章数量:1560427
1.新建plug_360_jiagu.gradle文件
代码如下
def userName360 = ''
def password360 = ''
def package360Path = ''
def mulpkgChannel360Path = ''
def keystoreFilepath = ''
def keystorePSW = ''
def keystoreAlias = ''
def keystoreAliasPSW = ''
def keyfile = file('temp')
//签名相关key
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
keystoreFilepath = properties.getProperty("keystorePath")
if (keystoreFilepath) {
keystorePSW = properties.getProperty("keystorePassword")
keystoreAlias = properties.getProperty("keystoreAlias")
keystoreAliasPSW = properties.getProperty("keystoreAliasPassword")
keyfile = file(keystoreFilepath)
}
//360加固相关key
userName360 = properties.getProperty("360.userName")
password360 = properties.getProperty("360.password")
package360Path = properties.getProperty("360.packagePath")
mulpkgChannel360Path = project.rootDir.getPath() + File.separator + properties.getProperty("360.mulpkgChannelPath")
def getReleaseApkPath() {
def apkDir = project.rootDir.getPath() + File.separator + project.getProject().name + File.separator + "build" + File.separator +
"outputs" + File.separator + "apk" + File.separator + "release"
def apkDirFile = new File(apkDir)
if (!apkDirFile.exists()) {
throw new RuntimeException("apk output path not exists:" + apkDir)
}
def apkPath = null
for (int i = apkDirFile.listFiles().length - 1; i >= 0; i--) {
File file = apkDirFile.listFiles()[i]
if (file.isFile() && file.name.endsWith(".apk")) {
apkPath = file.getPath()
break
}
}
return apkPath
}
def getReleaseApkJiaguPath() {
def apkJiaguDir = project.rootDir.getPath() + File.separator + project.getProject().name + File.separator + "build" + File.separator +
"outputs" + File.separator + "apk" + File.separator + "release" + File.separator + "jiagu"
return apkJiaguDir
}
task assemble360jiagu(dependsOn: 'assembleRelease') {
group = "@构建任务"
//360加固
// https://docs.gradle/current/javadoc/org/gradle/api/Project.html
doLast {
logInfo "################################################360jiagu begin################################################"
def appFilePath = getReleaseApkPath()
def appFileJiaguPath = getReleaseApkJiaguPath()
println "appFilePath=" + appFilePath
if (!new File(appFilePath).exists()) {
println "apk not exist"
return
}
def appFileJiagu = new File(appFileJiaguPath)
if (appFileJiagu.exists()) {
appFileJiagu.deleteDir()
}
new File(appFileJiaguPath).mkdirs()
logInfo appFilePath
if (!new File(appFilePath).exists()) {
logError "apk not exist" + appFilePath
return
}
def cmdBase = 'java.exe -jar ' + package360Path + '\\jiagu\\jiagu.jar'
def cmdLogin = cmdBase + ' -login ' + userName360 + ' ' + password360
def cmdImportsign = cmdBase + ' -importsign ' +
keyfile.getCanonicalPath() + ' ' + keystorePSW + ' ' + keystoreAlias + ' ' + keystoreAliasPSW
def cmdConfig = cmdBase + ' -config -x86'
def cmdJiagu = cmdBase + ' -jiagu ' + appFilePath + ' ' + appFileJiaguPath + ' -autosign'
logInfo '360加固登录中 cmdLogin'
execute360JiaguCmd(package360Path, cmdLogin)
logInfo '360加固导入签名 cmdImportsign'
execute360JiaguCmd(package360Path, cmdImportsign)
logInfo '360加固配置 cmdConfig'
execute360JiaguCmd(package360Path, cmdConfig)
logInfo '360加固开始加固 cmdJiagu'
execute360JiaguCmd(package360Path, cmdJiagu)
logInfo "################################################360jiagu end################################################"
}
}
def execute360JiaguCmd(String package360Path, String cmd) {
def binPackagePath = package360Path + "\\jiagu\\java\\bin"
def file = new File(binPackagePath)
if (!file.exists()) {
logError "360 binPackagePath not exist " + binPackagePath
}
logInfo(cmd)
def p = cmd.execute(null, file)
logInfo p.text
p.waitFor() // 用以等待外部进程调用结束
logInfo p.exitValue()
}
def logInfo(text) {
println '【Info】' + text
}
def logError(text) {
println '【错误】' + text
}
2.将上述脚本引入app
apply plugin: 'com.android.application'
apply from: 'plug_360_jiagu.gradle'
3.在local.properties文件汇总配置秘钥和360加固包目录
sdk.dir=F\:\\soft\\asCache\\android-sdk-windows
ndk.dir=D\:\\Android\\android-ndk-r16b
360.userName=xxx
360.password=xxxx
360.packagePath=D\:\\soft\\360jiagubao_windows_64
360.mulpkgChannelPath=plug_360_jiagu_channels.txt
plug_360_jiagu_channels.txt
UMENG_CHANNEL 360应用平台 360
UMENG_CHANNEL 小米 xiaomi
UMENG_CHANNEL 华为 huawei
UMENG_CHANNEL 腾讯应用宝 yingyongbao
UMENG_CHANNEL vivo应用商店 vivo
4.在Gradle面板中的目录中使用
点击assemble360jiagu一键加固按钮,在Build控制台会输出过程信息,等待数十秒后在app/build/outputs/apk/release/jiagu即可查看到加固安装包
版权声明:本文标题:Android Studio基于360加固的一键加固gradle脚本配置 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1727440815a1114947.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论