manager: 优化构建配置

This commit is contained in:
NkBe 2025-12-05 21:39:54 +08:00
parent 544eccfeef
commit 2d86d32ff2
No known key found for this signature in database
GPG Key ID: 525137026FF031DF
3 changed files with 37 additions and 20 deletions

View File

@ -44,7 +44,7 @@ android {
} }
composeOptions { composeOptions {
kotlinCompilerExtensionVersion = "1.5.13" kotlinCompilerExtensionVersion = "1.5.15"
} }
namespace = "org.lsposed.npatch" namespace = "org.lsposed.npatch"
@ -63,17 +63,22 @@ afterEvaluate {
val variantLowered = variant.name.lowercase() val variantLowered = variant.name.lowercase()
val variantCapped = variant.name.replaceFirstChar { it.uppercase() } val variantCapped = variant.name.replaceFirstChar { it.uppercase() }
task<Copy>("copy${variantCapped}Assets") { val copyAssetsTaskProvider = tasks.register<Copy>("copy${variantCapped}Assets") {
dependsOn(":meta-loader:copy$variantCapped") dependsOn(":meta-loader:copy$variantCapped")
dependsOn(":patch-loader:copy$variantCapped") dependsOn(":patch-loader:copy$variantCapped")
tasks["merge${variantCapped}Assets"].dependsOn(this)
into("$buildDir/intermediates/assets/$variantLowered/merge${variantCapped}Assets") val targetDir = layout.buildDirectory.dir("intermediates/assets/$variantLowered/merge${variantCapped}Assets")
into(targetDir)
from("${rootProject.projectDir}/out/assets/${variant.name}") from("${rootProject.projectDir}/out/assets/${variant.name}")
} }
task<Copy>("build$variantCapped") { tasks.named("merge${variantCapped}Assets").configure {
dependsOn(tasks["assemble$variantCapped"]) dependsOn(copyAssetsTaskProvider)
}
tasks.register<Copy>("build$variantCapped") {
dependsOn("assemble$variantCapped")
from(variant.outputs.map { it.outputFile }) from(variant.outputs.map { it.outputFile })
into("${rootProject.projectDir}/out/$variantLowered") into("${rootProject.projectDir}/out/$variantLowered")
rename(".*.apk", "NPatch-v$verName-$verCode-$variantLowered.apk") rename(".*.apk", "NPatch-v$verName-$verCode-$variantLowered.apk")
@ -82,17 +87,16 @@ afterEvaluate {
} }
dependencies { dependencies {
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-moshi:2.9.0")
implementation("com.squareup.moshi:moshi-kotlin:1.15.0")
implementation(projects.patch) implementation(projects.patch)
implementation(projects.services.daemonService) implementation(projects.services.daemonService)
implementation(projects.share.android) implementation(projects.share.android)
implementation(projects.share.java) implementation(projects.share.java)
implementation(platform(npatch.androidx.compose.bom))
annotationProcessor(npatch.androidx.room.compiler) implementation(platform(npatch.androidx.compose.bom))
compileOnly(npatch.rikka.hidden.stub)
debugImplementation(npatch.androidx.compose.ui.tooling)
debugImplementation(npatch.androidx.customview)
debugImplementation(npatch.androidx.customview.poolingcontainer)
implementation(npatch.androidx.activity.compose) implementation(npatch.androidx.activity.compose)
implementation(npatch.androidx.compose.material.icons.extended) implementation(npatch.androidx.compose.material.icons.extended)
implementation(npatch.androidx.compose.material3) implementation(npatch.androidx.compose.material3)
@ -104,6 +108,7 @@ dependencies {
implementation(libs.androidx.preference) implementation(libs.androidx.preference)
implementation(npatch.androidx.room.ktx) implementation(npatch.androidx.room.ktx)
implementation(npatch.androidx.room.runtime) implementation(npatch.androidx.room.runtime)
implementation(npatch.google.accompanist.navigation.animation) implementation(npatch.google.accompanist.navigation.animation)
implementation(npatch.google.accompanist.pager) implementation(npatch.google.accompanist.pager)
implementation(npatch.google.accompanist.swiperefresh) implementation(npatch.google.accompanist.swiperefresh)
@ -115,6 +120,13 @@ dependencies {
implementation(npatch.raamcosta.compose.destinations) implementation(npatch.raamcosta.compose.destinations)
implementation(libs.appiconloader) implementation(libs.appiconloader)
implementation(libs.hiddenapibypass) implementation(libs.hiddenapibypass)
annotationProcessor(npatch.androidx.room.compiler)
compileOnly(npatch.rikka.hidden.stub)
ksp(npatch.androidx.room.compiler) ksp(npatch.androidx.room.compiler)
ksp(npatch.raamcosta.compose.destinations.ksp) ksp(npatch.raamcosta.compose.destinations.ksp)
}
debugImplementation(npatch.androidx.compose.ui.tooling)
debugImplementation(npatch.androidx.customview)
debugImplementation(npatch.androidx.customview.poolingcontainer)
}

View File

@ -9,13 +9,21 @@
private static ** getDebugMetadataAnnotation(...) return null; private static ** getDebugMetadataAnnotation(...) return null;
} }
-keep class com.beust.jcommander.** { *; }
-keep class org.lsposed.npatch.database.** { *; } -keep class org.lsposed.npatch.database.** { *; }
-keep class org.lsposed.npatch.Patcher$Options { *; } -keep class org.lsposed.npatch.Patcher$Options { *; }
-keep class org.lsposed.npatch.share.LSPConfig { *; } -keep class org.lsposed.npatch.share.LSPConfig { *; }
-keep class org.lsposed.npatch.share.PatchConfig { *; } -keep class org.lsposed.npatch.share.PatchConfig { *; }
-keepclassmembers class org.lsposed.patch.NPatch { -keepclassmembers class org.lsposed.patch.NPatch { private <fields>;}
private <fields>; -keep class com.beust.jcommander.** { *; }-keepattributes Signature
} -keepattributes *Annotation*
-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeVisibleParameterAnnotations
-keep class com.squareup.moshi.** { *; }
-keep interface com.squareup.moshi.** { *; }
-keep class retrofit2.** { *; }
-dontwarn com.google.auto.value.AutoValue$Builder -dontwarn com.google.auto.value.AutoValue$Builder
-dontwarn com.google.auto.value.AutoValue -dontwarn com.google.auto.value.AutoValue
-dontwarn com.squareup.moshi.**
-dontwarn retrofit2.**
-dontwarn okio.**

View File

@ -493,9 +493,6 @@ private fun DoPatchBody(modifier: Modifier, navigator: DestinationsNavigator) {
val onFinish: (Int, String?) -> Unit = { status, message -> val onFinish: (Int, String?) -> Unit = { status, message ->
scope.launch { scope.launch {
if (status == PackageInstaller.STATUS_SUCCESS) { if (status == PackageInstaller.STATUS_SUCCESS) {
// Shizuku 安装成功的情况
// 此处不执行 navigateUp等待 BroadcastReceiver 收到系统广播后再统一跳转
// 这样可以保证应用确实已被系统注册
Log.i(TAG, "Install reported success, waiting for broadcast to navigate.") Log.i(TAG, "Install reported success, waiting for broadcast to navigate.")
} else if (status != NPackageManager.STATUS_USER_CANCELLED) { } else if (status != NPackageManager.STATUS_USER_CANCELLED) {
// 安装失败处理 // 安装失败处理