public void bindApplicationForActivity(final String packageName, final String processName, final Intent intent) { mUiCallback = VirtualCore.getUiCallback(intent); bindApplication(packageName, processName); }
private void handleReceiver(ReceiverData data) { BroadcastReceiver.PendingResult result = data.resultData.build(); try { if (!isBound()) { bindApplication(data.component.getPackageName(), data.processName); } Context context = mInitialApplication.getBaseContext(); Context receiverContext = ContextImpl.getReceiverRestrictedContext.call(context); String className = data.component.getClassName(); BroadcastReceiver receiver = (BroadcastReceiver) context.getClassLoader().loadClass(className).newInstance(); mirror.android.content.BroadcastReceiver.setPendingResult.call(receiver, result); data.intent.setExtrasClassLoader(context.getClassLoader()); if (data.intent.getComponent() == null) { data.intent.setComponent(data.component); } receiver.onReceive(receiverContext, data.intent); if (mirror.android.content.BroadcastReceiver.getPendingResult.call(receiver) != null) { result.finish(); } } catch (Exception e) { // must be this for misjudge of anti-virus!! throw new RuntimeException(String.format("Unable to start receiver: %s ", data.component), e); } VActivityManager.get().broadcastFinish(data.resultData); }
@Override public IBinder acquireProviderClient(ProviderInfo info) { if (mTempLock != null) { mTempLock.block(); } if (!isBound()) { VClientImpl.get().bindApplication(info.packageName, info.processName); } IInterface provider = null; String[] authorities = info.authority.split(";"); String authority = authorities.length == 0 ? info.authority : authorities[0]; ContentResolver resolver = VirtualCore.get().getContext().getContentResolver(); ContentProviderClient client = null; try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { client = resolver.acquireUnstableContentProviderClient(authority); } else { client = resolver.acquireContentProviderClient(authority); } } catch (Throwable e) { VLog.e(TAG, "", e); } if (client != null) { provider = mirror.android.content.ContentProviderClient.mContentProvider.get(client); client.release(); } return provider != null ? provider.asBinder() : null; }
if (!VClientImpl.get().isBound()) { ServiceInfo info = Reflect.on(msg.obj).get("info"); VClientImpl.get().bindApplication(info.packageName, info.processName);
public void bindApplicationForActivity(final String packageName, final String processName, final Intent intent) { mUiCallback = VirtualCore.getUiCallback(intent); bindApplication(packageName, processName); }
private void handleReceiver(ReceiverData data) { BroadcastReceiver.PendingResult result = data.resultData.build(); try { if (!isBound()) { bindApplication(data.component.getPackageName(), data.processName); } Context context = mInitialApplication.getBaseContext(); Context receiverContext = ContextImpl.getReceiverRestrictedContext.call(context); String className = data.component.getClassName(); BroadcastReceiver receiver = (BroadcastReceiver) context.getClassLoader().loadClass(className).newInstance(); mirror.android.content.BroadcastReceiver.setPendingResult.call(receiver, result); data.intent.setExtrasClassLoader(context.getClassLoader()); if (data.intent.getComponent() == null) { data.intent.setComponent(data.component); } receiver.onReceive(receiverContext, data.intent); if (mirror.android.content.BroadcastReceiver.getPendingResult.call(receiver) != null) { result.finish(); } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException( "Unable to start receiver " + data.component + ": " + e.toString(), e); } VActivityManager.get().broadcastFinish(data.resultData); }
private void handleReceiver(ReceiverData data) { BroadcastReceiver.PendingResult result = data.resultData.build(); try { if (!isBound()) { bindApplication(data.component.getPackageName(), data.processName); } Context context = mInitialApplication.getBaseContext(); Context receiverContext = ContextImpl.getReceiverRestrictedContext.call(context); String className = data.component.getClassName(); BroadcastReceiver receiver = (BroadcastReceiver) context.getClassLoader().loadClass(className).newInstance(); mirror.android.content.BroadcastReceiver.setPendingResult.call(receiver, result); data.intent.setExtrasClassLoader(context.getClassLoader()); if (data.intent.getComponent() == null) { data.intent.setComponent(data.component); } receiver.onReceive(receiverContext, data.intent); if (mirror.android.content.BroadcastReceiver.getPendingResult.call(receiver) != null) { result.finish(); } } catch (Exception e) { // must be this for misjudge of anti-virus!! throw new RuntimeException(String.format("Unable to start receiver: %s ", data.component), e); } VActivityManager.get().broadcastFinish(data.resultData); }
@Override public IBinder acquireProviderClient(ProviderInfo info) { if (mTempLock != null) { mTempLock.block(); } if (!isBound()) { VClientImpl.get().bindApplication(info.packageName, info.processName); } IInterface provider = null; String[] authorities = info.authority.split(";"); String authority = authorities.length == 0 ? info.authority : authorities[0]; ContentResolver resolver = VirtualCore.get().getContext().getContentResolver(); ContentProviderClient client = null; try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { client = resolver.acquireUnstableContentProviderClient(authority); } else { client = resolver.acquireContentProviderClient(authority); } } catch (Throwable e) { e.printStackTrace(); } if (client != null) { provider = mirror.android.content.ContentProviderClient.mContentProvider.get(client); client.release(); } return provider != null ? provider.asBinder() : null; }
@Override public IBinder acquireProviderClient(ProviderInfo info) { if (mTempLock != null) { mTempLock.block(); } if (!isBound()) { VClientImpl.get().bindApplication(info.packageName, info.processName); } IInterface provider = null; String[] authorities = info.authority.split(";"); String authority = authorities.length == 0 ? info.authority : authorities[0]; ContentResolver resolver = VirtualCore.get().getContext().getContentResolver(); ContentProviderClient client = null; try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { client = resolver.acquireUnstableContentProviderClient(authority); } else { client = resolver.acquireContentProviderClient(authority); } } catch (Throwable e) { VLog.e(TAG, "", e); } if (client != null) { provider = mirror.android.content.ContentProviderClient.mContentProvider.get(client); client.release(); } return provider != null ? provider.asBinder() : null; }
if (!VClientImpl.get().isBound()) { ServiceInfo info = Reflect.on(msg.obj).get("info"); VClientImpl.get().bindApplication(info.packageName, info.processName);
if (!VClientImpl.get().isBound()) { ServiceInfo info = Reflect.on(msg.obj).get("info"); VClientImpl.get().bindApplication(info.packageName, info.processName);
VClientImpl.get().bindApplication(info.packageName, info.processName); getH().sendMessageAtFrontOfQueue(Message.obtain(msg)); return false;