Use tools:sdk-common for build-logic

This commit is contained in:
topjohnwu
2026-04-02 07:11:24 +00:00
committed by John Wu
parent 9dc9b20292
commit fd1f403bac
3 changed files with 17 additions and 17 deletions
+1
View File
@@ -18,4 +18,5 @@ gradlePlugin {
dependencies {
compileOnly(libs.android.gradle.plugin)
compileOnly(libs.android.build.sdk.common)
}
+13 -16
View File
@@ -1,6 +1,7 @@
import com.android.build.api.artifact.ArtifactTransformationRequest
import com.android.build.api.dsl.ApkSigningConfig
import com.android.builder.internal.packaging.IncrementalPackager
import com.android.ide.common.signing.KeystoreHelper
import com.android.tools.build.apkzlib.sign.SigningExtension
import com.android.tools.build.apkzlib.sign.SigningOptions
import com.android.tools.build.apkzlib.zfile.ZFiles
@@ -14,8 +15,6 @@ import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import java.io.File
import java.security.KeyStore
import java.security.cert.X509Certificate
import java.util.jar.JarFile
abstract class AddCommentTask: DefaultTask() {
@@ -39,13 +38,21 @@ abstract class AddCommentTask: DefaultTask() {
val inFile = File(artifact.outputFile)
val outFile = outFolder.file(inFile.name).get().asFile
val privateKey = signingConfig.get().getPrivateKey()
val config = signingConfig.get()
val info = KeystoreHelper.getCertificateInfo(
config.storeType,
config.storeFile,
config.storePassword,
config.keyPassword,
config.keyAlias
)
val signingOptions = SigningOptions.builder()
.setMinSdkVersion(0)
.setV1SigningEnabled(true)
.setV2SigningEnabled(true)
.setKey(privateKey.privateKey)
.setCertificates(privateKey.certificate as X509Certificate)
.setKey(info.key)
.setCertificates(info.certificate)
.setValidation(SigningOptions.Validation.ASSUME_INVALID)
.build()
val options = ZFileOptions().apply {
@@ -64,14 +71,4 @@ abstract class AddCommentTask: DefaultTask() {
outFile
}
private fun ApkSigningConfig.getPrivateKey(): KeyStore.PrivateKeyEntry {
val keyStore = KeyStore.getInstance(storeType ?: KeyStore.getDefaultType())
storeFile!!.inputStream().use {
keyStore.load(it, storePassword!!.toCharArray())
}
val keyPwdArray = keyPassword!!.toCharArray()
val entry = keyStore.getEntry(keyAlias!!, KeyStore.PasswordProtection(keyPwdArray))
return entry as KeyStore.PrivateKeyEntry
}
}
}
+3 -1
View File
@@ -1,6 +1,7 @@
[versions]
kotlin = "2.3.20"
android = "9.1.0"
android-tools = "32.1.0"
ksp = "2.3.4"
rikka = "1.3.0"
navigation = "2.9.7"
@@ -75,8 +76,9 @@ navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", ver
navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "navigation3" }
navigationevent-compose = { module = "androidx.navigationevent:navigationevent-compose", version.ref = "navigationevent" }
# Build plugins
# For build-logic
android-gradle-plugin = { module = "com.android.tools.build:gradle", version.ref = "android" }
android-build-sdk-common = { module = "com.android.tools:sdk-common", version.ref = "android-tools" }
[plugins]
android-application = { id = "com.android.application", version.ref = "android" }