From f63bcabf1b868e453f16126a0ab2a80014539877 Mon Sep 17 00:00:00 2001 From: WhiteChi Date: Sun, 26 Nov 2023 18:32:55 +0800 Subject: [PATCH] =?UTF-8?q?`Shamrock`:=20=E6=B7=BB=E5=8A=A0native=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E7=BB=95=E8=BF=87=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 2 ++ xposed/src/main/assets/native_init | 1 + xposed/src/main/cpp/CMakeLists.txt | 4 ++-- xposed/src/main/cpp/clover.cpp | 19 ++++++++++++++++++ xposed/src/main/cpp/lsposed.h | 20 +++++++++++++++++++ xposed/src/main/cpp/xposed.cpp | 5 ----- .../shamrock/xposed/loader/NativeLoader.kt | 2 -- 7 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 xposed/src/main/assets/native_init create mode 100644 xposed/src/main/cpp/clover.cpp create mode 100644 xposed/src/main/cpp/lsposed.h delete mode 100644 xposed/src/main/cpp/xposed.cpp diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b33864a..510ad2d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,6 +18,8 @@ android:supportsRtl="true" android:theme="@style/Theme.Shamrock" android:zygotePreloadName="@string/app_name" + android:multiArch="true" + android:extractNativeLibs="false" tools:targetApi="31"> +#include +#include +#include +#include +#include "lsposed.h" + +void on_library_loaded(const char *name, void *handle) { + if (std::string(name) == "libc.so") { + void *target = dlsym(handle, "__system_property_get"); + + } +} + +extern "C" [[gnu::visibility("default")]] [[gnu::used]] +NativeOnModuleLoaded native_init(const NativeAPIEntries *entries) { + + return on_library_loaded; +} \ No newline at end of file diff --git a/xposed/src/main/cpp/lsposed.h b/xposed/src/main/cpp/lsposed.h new file mode 100644 index 0000000..c678d62 --- /dev/null +++ b/xposed/src/main/cpp/lsposed.h @@ -0,0 +1,20 @@ +#ifndef SHAMROCK_LSPOSED_H +#define SHAMROCK_LSPOSED_H + +#include "stdint.h" + +typedef int (*HookFunType)(void *func, void *replace, void **backup); + +typedef int (*UnhookFunType)(void *func); + +typedef void (*NativeOnModuleLoaded)(const char *name, void *handle); + +typedef struct { + uint32_t version; + HookFunType hook_func; + UnhookFunType unhook_func; +} NativeAPIEntries; + +typedef NativeOnModuleLoaded (*NativeInit)(const NativeAPIEntries *entries); + +#endif //SHAMROCK_LSPOSED_H diff --git a/xposed/src/main/cpp/xposed.cpp b/xposed/src/main/cpp/xposed.cpp deleted file mode 100644 index e99001e..0000000 --- a/xposed/src/main/cpp/xposed.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include -#include -#include -#include - diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/loader/NativeLoader.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/loader/NativeLoader.kt index ba0d006..cb30a11 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/loader/NativeLoader.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/loader/NativeLoader.kt @@ -16,8 +16,6 @@ internal object NativeLoader { return externalLibPath.resolve("libffmpegkit.so").exists() } - private var isInitShamrock = false - /** * 使目标进程可以使用来自模块的库 */