This commit is contained in:
Shauli Bracha 2019-03-17 12:50:07 +02:00
commit 801f5539c1
11 changed files with 38 additions and 8 deletions

View File

@ -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

View File

@ -11,10 +11,15 @@
#include <include/android_build.h>
#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) {

View File

@ -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`

View File

@ -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 "************************************"
}

View File

@ -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

View File

@ -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.

View File

@ -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

BIN
Core/template_override/system/lib/libwhale.so Normal file → Executable file

Binary file not shown.

BIN
Core/template_override/system/lib64/libwhale.so Normal file → Executable file

Binary file not shown.

BIN
Core/template_override/system_x86/lib/libwhale.so Normal file → Executable file

Binary file not shown.

BIN
Core/template_override/system_x86/lib64/libwhale.so Normal file → Executable file

Binary file not shown.