From 2d86d32ff2ee13b754f9831d8d9c72c94e8c8c72 Mon Sep 17 00:00:00 2001 From: NkBe Date: Fri, 5 Dec 2025 21:39:54 +0800 Subject: [PATCH] =?UTF-8?q?manager:=20=E4=BC=98=E5=8C=96=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/build.gradle.kts | 38 ++++++++++++------- manager/proguard-rules.pro | 16 ++++++-- .../lsposed/npatch/ui/page/NewPatchScreen.kt | 3 -- 3 files changed, 37 insertions(+), 20 deletions(-) diff --git a/manager/build.gradle.kts b/manager/build.gradle.kts index 2032101..83d0d62 100644 --- a/manager/build.gradle.kts +++ b/manager/build.gradle.kts @@ -44,7 +44,7 @@ android { } composeOptions { - kotlinCompilerExtensionVersion = "1.5.13" + kotlinCompilerExtensionVersion = "1.5.15" } namespace = "org.lsposed.npatch" @@ -63,17 +63,22 @@ afterEvaluate { val variantLowered = variant.name.lowercase() val variantCapped = variant.name.replaceFirstChar { it.uppercase() } - task("copy${variantCapped}Assets") { + val copyAssetsTaskProvider = tasks.register("copy${variantCapped}Assets") { dependsOn(":meta-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}") } - task("build$variantCapped") { - dependsOn(tasks["assemble$variantCapped"]) + tasks.named("merge${variantCapped}Assets").configure { + dependsOn(copyAssetsTaskProvider) + } + + tasks.register("build$variantCapped") { + dependsOn("assemble$variantCapped") from(variant.outputs.map { it.outputFile }) into("${rootProject.projectDir}/out/$variantLowered") rename(".*.apk", "NPatch-v$verName-$verCode-$variantLowered.apk") @@ -82,17 +87,16 @@ afterEvaluate { } 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.services.daemonService) implementation(projects.share.android) implementation(projects.share.java) - implementation(platform(npatch.androidx.compose.bom)) - annotationProcessor(npatch.androidx.room.compiler) - compileOnly(npatch.rikka.hidden.stub) - debugImplementation(npatch.androidx.compose.ui.tooling) - debugImplementation(npatch.androidx.customview) - debugImplementation(npatch.androidx.customview.poolingcontainer) + implementation(platform(npatch.androidx.compose.bom)) implementation(npatch.androidx.activity.compose) implementation(npatch.androidx.compose.material.icons.extended) implementation(npatch.androidx.compose.material3) @@ -104,6 +108,7 @@ dependencies { implementation(libs.androidx.preference) implementation(npatch.androidx.room.ktx) implementation(npatch.androidx.room.runtime) + implementation(npatch.google.accompanist.navigation.animation) implementation(npatch.google.accompanist.pager) implementation(npatch.google.accompanist.swiperefresh) @@ -115,6 +120,13 @@ dependencies { implementation(npatch.raamcosta.compose.destinations) implementation(libs.appiconloader) implementation(libs.hiddenapibypass) + + annotationProcessor(npatch.androidx.room.compiler) + compileOnly(npatch.rikka.hidden.stub) ksp(npatch.androidx.room.compiler) ksp(npatch.raamcosta.compose.destinations.ksp) -} + + debugImplementation(npatch.androidx.compose.ui.tooling) + debugImplementation(npatch.androidx.customview) + debugImplementation(npatch.androidx.customview.poolingcontainer) +} \ No newline at end of file diff --git a/manager/proguard-rules.pro b/manager/proguard-rules.pro index 79ad7d9..fa2324d 100644 --- a/manager/proguard-rules.pro +++ b/manager/proguard-rules.pro @@ -9,13 +9,21 @@ private static ** getDebugMetadataAnnotation(...) return null; } --keep class com.beust.jcommander.** { *; } -keep class org.lsposed.npatch.database.** { *; } -keep class org.lsposed.npatch.Patcher$Options { *; } -keep class org.lsposed.npatch.share.LSPConfig { *; } -keep class org.lsposed.npatch.share.PatchConfig { *; } --keepclassmembers class org.lsposed.patch.NPatch { - private ; -} +-keepclassmembers class org.lsposed.patch.NPatch { private ;} +-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 +-dontwarn com.squareup.moshi.** +-dontwarn retrofit2.** +-dontwarn okio.** \ No newline at end of file diff --git a/manager/src/main/java/org/lsposed/npatch/ui/page/NewPatchScreen.kt b/manager/src/main/java/org/lsposed/npatch/ui/page/NewPatchScreen.kt index 14314cd..e1bdf6f 100644 --- a/manager/src/main/java/org/lsposed/npatch/ui/page/NewPatchScreen.kt +++ b/manager/src/main/java/org/lsposed/npatch/ui/page/NewPatchScreen.kt @@ -493,9 +493,6 @@ private fun DoPatchBody(modifier: Modifier, navigator: DestinationsNavigator) { val onFinish: (Int, String?) -> Unit = { status, message -> scope.launch { if (status == PackageInstaller.STATUS_SUCCESS) { - // Shizuku 安装成功的情况 - // 此处不执行 navigateUp,等待 BroadcastReceiver 收到系统广播后再统一跳转 - // 这样可以保证应用确实已被系统注册 Log.i(TAG, "Install reported success, waiting for broadcast to navigate.") } else if (status != NPackageManager.STATUS_USER_CANCELLED) { // 安装失败处理