[gradle] Don't use internal API (#1481)
This commit is contained in:
parent
8c64a8db1a
commit
5b479c09b5
|
|
@ -17,8 +17,6 @@
|
||||||
* Copyright (C) 2021 LSPosed Contributors
|
* Copyright (C) 2021 LSPosed Contributors
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import com.android.build.api.component.analytics.AnalyticsEnabledApplicationVariant
|
|
||||||
import com.android.build.api.variant.impl.ApplicationVariantImpl
|
|
||||||
import com.android.build.gradle.internal.dsl.BuildType
|
import com.android.build.gradle.internal.dsl.BuildType
|
||||||
import java.nio.file.Paths
|
import java.nio.file.Paths
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
|
|
@ -128,16 +126,6 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
androidComponents.onVariants { v ->
|
|
||||||
val variant: ApplicationVariantImpl =
|
|
||||||
if (v is ApplicationVariantImpl) v
|
|
||||||
else (v as AnalyticsEnabledApplicationVariant).delegate as ApplicationVariantImpl
|
|
||||||
variant.outputs.forEach {
|
|
||||||
it.outputFileName.set("LSPosedManager-v${verName}-${verCode}-${variant.name}.apk")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
val optimizeReleaseRes = task("optimizeReleaseRes").doLast {
|
val optimizeReleaseRes = task("optimizeReleaseRes").doLast {
|
||||||
val aapt2 = File(
|
val aapt2 = File(
|
||||||
androidComponents.sdkComponents.sdkDirectory.get().asFile,
|
androidComponents.sdkComponents.sdkDirectory.get().asFile,
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,6 @@
|
||||||
* Copyright (C) 2021 LSPosed Contributors
|
* Copyright (C) 2021 LSPosed Contributors
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import com.android.build.api.component.analytics.AnalyticsEnabledApplicationVariant
|
|
||||||
import com.android.build.api.variant.impl.ApplicationVariantImpl
|
|
||||||
import com.android.build.gradle.BaseExtension
|
import com.android.build.gradle.BaseExtension
|
||||||
import com.android.ide.common.signing.KeystoreHelper
|
import com.android.ide.common.signing.KeystoreHelper
|
||||||
import org.apache.commons.codec.binary.Hex
|
import org.apache.commons.codec.binary.Hex
|
||||||
|
|
@ -28,6 +26,7 @@ import java.io.ByteArrayOutputStream
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
import java.io.PrintStream
|
import java.io.PrintStream
|
||||||
import java.security.MessageDigest
|
import java.security.MessageDigest
|
||||||
|
import java.util.*
|
||||||
import java.util.jar.JarFile
|
import java.util.jar.JarFile
|
||||||
import java.util.zip.ZipOutputStream
|
import java.util.zip.ZipOutputStream
|
||||||
|
|
||||||
|
|
@ -188,16 +187,13 @@ val zipAll = task("zipAll", Task::class) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
androidComponents.onVariants { v ->
|
fun afterEval() = android.applicationVariants.forEach { variant ->
|
||||||
val variant: ApplicationVariantImpl =
|
val variantCapped = variant.name.capitalize(Locale.ROOT)
|
||||||
if (v is ApplicationVariantImpl) v
|
val variantLowered = variant.name.toLowerCase(Locale.ROOT)
|
||||||
else (v as AnalyticsEnabledApplicationVariant).delegate as ApplicationVariantImpl
|
val buildTypeCapped = variant.buildType.name.capitalize(Locale.ROOT)
|
||||||
val variantCapped = variant.name.capitalize()
|
val buildTypeLowered = variant.buildType.name.toLowerCase(Locale.ROOT)
|
||||||
val variantLowered = variant.name.toLowerCase()
|
val flavorCapped = variant.flavorName!!.capitalize(Locale.ROOT)
|
||||||
val buildTypeCapped = variant.buildType!!.capitalize()
|
val flavorLowered = variant.flavorName!!.toLowerCase(Locale.ROOT)
|
||||||
val buildTypeLowered = variant.buildType!!.toLowerCase()
|
|
||||||
val flavorCapped = variant.flavorName!!.capitalize()
|
|
||||||
val flavorLowered = variant.flavorName!!.toLowerCase()
|
|
||||||
|
|
||||||
val magiskDir = "$buildDir/magisk/$variantLowered"
|
val magiskDir = "$buildDir/magisk/$variantLowered"
|
||||||
|
|
||||||
|
|
@ -210,7 +206,14 @@ androidComponents.onVariants { v ->
|
||||||
"intermediates/compile_and_runtime_not_namespaced_r_class_jar/${buildTypeLowered}/R.jar"
|
"intermediates/compile_and_runtime_not_namespaced_r_class_jar/${buildTypeLowered}/R.jar"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
ZipOutputStream(FileOutputStream(File(project.buildDir, "tmp/${variantCapped}R.jar"))).use {
|
ZipOutputStream(
|
||||||
|
FileOutputStream(
|
||||||
|
File(
|
||||||
|
project.buildDir,
|
||||||
|
"tmp/${variantCapped}R.jar"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
).use {
|
||||||
for (entry in rFile.entries()) {
|
for (entry in rFile.entries()) {
|
||||||
if (entry.name.startsWith("org/lsposed/manager")) {
|
if (entry.name.startsWith("org/lsposed/manager")) {
|
||||||
it.putNextEntry(entry)
|
it.putNextEntry(entry)
|
||||||
|
|
@ -222,36 +225,34 @@ androidComponents.onVariants { v ->
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
afterEvaluate {
|
val app = rootProject.project(":app").extensions.getByName<BaseExtension>("android")
|
||||||
val app = rootProject.project(":app").extensions.getByName<BaseExtension>("android")
|
val outSrcDir = file("$buildDir/generated/source/signInfo/${variantLowered}")
|
||||||
val outSrcDir = file("$buildDir/generated/source/signInfo/${variantLowered}")
|
val outSrc = file("$outSrcDir/org/lsposed/lspd/util/SignInfo.java")
|
||||||
val outSrc = file("$outSrcDir/org/lsposed/lspd/util/SignInfo.java")
|
val signInfoTask = tasks.register("generate${variantCapped}SignInfo") {
|
||||||
val signInfoTask = tasks.register("generate${variantCapped}SignInfo") {
|
dependsOn(":app:validateSigning${buildTypeCapped}")
|
||||||
dependsOn(":app:validateSigning${buildTypeCapped}")
|
outputs.file(outSrc)
|
||||||
outputs.file(outSrc)
|
doLast {
|
||||||
doLast {
|
val sign = app.buildTypes.named(buildTypeLowered).get().signingConfig
|
||||||
val sign = app.buildTypes.named(buildTypeLowered).get().signingConfig
|
outSrc.parentFile.mkdirs()
|
||||||
outSrc.parentFile.mkdirs()
|
val certificateInfo = KeystoreHelper.getCertificateInfo(
|
||||||
val certificateInfo = KeystoreHelper.getCertificateInfo(
|
sign?.storeType,
|
||||||
sign?.storeType,
|
sign?.storeFile,
|
||||||
sign?.storeFile,
|
sign?.storePassword,
|
||||||
sign?.storePassword,
|
sign?.keyPassword,
|
||||||
sign?.keyPassword,
|
sign?.keyAlias
|
||||||
sign?.keyAlias
|
)
|
||||||
)
|
PrintStream(outSrc).apply {
|
||||||
PrintStream(outSrc).apply {
|
println("package org.lsposed.lspd.util;")
|
||||||
println("package org.lsposed.lspd.util;")
|
println("public final class SignInfo {")
|
||||||
println("public final class SignInfo {")
|
print("public static final byte[] CERTIFICATE = {")
|
||||||
print("public static final byte[] CERTIFICATE = {")
|
val bytes = certificateInfo.certificate.encoded
|
||||||
val bytes = certificateInfo.certificate.encoded
|
print(bytes.joinToString(",") { it.toString() })
|
||||||
print(bytes.joinToString(",") { it.toString() })
|
println("};")
|
||||||
println("};")
|
println("}")
|
||||||
println("}")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
variant.variantData.registerJavaGeneratingTask(signInfoTask, arrayListOf(outSrcDir))
|
|
||||||
}
|
}
|
||||||
|
variant.registerJavaGeneratingTask(signInfoTask, arrayListOf(outSrcDir))
|
||||||
|
|
||||||
val moduleId = "${flavorLowered}_$moduleBaseId"
|
val moduleId = "${flavorLowered}_$moduleBaseId"
|
||||||
val zipFileName = "$moduleName-v$verName-$verCode-${flavorLowered}-$buildTypeLowered.zip"
|
val zipFileName = "$moduleName-v$verName-$verCode-${flavorLowered}-$buildTypeLowered.zip"
|
||||||
|
|
@ -354,6 +355,10 @@ androidComponents.onVariants { v ->
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
afterEvaluate {
|
||||||
|
afterEval()
|
||||||
|
}
|
||||||
|
|
||||||
val adb: String = androidComponents.sdkComponents.adb.get().asFile.absolutePath
|
val adb: String = androidComponents.sdkComponents.adb.get().asFile.absolutePath
|
||||||
val killLspd = task("killLspd", Exec::class) {
|
val killLspd = task("killLspd", Exec::class) {
|
||||||
commandLine(adb, "shell", "su", "-c", "killall", "lspd")
|
commandLine(adb, "shell", "su", "-c", "killall", "lspd")
|
||||||
|
|
@ -389,13 +394,13 @@ val tmpApk = "/data/local/tmp/lsp.apk"
|
||||||
val pushApk = task("pushApk", Exec::class) {
|
val pushApk = task("pushApk", Exec::class) {
|
||||||
dependsOn(":app:assembleDebug")
|
dependsOn(":app:assembleDebug")
|
||||||
workingDir("${project(":app").buildDir}/outputs/apk/debug")
|
workingDir("${project(":app").buildDir}/outputs/apk/debug")
|
||||||
commandLine(adb, "push", "LSPosedManager-v$verName-$verCode-debug.apk", tmpApk)
|
commandLine(adb, "push", "app-debug.apk", tmpApk)
|
||||||
}
|
}
|
||||||
val openApp = task("openApp", Exec::class) {
|
val openApp = task("openApp", Exec::class) {
|
||||||
commandLine(
|
commandLine(
|
||||||
adb, "shell", "am start -a android.intent.action.MAIN " +
|
adb, "shell", "am start -a android.intent.action.MAIN " +
|
||||||
"-c org.lsposed.manager.LAUNCH_MANAGER " +
|
"-c org.lsposed.manager.LAUNCH_MANAGER " +
|
||||||
"com.android.shell/.BugreportWarningActivity"
|
"com.android.shell/.BugreportWarningActivity"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
task("reRunApp", Exec::class) {
|
task("reRunApp", Exec::class) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue