diff --git a/Bridge/src/main/java/com/elderdrivers/riru/xposed/dexmaker/DexMakerUtils.java b/Bridge/src/main/java/com/elderdrivers/riru/xposed/dexmaker/DexMakerUtils.java index 472c8347c..132833c00 100644 --- a/Bridge/src/main/java/com/elderdrivers/riru/xposed/dexmaker/DexMakerUtils.java +++ b/Bridge/src/main/java/com/elderdrivers/riru/xposed/dexmaker/DexMakerUtils.java @@ -14,10 +14,12 @@ import external.com.android.dx.Local; import external.com.android.dx.TypeId; +import static de.robv.android.xposed.XposedInit.INSTALLER_DATA_BASE_DIR; + public class DexMakerUtils { private static final boolean IN_MEMORY_DEX_ELIGIBLE = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O; - private static final String COMPAT_LIST_PATH = "/data/misc/riru/modules/edxposed/compatlist/"; + private static final String COMPAT_LIST_PATH = INSTALLER_DATA_BASE_DIR + "/conf/compatlist/"; public static boolean shouldUseInMemoryHook() { if (!IN_MEMORY_DEX_ELIGIBLE) { diff --git a/Bridge/src/main/java/de/robv/android/xposed/XposedInit.java b/Bridge/src/main/java/de/robv/android/xposed/XposedInit.java index 390007ea6..b0f20f036 100644 --- a/Bridge/src/main/java/de/robv/android/xposed/XposedInit.java +++ b/Bridge/src/main/java/de/robv/android/xposed/XposedInit.java @@ -37,7 +37,7 @@ public final class XposedInit { public static boolean startsSystemServer = false; private static final String startClassName = ""; // ed: no support for tool process anymore - public static final String INSTALLER_PACKAGE_NAME = "com.solohsu.android.edxp.manager"; + public static final String INSTALLER_PACKAGE_NAME = "org.meowcat.edxposed.manager"; public static final String INSTALLER_LEGACY_PACKAGE_NAME = "de.robv.android.xposed.installer"; @SuppressLint("SdCardPath") public static final String INSTALLER_DATA_BASE_DIR = Build.VERSION.SDK_INT >= 24 diff --git a/Core/jni/main/inject/config_manager.cpp b/Core/jni/main/inject/config_manager.cpp index 478e5ace0..0f551d6a5 100644 --- a/Core/jni/main/inject/config_manager.cpp +++ b/Core/jni/main/inject/config_manager.cpp @@ -11,23 +11,26 @@ #include #include #include +#include #include "config_manager.h" -#define BLACK_LIST_PATH "/data/misc/riru/modules/edxposed/blacklist/" -#define WHITE_LIST_PATH "/data/misc/riru/modules/edxposed/whitelist/" -#define USE_WHITE_LIST "/data/misc/riru/modules/edxposed/usewhitelist" -#define GLOBAL_MODE "/data/misc/riru/modules/edxposed/forceglobal" -#define DYNAMIC_MODULES "/data/misc/riru/modules/edxposed/dynamicmodules" - static char package_name[256]; static bool global_mode = false; static bool dynamic_modules = false; static bool inited = false; +static bool use_prot_storage = GetAndroidApiLevel() >= ANDROID_N; +static std::string config_path = use_prot_storage ? "/data/user_de/0/org.meowcat.edxposed.manager/conf/" + : "/data/user/0/org.meowcat.edxposed.manager/conf/"; +static std::string blacklist_path = config_path + "blacklist/"; +static std::string whitelist_path = config_path + "whitelist/"; +static std::string use_whitelist_path = config_path + "usewhitelist"; +static std::string forceglobal_path = config_path + "forceglobal"; +static std::string dynamicmodules_path = config_path + "dynamicmodules"; void initOnce() { if (!inited) { - global_mode = access(GLOBAL_MODE, F_OK) == 0; - dynamic_modules = access(DYNAMIC_MODULES, F_OK) == 0; + global_mode = access(forceglobal_path.c_str(), F_OK) == 0; + dynamic_modules = access(dynamicmodules_path.c_str(), F_OK) == 0; inited = true; } } @@ -51,22 +54,22 @@ int is_app_need_hook(JNIEnv *env, jstring appDataDir) { } } env->ReleaseStringUTFChars(appDataDir, app_data_dir); - if (strcmp(package_name, "com.solohsu.android.edxp.manager") == 0) { + if (strcmp(package_name, "org.meowcat.edxposed.manager") == 0) { // always hook installer app return 1; } - bool use_white_list = access(USE_WHITE_LIST, F_OK) == 0; - bool white_list_exists = access(WHITE_LIST_PATH, F_OK) == 0; - bool black_list_exists = access(BLACK_LIST_PATH, F_OK) == 0; + bool use_white_list = access(use_whitelist_path.c_str(), F_OK) == 0; + bool white_list_exists = access(whitelist_path.c_str(), F_OK) == 0; + bool black_list_exists = access(blacklist_path.c_str(), F_OK) == 0; if (use_white_list && white_list_exists) { char path[PATH_MAX]; - snprintf(path, PATH_MAX, WHITE_LIST_PATH "%s", package_name); + snprintf(path, PATH_MAX, "%s%s", whitelist_path.c_str(), package_name); int res = access(path, F_OK) == 0; LOGD("use whitelist, res=%d", res); return res; } else if (!use_white_list && black_list_exists) { char path[PATH_MAX]; - snprintf(path, PATH_MAX, BLACK_LIST_PATH "%s", package_name); + snprintf(path, PATH_MAX, "%s%s", blacklist_path.c_str(), package_name); int res = access(path, F_OK) != 0; LOGD("use blacklist, res=%d", res); return res; diff --git a/Core/template_override/module.prop b/Core/template_override/module.prop index f47fa3dfa..4ba343cc3 100644 --- a/Core/template_override/module.prop +++ b/Core/template_override/module.prop @@ -1,7 +1,7 @@ id=riru_edxposed name=Riru - Ed Xposed -version=v0.2.9.8_beta1 -versionCode=2981 +version=v0.2.9.9 +versionCode=2990 author=givein2u & MlgmXyysd description=Magisk version of Xposed. Require Riru - Core installed. minMagisk=17000 diff --git a/Core/template_override/riru_module.prop b/Core/template_override/riru_module.prop index 4b86b124d..ce78c8faf 100644 --- a/Core/template_override/riru_module.prop +++ b/Core/template_override/riru_module.prop @@ -1,5 +1,5 @@ name=Ed Xposed -version=v0.2.9.8_beta1 -versionCode=2981 +version=v0.2.9.9 +versionCode=2990 author=givein2u & MlgmXyysd description=Magisk version of Xposed. Require Riru - Core installed. diff --git a/Core/template_override/system/framework/edconfig.dex b/Core/template_override/system/framework/edconfig.dex index 4508604a9..1d34badda 100644 --- a/Core/template_override/system/framework/edconfig.dex +++ b/Core/template_override/system/framework/edconfig.dex @@ -1,4 +1,4 @@ -version=90.0-0.2.9.8 (by Elder Driver) +version=0.2.9.9 arch=arm64 minsdk=23 maxsdk=28