From 8d6e68d6f43ff5b10880345d730317f289ee9def Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 4 Feb 2026 15:56:44 +0800 Subject: [PATCH 1/2] Partially revert upgrade to AGP 9.0.0 Building is broken on ecrypted filesystems Signed-off-by: Aayush Gupta --- app/build.gradle.kts | 3 ++- build.gradle.kts | 10 ++-------- gradle.properties | 4 +--- gradle/libs.versions.toml | 5 +++-- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9f3837eb7..00b8242a8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -7,7 +7,8 @@ import com.android.build.api.dsl.ApplicationExtension plugins { alias(libs.plugins.android.application) - alias(libs.plugins.android.legacy.kapt) + alias(libs.plugins.jetbrains.kotlin.android) + alias(libs.plugins.jetbrains.kotlin.kapt) alias(libs.plugins.google.ksp) alias(libs.plugins.jetbrains.kotlin.parcelize) alias(libs.plugins.sonarqube) diff --git a/build.gradle.kts b/build.gradle.kts index eeb640af3..2c9173f57 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,16 +3,10 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -buildscript { - dependencies { - // https://developer.android.com/build/releases/agp-9-0-0-release-notes#runtime-dependency-on-kotlin-gradle-plugin-upgrade - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${libs.versions.kotlin.get()}") - } -} - plugins { alias(libs.plugins.android.application) apply false - alias(libs.plugins.android.legacy.kapt) apply false + alias(libs.plugins.jetbrains.kotlin.android) apply false + alias(libs.plugins.jetbrains.kotlin.kapt) apply false alias(libs.plugins.google.ksp) apply false alias(libs.plugins.jetbrains.kotlin.parcelize) apply false alias(libs.plugins.sonarqube) apply false diff --git a/gradle.properties b/gradle.properties index edfb90d9f..a529a42c8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,7 @@ android.nonFinalResIds=false +android.useAndroidX=true org.gradle.jvmargs=-Xmx2048M --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED systemProp.file.encoding=utf-8 # https://docs.gradle.org/current/userguide/configuration_cache.html org.gradle.configuration-cache=true -android.enableAppCompileTimeRClass=false -android.r8.strictFullModeForKeepRules=false -android.r8.optimizedResourceShrinking=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d5b38e519..140878637 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ [versions] acra = "5.13.1" -agp = "9.0.0" +agp = "8.13.2" appcompat = "1.7.1" assertj = "3.27.6" autoservice-google = "1.1.1" @@ -132,7 +132,8 @@ zacsweers-autoservice-compiler = { module = "dev.zacsweers.autoservice:auto-serv [plugins] android-application = { id = "com.android.application", version.ref = "agp" } -android-legacy-kapt = { id = "com.android.legacy-kapt", version.ref = "agp" } # Needed for statesaver google-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +jetbrains-kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } # Needed for statesaver jetbrains-kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } sonarqube = { id = "org.sonarqube", version.ref = "sonarqube" } From 85d43fe45e854bd89dfc3587e396b00a4c13eb10 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 4 Feb 2026 16:22:48 +0800 Subject: [PATCH 2/2] proguard: Keep fields of generated proguard files Inspired from https://github.com/protocolbuffers/protobuf/blob/main/java/lite.md#r8-rule-to-make-production-app-builds-work Signed-off-by: Aayush Gupta --- app/proguard-rules.pro | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 8bcef3fbd..3f31fc98b 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -39,3 +39,8 @@ ## For some reason NotificationModeConfigFragment wasn't kept (only referenced in a preference xml) -keep class org.schabi.newpipe.settings.notifications.** { *; } + +# Prevent R8 from stripping or renaming Protobuf internal fields +-keepclassmembers class * extends com.google.protobuf.GeneratedMessageLite { + ; +}