@Override public Object call(Object who, Method method, Object... args) throws Throwable { int uid = (int) args[0]; return VPackageManager.get().getNameForUid(uid); } }
public ActivityInfo resolveActivityInfo(ComponentName componentName, int userId) { return VPackageManager.get().getActivityInfo(componentName, 0, userId); }
public ApplicationInfo getApplicationInfo(int userId) { return VPackageManager.get().getApplicationInfo(packageName, 0, userId); }
public PackageInfo getPackageInfo(int userId) { return VPackageManager.get().getPackageInfo(packageName, 0, userId); }
@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 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 { 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 { 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 { 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 { 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 { 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; } } }
public String getCurrentPackage() { return mBoundApplication != null ? mBoundApplication.appInfo.packageName : VPackageManager.get().getNameForUid(getVUid()); }
@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 userId = VUserHandle.myUserId(); int flags = (int) args[1]; ActivityInfo info = VPackageManager.get().getActivityInfo(componentName, flags, userId); 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 { String pkg = (String) args[0]; int flags = (int) args[1]; int userId = VUserHandle.myUserId(); PackageInfo packageInfo = VPackageManager.get().getPackageInfo(pkg, flags, userId); if (packageInfo != null) { return packageInfo; } packageInfo = (PackageInfo) method.invoke(who, args); if (packageInfo != null) { if (isVisiblePackage(packageInfo.applicationInfo)) { return packageInfo; } } return null; }
@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().resolveService(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 { 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; } }
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; }
@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); }
@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; } }
@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; }