import com.android.build.gradle.internal.api.BaseVariantOutputImpl plugins { alias(libs.plugins.agp.app) alias(libs.plugins.kotlin) alias(libs.plugins.ksp) alias(libs.plugins.lsplugin.apksign) id("kotlin-parcelize") } val managerVersionCode: Int by rootProject.extra val managerVersionName: String by rootProject.extra apksign { storeFileProperty = "KEYSTORE_FILE" storePasswordProperty = "KEYSTORE_PASSWORD" keyAliasProperty = "KEY_ALIAS" keyPasswordProperty = "KEY_PASSWORD" } android { namespace = "me.weishu.kernelsu" buildTypes { release { isMinifyEnabled = true isShrinkResources = true proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } buildFeatures { aidl = true buildConfig = true compose = true } kotlinOptions { jvmTarget = "21" } composeOptions { kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get() } packaging { jniLibs { useLegacyPackaging = true } resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } externalNativeBuild { cmake { path("src/main/cpp/CMakeLists.txt") } } applicationVariants.all { outputs.forEach { val output = it as BaseVariantOutputImpl output.outputFileName = "KernelSU_${managerVersionName}_${managerVersionCode}-$name.apk" } kotlin.sourceSets { getByName(name) { kotlin.srcDir("build/generated/ksp/$name/kotlin") } } } } dependencies { implementation(libs.androidx.activity.compose) implementation(libs.androidx.navigation.compose) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compose.material.icons.extended) implementation(libs.androidx.compose.material) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.tooling.preview) debugImplementation(libs.androidx.compose.ui.test.manifest) debugImplementation(libs.androidx.compose.ui.tooling) implementation(libs.androidx.lifecycle.runtime.compose) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.com.google.accompanist.drawablepainter) implementation(libs.com.google.accompanist.navigation.animation) implementation(libs.com.google.accompanist.systemuicontroller) implementation(libs.com.google.accompanist.webview) implementation(libs.compose.destinations.animations.core) ksp(libs.compose.destinations.ksp) implementation(libs.com.github.topjohnwu.libsu.core) implementation(libs.com.github.topjohnwu.libsu.service) implementation(libs.com.github.topjohnwu.libsu.io) implementation(libs.dev.rikka.rikkax.parcelablelist) implementation(libs.io.coil.kt.coil.compose) implementation(libs.kotlinx.coroutines.core) implementation(libs.me.zhanghai.android.appiconloader.coil) implementation(libs.sheet.compose.dialogs.core) implementation(libs.sheet.compose.dialogs.list) implementation(libs.sheet.compose.dialogs.input) implementation(libs.markdown) implementation(libs.androidx.webkit) }