From 155a76a43e006dfe151bedf04b8f1235f2d751c9 Mon Sep 17 00:00:00 2001 From: NkBe Date: Mon, 18 Aug 2025 13:36:07 +0800 Subject: [PATCH] fix: lspatch metadata decode crash Co-Authored-By: o0kam1 --- build.gradle.kts | 4 ++-- .../ui/viewmodel/manage/AppManageViewModel.kt | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 54a2402..164c5da 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -51,10 +51,10 @@ val verCode by extra(commitCount) val verName by extra("0.7.1") val coreVerCode by extra(coreCommitCount) val coreVerName by extra(coreLatestTag) -val androidMinSdkVersion by extra(28) +val androidMinSdkVersion by extra(27) val androidTargetSdkVersion by extra(36) val androidCompileSdkVersion by extra(36) -val androidCompileNdkVersion by extra("29.0.13113456") +val androidCompileNdkVersion by extra("29.0.13846066") val androidBuildToolsVersion by extra("36.0.0") val androidSourceCompatibility by extra(JavaVersion.VERSION_21) val androidTargetCompatibility by extra(JavaVersion.VERSION_21) diff --git a/manager/src/main/java/org/lsposed/lspatch/ui/viewmodel/manage/AppManageViewModel.kt b/manager/src/main/java/org/lsposed/lspatch/ui/viewmodel/manage/AppManageViewModel.kt index 51da66e..c56c652 100644 --- a/manager/src/main/java/org/lsposed/lspatch/ui/viewmodel/manage/AppManageViewModel.kt +++ b/manager/src/main/java/org/lsposed/lspatch/ui/viewmodel/manage/AppManageViewModel.kt @@ -40,11 +40,14 @@ class AppManageViewModel : ViewModel() { val appList: List> by derivedStateOf { LSPPackageManager.appList.mapNotNull { appInfo -> - appInfo.app.metaData?.getString("lspatch")?.let { - val json = Base64.decode(it, Base64.DEFAULT).toString(Charsets.UTF_8) - Log.d(TAG, "Read patched config: $json") - appInfo to Gson().fromJson(json, PatchConfig::class.java) - } + runCatching { + appInfo.app.metaData?.getString("lspatch")?.let { + val json = Base64.decode(it, Base64.DEFAULT).toString(Charsets.UTF_8) + Log.d(TAG, "Read patched config: $json") + val config = Gson().fromJson(json, PatchConfig::class.java) + if (config?.lspConfig == null) null else appInfo to config + } + }.getOrNull() }.also { Log.d(TAG, "Loaded ${it.size} patched apps") }