@Override public boolean isEnvBad() { return getOs() != getInvocationStub().getProxyInterface(); } }
public LibCoreStub() { super(new MethodInvocationStub<Object>(getOs())); }
@Override protected void onBindMethods() { super.onBindMethods(); addMethodProxy(new ReplaceUidMethodProxy("chown", 1)); addMethodProxy(new ReplaceUidMethodProxy("fchown", 1)); addMethodProxy(new ReplaceUidMethodProxy("getpwuid", 0)); addMethodProxy(new ReplaceUidMethodProxy("lchown", 1)); addMethodProxy(new ReplaceUidMethodProxy("setuid", 0)); }
@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { if (result != null) { Reflect ucred = Reflect.on(result); int uid = ucred.get("uid"); if (uid == VirtualCore.get().myUid()) { ucred.set("uid", getBaseVUid()); } } return result; } }
@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { int uid = (int) st_uid.get(result); if (uid == VirtualCore.get().myUid()) { st_uid.set(result, getBaseVUid()); } return result; }
@Override public void inject() throws Throwable { Libcore.os.set(getInvocationStub().getProxyInterface()); }
addInjector(new LibCoreStub()); addInjector(new ActivityManagerStub()); addInjector(new PackageManagerStub());
@Override public boolean isEnvBad() { return getOs() != getInvocationStub().getProxyInterface(); } }
public LibCoreStub() { super(new MethodInvocationStub<Object>(getOs())); }
@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { if (result != null) { Reflect ucred = Reflect.on(result); int uid = ucred.get("uid"); if (uid == VirtualCore.get().myUid()) { ucred.set("uid", getBaseVUid()); } } return result; } }
@Override protected void onBindMethods() { super.onBindMethods(); addMethodProxy(new ReplaceUidMethodProxy("chown", 1)); addMethodProxy(new ReplaceUidMethodProxy("fchown", 1)); addMethodProxy(new ReplaceUidMethodProxy("getpwuid", 0)); addMethodProxy(new ReplaceUidMethodProxy("lchown", 1)); addMethodProxy(new ReplaceUidMethodProxy("setuid", 0)); }
@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { int uid = (int) st_uid.get(result); if (uid == VirtualCore.get().myUid()) { st_uid.set(result, getBaseVUid()); } return result; }
@Override public void inject() throws Throwable { Libcore.os.set(getInvocationStub().getProxyInterface()); }
addInjector(new LibCoreStub()); addInjector(new ActivityManagerStub()); addInjector(new PackageManagerStub());
@Override public boolean isEnvBad() { return getOs() != getInvocationStub().getProxyInterface(); } }
public LibCoreStub() { super(new MethodInvocationStub<Object>(getOs())); }
@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { if (result != null) { Reflect ucred = Reflect.on(result); int uid = ucred.get("uid"); if (uid == VirtualCore.get().myUid()) { ucred.set("uid", getBaseVUid()); } } return result; } }
@Override protected void onBindMethods() { super.onBindMethods(); addMethodProxy(new ReplaceUidMethodProxy("chown", 1)); addMethodProxy(new ReplaceUidMethodProxy("fchown", 1)); addMethodProxy(new ReplaceUidMethodProxy("getpwuid", 0)); addMethodProxy(new ReplaceUidMethodProxy("lchown", 1)); addMethodProxy(new ReplaceUidMethodProxy("setuid", 0)); }
@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { int uid = (int) st_uid.get(result); if (uid == VirtualCore.get().myUid()) { st_uid.set(result, getBaseVUid()); } return result; }
@Override public void inject() throws Throwable { Libcore.os.set(getInvocationStub().getProxyInterface()); }