diff --git a/Core/build.gradle b/Core/build.gradle index 77d36d30..bcb47d16 100644 --- a/Core/build.gradle +++ b/Core/build.gradle @@ -1,7 +1,7 @@ import org.gradle.internal.os.OperatingSystem; apply plugin: 'com.android.library' -version "v0.3.1.5_beta-SNAPSHOT" +version "v0.3.1.6_beta-SNAPSHOT" extensions["module_name"] = "EdXposed" android { compileSdkVersion 28 diff --git a/Core/jni/main/native_hook/riru_hook.cpp b/Core/jni/main/native_hook/riru_hook.cpp index 4a497c53..4702b1c4 100644 --- a/Core/jni/main/native_hook/riru_hook.cpp +++ b/Core/jni/main/native_hook/riru_hook.cpp @@ -11,10 +11,15 @@ #include #include "riru_hook.h" +int api_level = 0; + #define PROP_KEY_COMPILER_FILTER "dalvik.vm.dex2oat-filter" #define PROP_KEY_COMPILER_FLAGS "dalvik.vm.dex2oat-flags" +#define PROP_KEY_USEJITPROFILES "dalvik.vm.usejitprofiles" +#define PROP_KEY_PM_BG_DEXOPT "pm.dexopt.bg-dexopt" #define PROP_VALUE_COMPILER_FILTER "quicken" #define PROP_VALUE_COMPILER_FLAGS "--inline-max-code-units=0" +#define PROP_VALUE_PM_BG_DEXOPT "speed" #define XHOOK_REGISTER(NAME) \ if (xhook_register(".*", #NAME, (void*) new_##NAME, (void **) &old_##NAME) == 0) { \ @@ -43,6 +48,20 @@ NEW_FUNC_DEF(int, __system_property_get, const char *key, char *value) { strcpy(value, PROP_VALUE_COMPILER_FLAGS); LOGI("system_property_get: %s -> %s", key, value); } + if (api_level == ANDROID_O_MR1) { + // https://android.googlesource.com/platform/art/+/f5516d38736fb97bfd0435ad03bbab17ddabbe4e + // Android 8.1 add a fatal check for debugging (removed in Android 9.0), + // which will be triggered by EdXposed in cases where target method is hooked + // (native flag set) after it has been called several times(getCounter() return positive number) + if (strcmp(PROP_KEY_USEJITPROFILES, key) == 0) { + strcpy(value, "false"); + } else if (strcmp(PROP_KEY_PM_BG_DEXOPT, key) == 0) { + // use speed as bg-dexopt filter since that speed-profile won't work after + // jit profiles is disabled + strcpy(value, PROP_VALUE_PM_BG_DEXOPT); + } + LOGD("system_property_get: %s -> %s", key, value); + } } return res; } @@ -59,6 +78,15 @@ NEW_FUNC_DEF(std::string, res = PROP_VALUE_COMPILER_FLAGS; LOGI("android::base::GetProperty: %s -> %s", key.c_str(), res.c_str()); } + if (api_level == ANDROID_O_MR1) { + // see __system_property_get hook above for explanations + if (strcmp(PROP_KEY_USEJITPROFILES, key.c_str()) == 0) { + res = "false"; + } else if (strcmp(PROP_KEY_PM_BG_DEXOPT, key.c_str()) == 0) { + res = PROP_VALUE_PM_BG_DEXOPT; + } + LOGD("android::base::GetProperty: %s -> %s", key.c_str(), res.c_str()); + } return res; } @@ -66,6 +94,8 @@ void install_riru_hooks() { LOGI("install riru hook"); + api_level = GetAndroidApiLevel(); + XHOOK_REGISTER(__system_property_get); if (GetAndroidApiLevel() >= ANDROID_P) { diff --git a/Core/template_override/common/util_functions.sh b/Core/template_override/common/util_functions.sh index d5bc3f8e..32e74e97 100644 --- a/Core/template_override/common/util_functions.sh +++ b/Core/template_override/common/util_functions.sh @@ -1,6 +1,6 @@ #!/system/bin/sh -EDXP_VERSION="0.3.1.5_beta-SNAPSHOT (3150)" +EDXP_VERSION="0.3.1.6_beta-SNAPSHOT (3160)" ANDROID_SDK=`getprop ro.build.version.sdk` BUILD_DESC=`getprop ro.build.description` PRODUCT=`getprop ro.build.product` diff --git a/Core/template_override/config.sh b/Core/template_override/config.sh index d644a3d6..299bbde4 100644 --- a/Core/template_override/config.sh +++ b/Core/template_override/config.sh @@ -41,7 +41,7 @@ LATESTARTSERVICE=false print_modname() { ui_print "************************************" - ui_print " Riru - Ed Xposed v0.3.1.5 " + ui_print " Riru - Ed Xposed v0.3.1.6 " ui_print "************************************" } diff --git a/Core/template_override/module.prop b/Core/template_override/module.prop index 0d135f09..5f43b227 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.3.1.5_beta-SNAPSHOT -versionCode=3150 +version=v0.3.1.6_beta-SNAPSHOT +versionCode=3160 author=solohsu & 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 9636ce68..d4c39dd3 100644 --- a/Core/template_override/riru_module.prop +++ b/Core/template_override/riru_module.prop @@ -1,5 +1,5 @@ name=Ed Xposed -version=v0.3.1.5_beta-SNAPSHOT -versionCode=3150 +version=v0.3.1.6_beta-SNAPSHOT +versionCode=3160 author=solohsu & 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 12d12e21..ce0a3ce2 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.3.1.5-beta-SNAPSHOT +version=90.0-0.3.1.6-beta-SNAPSHOT arch=arm64 minsdk=23 maxsdk=28 diff --git a/Core/template_override/system/lib/libwhale.so b/Core/template_override/system/lib/libwhale.so old mode 100644 new mode 100755 index 0e12ebb1..227fcf31 Binary files a/Core/template_override/system/lib/libwhale.so and b/Core/template_override/system/lib/libwhale.so differ diff --git a/Core/template_override/system/lib64/libwhale.so b/Core/template_override/system/lib64/libwhale.so old mode 100644 new mode 100755 index 5c4451db..c3ebe73f Binary files a/Core/template_override/system/lib64/libwhale.so and b/Core/template_override/system/lib64/libwhale.so differ diff --git a/Core/template_override/system_x86/lib/libwhale.so b/Core/template_override/system_x86/lib/libwhale.so old mode 100644 new mode 100755 index cac26c60..15ae68bf Binary files a/Core/template_override/system_x86/lib/libwhale.so and b/Core/template_override/system_x86/lib/libwhale.so differ diff --git a/Core/template_override/system_x86/lib64/libwhale.so b/Core/template_override/system_x86/lib64/libwhale.so old mode 100644 new mode 100755 index 4ab85213..d685cdd0 Binary files a/Core/template_override/system_x86/lib64/libwhale.so and b/Core/template_override/system_x86/lib64/libwhale.so differ