diff --git a/build.gradle.kts b/build.gradle.kts
index bb491f5..2a5dde5 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -3,15 +3,6 @@
 buildscript {
     repositories {
         google()
-        jcenter()
-    }
-
-    dependencies {
-        classpath("com.android.tools.build:gradle:${plugins.versions.androidGradle}")
-        classpath("com.google.protobuf:protobuf-gradle-plugin:${plugins.versions.protobuf}")
-        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${plugins.versions.kotlin}")
-        classpath("org.jetbrains.dokka:dokka-gradle-plugin:${plugins.versions.kotlin}")
-        classpath("org.jlleitschuh.gradle:ktlint-gradle:${plugins.versions.ktlint}")
     }
 }
 
@@ -30,7 +21,7 @@
 }
 
 subprojects {
-    if (path == ":app" || path == ":storage:lib") {
+    if (path != ":storage:demo") {
         apply(plugin = "org.jlleitschuh.gradle.ktlint")
 
         configure<KtlintExtension> {
diff --git a/build.libs.toml b/build.libs.toml
index 76069aa..b723baa 100644
--- a/build.libs.toml
+++ b/build.libs.toml
@@ -17,6 +17,7 @@
 # We need to enforce that the versions we use are the same as AOSP to ensure compatibility.
 
 # Kotlin versions
+# https://android.googlesource.com/platform/external/kotlinc/+/refs/tags/android-14.0.0_r1/build.txt
 aosp-kotlin = { strictly = "1.8.10" }
 
 # Lint versions
diff --git a/build.plugins.toml b/build.plugins.toml
index 1e9acf9..defb8bf 100644
--- a/build.plugins.toml
+++ b/build.plugins.toml
@@ -1,5 +1,14 @@
 [versions]
+# We need to enforce that the versions we use are the same as AOSP to ensure compatibility.
+# 1.3.61 Android 11
+# 1.4.30 Android 12
+# 1.6.10 Android 13
+# 1.7.20 Android 13 (QPR2)
+# 1.8.10 Android 14
+# Check:
+# https://android.googlesource.com/platform/external/kotlinc/+/refs/tags/android-14.0.0_r1/build.txt
 kotlin = "1.8.10"
+
 androidGradle = "8.1.2"
 protobuf = "0.9.4"
 ktlint = "11.5.0"
diff --git a/contactsbackup/build.gradle.kts b/contactsbackup/build.gradle.kts
index 36e7fcf..92ad822 100644
--- a/contactsbackup/build.gradle.kts
+++ b/contactsbackup/build.gradle.kts
@@ -72,6 +72,7 @@
 
     androidTestImplementation(libs.kotlin.stdlib.jdk8)
     androidTestImplementation("androidx.test.ext:junit:1.1.5")
-    androidTestImplementation("androidx.test.espresso:espresso-core:${libs.versions.espresso.get()}")
+    androidTestImplementation(
+        "androidx.test.espresso:espresso-core:${libs.versions.espresso.get()}")
     androidTestImplementation("io.mockk:mockk-android:${libs.versions.mockk.get()}")
 }
diff --git a/storage/demo/build.gradle.kts b/storage/demo/build.gradle.kts
index 20c91b5..0f59892 100644
--- a/storage/demo/build.gradle.kts
+++ b/storage/demo/build.gradle.kts
@@ -46,11 +46,14 @@
         freeCompilerArgs += listOf("-opt-in=kotlin.RequiresOptIn")
     }
 
-    lintOptions {
-        disable("DialogFragmentCallbacksDetector", "InvalidFragmentVersionForActivityResult")
+    lint {
+        disable += setOf(
+            "DialogFragmentCallbacksDetector",
+            "InvalidFragmentVersionForActivityResult"
+        )
     }
 
-    packagingOptions {
+    packaging {
         jniLibs {
             excludes += listOf("META-INF/services/kotlin*")
         }
diff --git a/storage/lib/build.gradle.kts b/storage/lib/build.gradle.kts
index 657c5f2..3cd72ba 100644
--- a/storage/lib/build.gradle.kts
+++ b/storage/lib/build.gradle.kts
@@ -18,9 +18,8 @@
 
     defaultConfig {
         minSdk = libs.versions.minSdk.get().toInt()
-        targetSdk = libs.versions.targetSdk.get().toInt()
         testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
-        testInstrumentationRunnerArguments(mapOf("disableAnalytics" to "true"))
+        testInstrumentationRunnerArguments["disableAnalytics"] = "true"
     }
 
     buildTypes {
