Skip to content

Commit

Permalink
Update LSPlant for Android 15
Browse files Browse the repository at this point in the history
Convert ScopedLocalRef to its reference, otherwise we get error:

no viable conversion from 'ScopedLocalRef<_jobject *>' (aka 'lsplant::ScopedLocalRef<_jobject *>') to 'jobject' (aka '_jobject *')
  • Loading branch information
JingMatrix committed Jul 23, 2024
1 parent 56a058b commit b563131
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 11 deletions.
8 changes: 4 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion core/src/main/jni/src/context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
8 changes: 4 additions & 4 deletions core/src/main/jni/src/jni/hook_bridge.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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);
Expand Down Expand Up @@ -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));
Expand Down
2 changes: 1 addition & 1 deletion external/lsplant
Submodule lsplant updated 51 files
+3 −0 .github/FUNDING.yml
+4 −12 .github/dependabot.yml
+13 −1 .github/workflows/build.yml
+8 −1 .github/workflows/maven.yml
+2 −2 README.md
+4 −4 build.gradle.kts
+1 −1 docs/doxygen-awesome-css
+5 −5 gradle/libs.versions.toml
+ gradle/wrapper/gradle-wrapper.jar
+1 −1 gradle/wrapper/gradle-wrapper.properties
+5 −2 gradlew
+2 −0 gradlew.bat
+15 −14 lsplant/build.gradle.kts
+0 −27 lsplant/src/main/jni/Android.mk
+0 −14 lsplant/src/main/jni/Application.mk
+11 −3 lsplant/src/main/jni/CMakeLists.txt
+14 −13 lsplant/src/main/jni/art/mirror/class.cxx
+15 −7 lsplant/src/main/jni/art/runtime/art_method.cxx
+22 −16 lsplant/src/main/jni/art/runtime/class_linker.cxx
+8 −3 lsplant/src/main/jni/art/runtime/dex_file.cxx
+0 −42 lsplant/src/main/jni/art/runtime/gc/collector_type.hpp
+0 −45 lsplant/src/main/jni/art/runtime/gc/gc_cause.hpp
+139 −0 lsplant/src/main/jni/art/runtime/gc/scoped_gc_critical_section.cxx
+0 −56 lsplant/src/main/jni/art/runtime/gc/scoped_gc_critical_section.hpp
+117 −0 lsplant/src/main/jni/art/runtime/handle.cxx
+0 −50 lsplant/src/main/jni/art/runtime/handle.hpp
+9 −4 lsplant/src/main/jni/art/runtime/instrumentation.cxx
+26 −10 lsplant/src/main/jni/art/runtime/jit/jit_code_cache.cxx
+10 −5 lsplant/src/main/jni/art/runtime/jni/jni_id_manager.cxx
+0 −18 lsplant/src/main/jni/art/runtime/obj_ptr.hpp
+0 −32 lsplant/src/main/jni/art/runtime/object_reference.hpp
+0 −25 lsplant/src/main/jni/art/runtime/reflective_handle.hpp
+0 −19 lsplant/src/main/jni/art/runtime/reflective_reference.hpp
+7 −21 lsplant/src/main/jni/art/runtime/runtime.cxx
+5 −4 lsplant/src/main/jni/art/runtime/thread.cxx
+5 −3 lsplant/src/main/jni/art/runtime/thread_list.cxx
+0 −5 lsplant/src/main/jni/art/runtime/value_object.hpp
+179 −0 lsplant/src/main/jni/common.cxx
+0 −176 lsplant/src/main/jni/common.hpp
+1 −1 lsplant/src/main/jni/external/dex_builder
+19 −0 lsplant/src/main/jni/include/lsplant.ixx
+2 −1 lsplant/src/main/jni/include/utils/hook_helper.hpp
+98 −109 lsplant/src/main/jni/include/utils/jni_helper.hpp
+142 −0 lsplant/src/main/jni/include/utils/jni_helper.ixx
+14 −0 lsplant/src/main/jni/include/utils/type_traits.hpp
+4 −4 lsplant/src/main/jni/logging.hpp
+39 −33 lsplant/src/main/jni/lsplant.cc
+2 −5 settings.gradle.kts
+1 −3 test/src/androidTest/java/org/lsposed/lsplant/UnitTest.java
+9 −2 test/src/main/jni/CMakeLists.txt
+5 −5 test/src/main/jni/test.cpp
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down

0 comments on commit b563131

Please sign in to comment.