From b56313157e07f8542cc7392b165aae5c141b88fe Mon Sep 17 00:00:00 2001 From: JingMatrix Date: Tue, 23 Jul 2024 22:07:01 +0200 Subject: [PATCH] Update LSPlant for Android 15 Convert ScopedLocalRef to its reference, otherwise we get error: no viable conversion from 'ScopedLocalRef<_jobject *>' (aka 'lsplant::ScopedLocalRef<_jobject *>') to 'jobject' (aka '_jobject *') --- build.gradle.kts | 8 ++++---- core/src/main/jni/src/context.cpp | 2 +- core/src/main/jni/src/jni/hook_bridge.cpp | 8 ++++---- external/lsplant | 2 +- gradle/libs.versions.toml | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6bf835f3d2d..df9153edcb1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -67,11 +67,11 @@ val injectedPackageUid by extra(2000) val defaultManagerPackageName by extra("org.lsposed.manager") val verCode by extra(commitCount) val verName by extra(latestTag) -val androidTargetSdkVersion by extra(34) +val androidTargetSdkVersion by extra(35) val androidMinSdkVersion by extra(27) -val androidBuildToolsVersion by extra("34.0.0") -val androidCompileSdkVersion by extra(34) -val androidCompileNdkVersion by extra("26.3.11579264") +val androidBuildToolsVersion by extra("35.0.0") +val androidCompileSdkVersion by extra(35) +val androidCompileNdkVersion by extra("27.0.12077973") val androidSourceCompatibility by extra(JavaVersion.VERSION_21) val androidTargetCompatibility by extra(JavaVersion.VERSION_21) diff --git a/core/src/main/jni/src/context.cpp b/core/src/main/jni/src/context.cpp index 92272460741..1efb436b750 100644 --- a/core/src/main/jni/src/context.cpp +++ b/core/src/main/jni/src/context.cpp @@ -87,7 +87,7 @@ namespace lspd { LOGE("Failed to get cookie"); return; } - lsplant::MakeDexFileTrusted(env, cookie); + lsplant::MakeDexFileTrusted(env, cookie.get()); } RegisterResourcesHook(env); RegisterHookBridge(env); diff --git a/core/src/main/jni/src/jni/hook_bridge.cpp b/core/src/main/jni/src/jni/hook_bridge.cpp index 724013b4ed2..104ed284043 100644 --- a/core/src/main/jni/src/jni/hook_bridge.cpp +++ b/core/src/main/jni/src/jni/hook_bridge.cpp @@ -122,8 +122,8 @@ LSP_DEF_NATIVE_METHOD(jboolean, HookBridge, hookMethod, jboolean useModernApi, j auto before_method = JNI_GetObjectField(env, callback, before_method_field); auto after_method = JNI_GetObjectField(env, callback, after_method_field); auto callback_type = ModuleCallback { - .before_method = env->FromReflectedMethod(before_method), - .after_method = env->FromReflectedMethod(after_method), + .before_method = env->FromReflectedMethod(before_method.get()), + .after_method = env->FromReflectedMethod(after_method.get()), }; hook_item->modern_callbacks.emplace(priority, callback_type); } else { @@ -144,7 +144,7 @@ LSP_DEF_NATIVE_METHOD(jboolean, HookBridge, unhookMethod, jboolean useModernApi, JNIMonitor monitor(env, backup); if (useModernApi) { auto before_method = JNI_GetObjectField(env, callback, before_method_field); - auto before = env->FromReflectedMethod(before_method); + auto before = env->FromReflectedMethod(before_method.get()); for (auto i = hook_item->modern_callbacks.begin(); i != hook_item->modern_callbacks.end(); ++i) { if (before == i->second.before_method) { hook_item->modern_callbacks.erase(i); @@ -312,7 +312,7 @@ LSP_DEF_NATIVE_METHOD(jobjectArray, HookBridge, callbackSnapshot, jclass callbac auto before_method = JNI_ToReflectedMethod(env, clazz, callback.second.before_method, JNI_TRUE); auto after_method = JNI_ToReflectedMethod(env, clazz, callback.second.after_method, JNI_TRUE); auto callback_object = JNI_NewObject(env, callback_class, callback_ctor, before_method, after_method); - env->SetObjectArrayElement(modern, i++, env->NewLocalRef(callback_object)); + env->SetObjectArrayElement(modern, i++, env->NewLocalRef(callback_object.get())); } for (jsize i = 0; auto callback: hook_item->legacy_callbacks) { env->SetObjectArrayElement(legacy, i++, env->NewLocalRef(callback.second)); diff --git a/external/lsplant b/external/lsplant index b0edc5c07ca..9ce26897d3f 160000 --- a/external/lsplant +++ b/external/lsplant @@ -1 +1 @@ -Subproject commit b0edc5c07ca92ad7fdef21e7422f6ed3c0be5337 +Subproject commit 9ce26897d3fc9a07ded56b3da612d154c1031a62 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bf1652d3f30..85d068c0be1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.4.0" +agp = "8.6.0-beta01" kotlin = "1.9.23" nav = "2.7.7" appcenter = "5.0.4"