@Override public Object call(Object who, Method method, Object... args) throws Throwable { ComponentName component = (ComponentName) args[0]; Intent intent = (Intent) args[1]; String resolvedType = (String) args[2]; return VPackageManager.get().activitySupportsIntent(component, intent, resolvedType); } }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { String permName = (String) args[0]; String pkgName = (String) args[1]; int userId = VUserHandle.myUserId(); return VPackageManager.get().checkPermission(permName, pkgName, userId); }
public synchronized ActivityInfo resolveActivityInfo(Intent intent, int userId) { ActivityInfo activityInfo = null; if (intent.getComponent() == null) { ResolveInfo resolveInfo = VPackageManager.get().resolveIntent(intent, intent.getType(), 0, userId); if (resolveInfo != null && resolveInfo.activityInfo != null) { activityInfo = resolveInfo.activityInfo; intent.setClassName(activityInfo.packageName, activityInfo.name); } } else { activityInfo = resolveActivityInfo(intent.getComponent(), userId); } if (activityInfo != null) { if (activityInfo.targetActivity != null) { ComponentName componentName = new ComponentName(activityInfo.packageName, activityInfo.targetActivity); activityInfo = VPackageManager.get().getActivityInfo(componentName, 0, userId); intent.setComponent(componentName); } } return activityInfo; }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { int uid = (int) args[0]; return VPackageManager.get().getNameForUid(uid); } }
public ApplicationInfo getApplicationInfo(int userId) { return VPackageManager.get().getApplicationInfo(packageName, 0, userId); }
System.exit(0); data.appInfo = VPackageManager.get().getApplicationInfo(packageName, 0, getUserId(vuid)); data.processName = processName; data.appInfo.processName = processName; data.providers = VPackageManager.get().queryContentProviders(processName, getVUid(), PackageManager.GET_META_DATA); VLog.i(TAG, String.format("Binding application %s, (%s)", data.appInfo.packageName, data.processName)); mBoundApplication = data;
public ServiceInfo resolveServiceInfo(Intent intent, int userId) { ServiceInfo serviceInfo = null; ResolveInfo resolveInfo = VPackageManager.get().resolveService(intent, intent.getType(), 0, userId); if (resolveInfo != null) { serviceInfo = resolveInfo.serviceInfo; } return serviceInfo; }
public PackageInfo getPackageInfo(int userId) { return VPackageManager.get().getPackageInfo(packageName, 0, userId); }
public ActivityInfo resolveActivityInfo(ComponentName componentName, int userId) { return VPackageManager.get().getActivityInfo(componentName, 0, userId); }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { String name = (String) args[0]; int flags = (int) args[1]; int userId = VUserHandle.myUserId(); ProviderInfo info = VPackageManager.get().resolveContentProvider(name, flags, userId); if (info == null) { info = (ProviderInfo) method.invoke(who, args); if (info != null && isVisiblePackage(info.applicationInfo)) { return info; } } return info; } }
public Intent getLaunchIntent(String packageName, int userId) { VPackageManager pm = VPackageManager.get(); Intent intentToResolve = new Intent(Intent.ACTION_MAIN); intentToResolve.addCategory(Intent.CATEGORY_INFO); intentToResolve.setPackage(packageName); List<ResolveInfo> ris = pm.queryIntentActivities(intentToResolve, intentToResolve.resolveType(context), 0, userId); // Otherwise, try to find a main launcher activity. if (ris == null || ris.size() <= 0) { // reuse the intent instance intentToResolve.removeCategory(Intent.CATEGORY_INFO); intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER); intentToResolve.setPackage(packageName); ris = pm.queryIntentActivities(intentToResolve, intentToResolve.resolveType(context), 0, userId); } if (ris == null || ris.size() <= 0) { return null; } Intent intent = new Intent(intentToResolve); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setClassName(ris.get(0).activityInfo.packageName, ris.get(0).activityInfo.name); return intent; }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { int flags = (Integer) args[0]; int userId = VUserHandle.myUserId(); List<ApplicationInfo> appInfos = VPackageManager.get().getInstalledApplications(flags, userId); if (ParceledListSliceCompat.isReturnParceledListSlice(method)) { return ParceledListSliceCompat.create(appInfos); } return appInfos; } }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { String pkgName = (String) args[0]; if (pkgName.equals(getHostPkg())) { return method.invoke(who, args); } int uid = VPackageManager.get().getPackageUid(pkgName, 0); return VUserHandle.getAppId(uid); }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { String processName = (String) args[0]; int uid = (int) args[1]; int flags = (int) args[2]; List<ProviderInfo> infos = VPackageManager.get().queryContentProviders(processName, uid, flags); if (ParceledListSliceCompat.isReturnParceledListSlice(method)) { return ParceledListSliceCompat.create(infos); } return infos; }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { String name = (String) args[0]; int flags = (int) args[1]; PermissionGroupInfo info = VPackageManager.get().getPermissionGroupInfo(name, flags); if (info != null) { return info; } return super.call(who, method, args); }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { Intent intent = (Intent) args[0]; String resolvedType = (String) args[1]; int flags = (int) args[2]; int userId = VUserHandle.myUserId(); ResolveInfo resolveInfo = VPackageManager.get().resolveIntent(intent, resolvedType, flags, userId); if (resolveInfo == null) { resolveInfo = (ResolveInfo) method.invoke(who, args); } return resolveInfo; } }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { ComponentName componentName = (ComponentName) args[0]; int flags = (int) args[1]; int userId = VUserHandle.myUserId(); ServiceInfo info = VPackageManager.get().getServiceInfo(componentName, flags, userId); if (info != null) { return info; } info = (ServiceInfo) method.invoke(who, args); if (info == null || !isVisiblePackage(info.applicationInfo)) { return null; } return info; }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { ComponentName componentName = (ComponentName) args[0]; if (getHostPkg().equals(componentName.getPackageName())) { return method.invoke(who, args); } int flags = (int) args[1]; ActivityInfo info = VPackageManager.get().getReceiverInfo(componentName, flags, 0); if (info == null) { info = (ActivityInfo) method.invoke(who, args); if (info == null || !isVisiblePackage(info.applicationInfo)) { return null; } } return info; }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { ComponentName componentName = (ComponentName) args[0]; int flags = (int) args[1]; if (getHostPkg().equals(componentName.getPackageName())) { return method.invoke(who, args); } int userId = VUserHandle.myUserId(); ProviderInfo info = VPackageManager.get().getProviderInfo(componentName, flags, userId); if (info == null) { info = (ProviderInfo) method.invoke(who, args); if (info == null || !isVisiblePackage(info.applicationInfo)) { return null; } } return info; }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { int flags = (int) args[0]; int userId = VUserHandle.myUserId(); List<PackageInfo> packageInfos; if (isAppProcess()) { packageInfos = new ArrayList<>(VirtualCore.get().getInstalledAppCount()); } else { packageInfos = VirtualCore.get().getUnHookPackageManager().getInstalledPackages(flags); } packageInfos.addAll(VPackageManager.get().getInstalledPackages(flags, userId)); if (ParceledListSliceCompat.isReturnParceledListSlice(method)) { return ParceledListSliceCompat.create(packageInfos); } else { return packageInfos; } } }