diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 3f7b4430b8..b583aa5416 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -154,7 +154,11 @@ android {
experimentalProperties["android.experimental.enableScreenshotTest"] = true
buildToolsVersion = libs.versions.buildTools.get()
- compileSdkVersion(libs.versions.compileSdk.get())
+
+ compileSdk {
+ version = release(libs.versions.compileSdk.get().toInt())
+ }
+
ndkVersion = libs.versions.ndk.get()
flavorDimensions += listOf("distribution", "environment")
@@ -191,12 +195,12 @@ android {
sourceSets {
getByName("test") {
- java.srcDir("$projectDir/src/testShared")
+ java.directories += "$projectDir/src/testShared"
}
getByName("androidTest") {
- java.srcDir("$projectDir/src/testShared")
- java.srcDir("$projectDir/src/benchmarkShared/java")
+ java.directories += "$projectDir/src/testShared"
+ java.directories += "$projectDir/src/benchmarkShared/java"
}
}
@@ -411,6 +415,7 @@ android {
isDefault = false
isDebuggable = false
isMinifyEnabled = true
+ isShrinkResources = true
matchingFallbacks += "debug"
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Benchmark\"")
buildConfigField("boolean", "TRACING_ENABLED", "true")
@@ -521,18 +526,18 @@ android {
android.buildTypes.configureEach {
val path = if (name == "release") releaseDir else debugDir
sourceSets.named(name) {
- java.srcDir(path)
+ java.directories += path
}
}
sourceSets {
getByName("mocked") {
- java.srcDir("$projectDir/src/benchmarkShared/java")
+ java.directories += "$projectDir/src/benchmarkShared/java"
manifest.srcFile("$projectDir/src/benchmarkShared/AndroidManifest.xml")
}
getByName("benchmark") {
- java.srcDir("$projectDir/src/benchmarkShared/java")
+ java.directories += "$projectDir/src/benchmarkShared/java"
manifest.srcFile("$projectDir/src/benchmarkShared/AndroidManifest.xml")
}
}
diff --git a/baseline-profile/build.gradle.kts b/baseline-profile/build.gradle.kts
index ef458ae350..532aeea177 100644
--- a/baseline-profile/build.gradle.kts
+++ b/baseline-profile/build.gradle.kts
@@ -7,8 +7,9 @@ plugins {
android {
namespace = "org.signal.baselineprofile"
+
compileSdk {
- version = release(36)
+ version = release(libs.versions.compileSdk.get().toInt())
}
compileOptions {
diff --git a/benchmark/build.gradle.kts b/benchmark/build.gradle.kts
index d97222d619..15c3ef574b 100644
--- a/benchmark/build.gradle.kts
+++ b/benchmark/build.gradle.kts
@@ -13,7 +13,10 @@ plugins {
android {
namespace = "org.signal.benchmark"
- compileSdkVersion(libs.versions.compileSdk.get())
+
+ compileSdk {
+ version = release(libs.versions.compileSdk.get().toInt())
+ }
compileOptions {
sourceCompatibility = JavaVersion.toVersion(libs.versions.javaVersion.get())
diff --git a/build-logic/plugins/src/main/java/signal-library.gradle.kts b/build-logic/plugins/src/main/java/signal-library.gradle.kts
index 4aa4957826..32c6fcc751 100644
--- a/build-logic/plugins/src/main/java/signal-library.gradle.kts
+++ b/build-logic/plugins/src/main/java/signal-library.gradle.kts
@@ -17,7 +17,10 @@ plugins {
android {
buildToolsVersion = libs.versions.buildTools.get()
- compileSdkVersion(libs.versions.compileSdk.get())
+
+ compileSdk {
+ version = release(libs.versions.compileSdk.get().toInt())
+ }
defaultConfig {
minSdk = libs.versions.minSdk.get().toInt()
diff --git a/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts b/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts
index ead37f3319..a6fb05d979 100644
--- a/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts
+++ b/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts
@@ -18,7 +18,10 @@ plugins {
android {
buildToolsVersion = libs.versions.buildTools.get()
- compileSdkVersion(libs.versions.compileSdk.get())
+
+ compileSdk {
+ version = release(libs.versions.compileSdk.get().toInt())
+ }
defaultConfig {
versionCode = 1
diff --git a/demo/camera/build.gradle.kts b/demo/camera/build.gradle.kts
index 3f989b1131..de80975442 100644
--- a/demo/camera/build.gradle.kts
+++ b/demo/camera/build.gradle.kts
@@ -6,7 +6,10 @@ plugins {
android {
namespace = "org.signal.camera.demo"
- compileSdkVersion(libs.versions.compileSdk.get())
+
+ compileSdk {
+ version = release(libs.versions.compileSdk.get().toInt())
+ }
defaultConfig {
applicationId = "org.signal.camera.demo"
diff --git a/demo/video/build.gradle.kts b/demo/video/build.gradle.kts
index 4bd0f530e4..16958cc22a 100644
--- a/demo/video/build.gradle.kts
+++ b/demo/video/build.gradle.kts
@@ -19,7 +19,10 @@ val localProperties: Properties? = if (localPropertiesFile.exists()) {
android {
namespace = "org.thoughtcrime.video.app"
- compileSdkVersion(libs.versions.compileSdk.get())
+
+ compileSdk {
+ version = release(libs.versions.compileSdk.get().toInt())
+ }
defaultConfig {
applicationId = "org.thoughtcrime.video.app"
@@ -76,7 +79,7 @@ android {
if (sampleVideosPath != null) {
val sampleVideosDir = File(sampleVideosPath)
if (sampleVideosDir.isDirectory) {
- getByName("androidTest").assets.srcDir(sampleVideosDir)
+ getByName("androidTest").assets.directories.add(sampleVideosPath)
}
}
}
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 6c1db5d01f..49db3a0ee5 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -4,7 +4,7 @@
[versions]
# SDK & Build Versions
buildTools = "36.0.0"
-compileSdk = "android-36.1"
+compileSdk = "37"
targetSdk = "35"
minSdk = "23"
ndk = "28.0.13004108"
diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 66c47464ae..3010efddd0 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -4088,14 +4088,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/microbenchmark/build.gradle.kts b/microbenchmark/build.gradle.kts
index 16630360b6..aea2edc2f2 100644
--- a/microbenchmark/build.gradle.kts
+++ b/microbenchmark/build.gradle.kts
@@ -11,7 +11,10 @@ plugins {
android {
namespace = "org.signal.microbenchmark"
- compileSdkVersion(libs.versions.compileSdk.get())
+
+ compileSdk {
+ version = release(libs.versions.compileSdk.get().toInt())
+ }
compileOptions {
isCoreLibraryDesugaringEnabled = true
diff --git a/reproducible-builds/Dockerfile b/reproducible-builds/Dockerfile
index b6d7ccddae..b97f813ab6 100644
--- a/reproducible-builds/Dockerfile
+++ b/reproducible-builds/Dockerfile
@@ -14,9 +14,9 @@ RUN apt install -oAcquire::https::Verify-Peer=false -y ca-certificates
RUN apt update
RUN apt install -y git openjdk-21-jdk-headless unzip wget
-ENV ANDROID_COMMAND_LINE_TOOLS_FILENAME=commandlinetools-linux-10406996_latest.zip
-ENV ANDROID_COMMAND_LINE_TOOLS_SHA256=8919e8752979db73d8321e9babe2caedcc393750817c1a5f56c128ec442fb540
-ENV ANDROID_API_LEVELS=android-36.1
+ENV ANDROID_COMMAND_LINE_TOOLS_FILENAME=commandlinetools-linux-14742923_latest.zip
+ENV ANDROID_COMMAND_LINE_TOOLS_SHA256=04453066b540409d975c676d781da1477479dde3761310f1a7eb92a1dfb15af7
+ENV ANDROID_API_LEVELS=android-37.0
ENV ANDROID_BUILD_TOOLS_VERSION=36.0.0
ENV ANDROID_HOME=/usr/local/android-sdk-linux