Commit de263333 authored by swift_gan's avatar swift_gan

support Android Q

parent 3c957c8e
......@@ -20,12 +20,20 @@ import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
public class MyApp extends Application {
//if you want test Android Q, please set true, because SDK_INT of Android Q is still 28
public final static boolean testAndroidQ = false;
@Override
public void onCreate() {
super.onCreate();
SandHookConfig.DEBUG = BuildConfig.DEBUG;
if (testAndroidQ) {
SandHookConfig.SDK_INT = 29;
}
SandHook.disableVMInline();
try {
......@@ -46,6 +54,12 @@ public class MyApp extends Application {
XposedCompat.classLoader = getClassLoader();
XposedCompat.isFirstApplication= true;
//some error when invoke backup in Android Q
if (SandHookConfig.SDK_INT >= 29) {
XposedCompat.useNewDexMaker = false;
XposedCompat.useInternalStub = false;
}
XposedHelpers.findAndHookMethod(Activity.class, "onResume", new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
......
......@@ -54,7 +54,12 @@ bool ArtMethod::isStatic() {
}
bool ArtMethod::isCompiled() {
return getQuickCodeEntry() != CastArtMethod::quickToInterpreterBridge && getQuickCodeEntry() != CastArtMethod::genericJniStub;
if (SDK_INT >= ANDROID_Q) {
return getQuickCodeEntry() != CastArtMethod::quickToInterpreterBridge;
} else {
return getQuickCodeEntry() != CastArtMethod::quickToInterpreterBridge &&
getQuickCodeEntry() != CastArtMethod::genericJniStub;
}
}
bool ArtMethod::isThumbCode() {
......
......@@ -54,7 +54,7 @@ public class SandHook {
initTestOffset();
initThreadPeer();
SandHookMethodResolver.init();
return initNative(Build.VERSION.SDK_INT, SandHookConfig.DEBUG);
return initNative(SandHookConfig.SDK_INT, SandHookConfig.DEBUG);
}
private static void initThreadPeer() {
......
package com.swift.sandhook;
import android.os.Build;
import com.swift.sandhook.lib.BuildConfig;
public class SandHookConfig {
public volatile static int SDK_INT = Build.VERSION.SDK_INT;
public volatile static String libSandHookPath;
public volatile static boolean DEBUG = BuildConfig.DEBUG;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment