diff --git a/VirtualApp/app/src/main/java/io/virtualapp/sys/InstallerActivity.java b/VirtualApp/app/src/main/java/io/virtualapp/sys/InstallerActivity.java index 2052e73db..a826647d5 100644 --- a/VirtualApp/app/src/main/java/io/virtualapp/sys/InstallerActivity.java +++ b/VirtualApp/app/src/main/java/io/virtualapp/sys/InstallerActivity.java @@ -179,6 +179,8 @@ private boolean dealUpdate(List appList) { } List magicApps = Arrays.asList(EncodeUtils.decode("Y29tLmxiZS5wYXJhbGxlbA=="), // com.lbe.parallel + EncodeUtils.decode("aW8udmlydHVhbGFwcC5zYW5kdnhwb3NlZA=="), // io.virtualapp.sandvxposed + EncodeUtils.decode("Y29tLnNrLnNwYXRjaA=="), // com.sk.spatch EncodeUtils.decode("Y29tLnFpaG9vLm1hZ2lj"), // com.qihoo.magic EncodeUtils.decode("Y29tLmRvdWJsZW9wZW4=")); // com.doubleopen diff --git a/VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/am/MethodProxies.java b/VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/am/MethodProxies.java index f77fad979..1d42d0962 100644 --- a/VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/am/MethodProxies.java +++ b/VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/am/MethodProxies.java @@ -375,13 +375,8 @@ public String getMethodName() { @Override public Object call(Object who, Method method, Object... args) throws Throwable { - String packageName = (String) args[1]; - if (Constants.WECHAT_PACKAGE.equals(packageName)) { - // 解决微信界面跳转狂闪的问题 - return null; - } else { - return super.call(who, method, args); - } + // Many application crash/darkscreen if not return null. + return null; } } diff --git a/VirtualApp/lib/src/main/jni/Foundation/VMPatch.cpp b/VirtualApp/lib/src/main/jni/Foundation/VMPatch.cpp index 706e8e101..7c2c7a89a 100644 --- a/VirtualApp/lib/src/main/jni/Foundation/VMPatch.cpp +++ b/VirtualApp/lib/src/main/jni/Foundation/VMPatch.cpp @@ -427,7 +427,10 @@ void hookAndroidVM(JArrayClass javaMethods, } } measureNativeOffset(isArt); - replaceGetCallingUid(isArt); + // Crash on Q if hook directly by modify entrypoint of function. + // Just skip this step on Q and get never crash + if(apiLevel<=28) + replaceGetCallingUid(isArt); replaceOpenDexFileMethod(javaMethods.getElement(OPEN_DEX).get(), isArt, apiLevel); replaceCameraNativeSetupMethod(javaMethods.getElement(CAMERA_SETUP).get(), @@ -492,4 +495,4 @@ void *getDvmOrArtSOHandle() { soInfo = RTLD_DEFAULT; } return soInfo; -} \ No newline at end of file +}