Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e503f455 authored by Nicholas Sauer's avatar Nicholas Sauer
Browse files

Use MATCH_ANY_USER when retrieving PackageInfo.

bug: 157104172
Test: m gcar && emulator; cts-tradefed run cts -m CtsPermission2TestCases -t android.permission2.cts.PrivappPermissionsTest
Test: With a package set as <install-in user-type="FULL" />, but not SYSTEM, run: adb shell cmd package get-privapp-permissions <packagename> and get the expected output.

Change-Id: I816fc36b448856a0e0244211549b54e0a95f277e
parent 0766cdc0
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -2313,7 +2313,8 @@ class PackageManagerShellCommand extends ShellCommand {


    private boolean isVendorApp(String pkg) {
    private boolean isVendorApp(String pkg) {
        try {
        try {
            final PackageInfo info = mInterface.getPackageInfo(pkg, 0, UserHandle.USER_SYSTEM);
            final PackageInfo info = mInterface.getPackageInfo(
                     pkg, PackageManager.MATCH_ANY_USER, UserHandle.USER_SYSTEM);
            return info != null && info.applicationInfo.isVendor();
            return info != null && info.applicationInfo.isVendor();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            return false;
            return false;
@@ -2322,7 +2323,8 @@ class PackageManagerShellCommand extends ShellCommand {


    private boolean isProductApp(String pkg) {
    private boolean isProductApp(String pkg) {
        try {
        try {
            final PackageInfo info = mInterface.getPackageInfo(pkg, 0, UserHandle.USER_SYSTEM);
            final PackageInfo info = mInterface.getPackageInfo(
                    pkg, PackageManager.MATCH_ANY_USER, UserHandle.USER_SYSTEM);
            return info != null && info.applicationInfo.isProduct();
            return info != null && info.applicationInfo.isProduct();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            return false;
            return false;
@@ -2331,7 +2333,8 @@ class PackageManagerShellCommand extends ShellCommand {


    private boolean isSystemExtApp(String pkg) {
    private boolean isSystemExtApp(String pkg) {
        try {
        try {
            final PackageInfo info = mInterface.getPackageInfo(pkg, 0, UserHandle.USER_SYSTEM);
            final PackageInfo info = mInterface.getPackageInfo(
                    pkg, PackageManager.MATCH_ANY_USER, UserHandle.USER_SYSTEM);
            return info != null && info.applicationInfo.isSystemExt();
            return info != null && info.applicationInfo.isSystemExt();
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            return false;
            return false;