super.onBindMethods(); if (VirtualCore.get().isVAppProcess()) { addMethodProxy(new StaticMethodProxy("navigateUpTo") { @Override public Object call(Object who, Method method, Object... args) throws Throwable { addMethodProxy(new ReplaceLastUidMethodProxy("checkPermissionWithToken")); addMethodProxy(new isUserRunning()); addMethodProxy(new ResultStaticMethodProxy("updateConfiguration", 0)); addMethodProxy(new ReplaceCallingPkgMethodProxy("setAppLockedVerifying")); addMethodProxy(new StaticMethodProxy("checkUriPermission") { @Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { addMethodProxy(new StaticMethodProxy("getRecentTasks") { @Override public Object call(Object who, Method method, Object... args) throws Throwable { addMethodProxy(new StaticMethodProxy("getRunningTasks") { @Override public Object call(Object who, Method method, Object... args) throws Throwable {
@Override public boolean isEnvBad() { return ActivityManagerNative.getDefault.call() != getInvocationStub().getProxyInterface(); }
addInjector(new ActivityManagerStub()); addInjector(new PackageManagerStub()); return; addInjector(new ActivityManagerStub()); addInjector(new PackageManagerStub()); if (Build.VERSION.SDK_INT >= 28) {
addInjector(new ActivityManagerStub()); addInjector(new PackageManagerStub()); return; addInjector(new ActivityManagerStub()); addInjector(new PackageManagerStub()); addInjector(HCallbackStub.getDefault());
@Override public void inject() throws Throwable { if (BuildCompat.isOreo()) { //Android Oreo(8.X) Object singleton = ActivityManagerOreo.IActivityManagerSingleton.get(); Singleton.mInstance.set(singleton, getInvocationStub().getProxyInterface()); } else { if (ActivityManagerNative.gDefault.type() == IActivityManager.TYPE) { ActivityManagerNative.gDefault.set(getInvocationStub().getProxyInterface()); } else if (ActivityManagerNative.gDefault.type() == Singleton.TYPE) { Object gDefault = ActivityManagerNative.gDefault.get(); Singleton.mInstance.set(gDefault, getInvocationStub().getProxyInterface()); } } BinderInvocationStub hookAMBinder = new BinderInvocationStub(getInvocationStub().getBaseInterface()); hookAMBinder.copyMethodProxies(getInvocationStub()); ServiceManager.sCache.get().put(Context.ACTIVITY_SERVICE, hookAMBinder); }
super.onBindMethods(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { addMethodProxy(new StaticMethodProxy("setRequestedOrientation") { @Override public Object call(Object who, Method method, Object... args) throws Throwable { addMethodProxy(new StaticMethodProxy("navigateUpTo") { @Override public Object call(Object who, Method method, Object... args) throws Throwable { addMethodProxy(new ReplaceLastUidMethodProxy("checkPermissionWithToken")); addMethodProxy(new isUserRunning()); addMethodProxy(new ResultStaticMethodProxy("updateConfiguration", 0)); addMethodProxy(new ReplaceCallingPkgMethodProxy("setAppLockedVerifying")); addMethodProxy(new StaticMethodProxy("checkUriPermission") { @Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { addMethodProxy(new StaticMethodProxy("getRecentTasks") { @Override public Object call(Object who, Method method, Object... args) throws Throwable {
addInjector(new ActivityManagerStub()); addInjector(new PackageManagerStub()); return; addInjector(new ActivityManagerStub()); addInjector(new PackageManagerStub()); addInjector(HCallbackStub.getDefault());
@Override public boolean isEnvBad() { return ActivityManagerNative.getDefault.call() != getInvocationStub().getProxyInterface(); }
super.onBindMethods(); if (VirtualCore.get().isVAppProcess()) { addMethodProxy(new StaticMethodProxy("navigateUpTo") { @Override public Object call(Object who, Method method, Object... args) throws Throwable { addMethodProxy(new ReplaceLastUidMethodProxy("checkPermissionWithToken")); addMethodProxy(new isUserRunning()); addMethodProxy(new ResultStaticMethodProxy("updateConfiguration", 0)); addMethodProxy(new ReplaceCallingPkgMethodProxy("setAppLockedVerifying")); addMethodProxy(new StaticMethodProxy("checkUriPermission") { @Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { addMethodProxy(new StaticMethodProxy("getRecentTasks") { @Override public Object call(Object who, Method method, Object... args) throws Throwable {
@Override public boolean isEnvBad() { return ActivityManagerNative.getDefault.call() != getInvocationStub().getProxyInterface(); }
@Override public void inject() throws Throwable { if (BuildCompat.isOreo()) { //Android Oreo(8.X) Object singleton = ActivityManagerOreo.IActivityManagerSingleton.get(); Singleton.mInstance.set(singleton, getInvocationStub().getProxyInterface()); } else { if (ActivityManagerNative.gDefault.type() == IActivityManager.TYPE) { ActivityManagerNative.gDefault.set(getInvocationStub().getProxyInterface()); } else if (ActivityManagerNative.gDefault.type() == Singleton.TYPE) { Object gDefault = ActivityManagerNative.gDefault.get(); Singleton.mInstance.set(gDefault, getInvocationStub().getProxyInterface()); } } BinderInvocationStub hookAMBinder = new BinderInvocationStub(getInvocationStub().getBaseInterface()); hookAMBinder.copyMethodProxies(getInvocationStub()); ServiceManager.sCache.get().put(Context.ACTIVITY_SERVICE, hookAMBinder); }
@Override public void inject() throws Throwable { if (BuildCompat.isOreo()) { //Android Oreo(8.X) Object singleton = ActivityManagerOreo.IActivityManagerSingleton.get(); Singleton.mInstance.set(singleton, getInvocationStub().getProxyInterface()); } else { if (ActivityManagerNative.gDefault.type() == IActivityManager.TYPE) { ActivityManagerNative.gDefault.set(getInvocationStub().getProxyInterface()); } else if (ActivityManagerNative.gDefault.type() == Singleton.TYPE) { Object gDefault = ActivityManagerNative.gDefault.get(); Singleton.mInstance.set(gDefault, getInvocationStub().getProxyInterface()); } } BinderInvocationStub hookAMBinder = new BinderInvocationStub(getInvocationStub().getBaseInterface()); hookAMBinder.copyMethodProxies(getInvocationStub()); ServiceManager.sCache.get().put(Context.ACTIVITY_SERVICE, hookAMBinder); }