@Override public void scheduleNewIntent(String creator, IBinder token, Intent intent) { NewIntentData data = new NewIntentData(); data.creator = creator; data.token = token; data.intent = intent; sendMessage(NEW_INTENT, data); }
@Override public void scheduleReceiver(String processName, ComponentName component, Intent intent, PendingResultData resultData) { ReceiverData receiverData = new ReceiverData(); receiverData.resultData = resultData; receiverData.intent = intent; receiverData.component = component; receiverData.processName = processName; sendMessage(RECEIVER, receiverData); }
@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { int uid = (int) result; return NativeEngine.onGetUid(uid); } }
public String getCurrentPackage() { return mBoundApplication != null ? mBoundApplication.appInfo.packageName : VPackageManager.get().getNameForUid(getVUid()); }
public static int onGetUid(int uid) { return VClientImpl.get().getBaseVUid(); } }
public static String getAppPkg() { return VClientImpl.get().getCurrentPackage(); }
public void setCrashHandler(CrashHandler handler) { VClientImpl.get().setCrashHandler(handler); }
protected static VDeviceInfo getDeviceInfo() { return VClientImpl.get().getDeviceInfo(); }
@Override public IBinder createProxyService(ComponentName component, IBinder binder) { return ProxyServiceFactory.getProxyService(getCurrentApplication(), component, binder); }
public void bindApplicationForActivity(final String packageName, final String processName, final Intent intent) { mUiCallback = VirtualCore.getUiCallback(intent); bindApplication(packageName, processName); }
public ClassLoader getClassLoader(String packageName) { Context context = createPackageContext(packageName); return context.getClassLoader(); }
private void sendMessage(int what, Object obj) { Message msg = Message.obtain(); msg.what = what; msg.obj = obj; mH.sendMessage(msg); }
@Override public void run() { try { r.process.client.finishActivity(r.token); } catch (RemoteException e) { e.printStackTrace(); } } });
public static String resverseRedirectedPath(String origPath) { try { return nativeReverseRedirectedPath(origPath); } catch (Throwable e) { VLog.e(TAG, VLog.getStackTraceString(e)); } return origPath; }
public static String getRedirectedPath(String redirectPath) { try { return nativeGetRedirectedPath(redirectPath); } catch (Throwable e) { VLog.e(TAG, VLog.getStackTraceString(e)); } return redirectPath; }
@Override public String getString(int columnIndex) { String originalPath = super.getString(columnIndex); if (columnIndex < 0 || columnIndex != this.dataIndex) { return originalPath; } return NativeEngine.getEscapePath(originalPath); } }
protected static int getBaseVUid() { return VClientImpl.get().getBaseVUid(); }
public ClassLoader getClassLoader(ApplicationInfo appInfo) { Context context = createPackageContext(appInfo.packageName); return context.getClassLoader(); }