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

Commit d8c2bbcf authored by Svet Ganov's avatar Svet Ganov Committed by Android Git Automerger
Browse files

am 10c111ed: Merge "Show basic feature warning for default granted permissions" into mnc-dev

* commit '10c111ed':
  Show basic feature warning for default granted permissions
parents e8b8d30a 10c111ed
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -9675,11 +9675,6 @@ package android.content.pm {
    field public static final java.lang.String FEATURE_WEBVIEW = "android.software.webview";
    field public static final java.lang.String FEATURE_WIFI = "android.hardware.wifi";
    field public static final java.lang.String FEATURE_WIFI_DIRECT = "android.hardware.wifi.direct";
    field public static final int FLAG_PERMISSION_POLICY_FIXED = 4; // 0x4
    field public static final int FLAG_PERMISSION_REVOKE_ON_UPGRADE = 8; // 0x8
    field public static final int FLAG_PERMISSION_SYSTEM_FIXED = 16; // 0x10
    field public static final int FLAG_PERMISSION_USER_FIXED = 2; // 0x2
    field public static final int FLAG_PERMISSION_USER_SET = 1; // 0x1
    field public static final int GET_ACTIVITIES = 1; // 0x1
    field public static final int GET_CONFIGURATIONS = 16384; // 0x4000
    field public static final int GET_DISABLED_COMPONENTS = 512; // 0x200
+26 −6
Original line number Diff line number Diff line
@@ -1924,7 +1924,6 @@ public abstract class PackageManager {
    *
    * @hide
    */
    @SystemApi
    public static final int FLAG_PERMISSION_USER_SET = 1 << 0;

    /**
@@ -1934,7 +1933,6 @@ public abstract class PackageManager {
     *
     * @hide
     */
    @SystemApi
    public static final int FLAG_PERMISSION_USER_FIXED =  1 << 1;

    /**
@@ -1944,7 +1942,6 @@ public abstract class PackageManager {
     *
     * @hide
     */
    @SystemApi
    public static final int FLAG_PERMISSION_POLICY_FIXED =  1 << 2;

    /**
@@ -1957,7 +1954,6 @@ public abstract class PackageManager {
     *
     * @hide
     */
    @SystemApi
    public static final int FLAG_PERMISSION_REVOKE_ON_UPGRADE =  1 << 3;

    /**
@@ -1966,9 +1962,19 @@ public abstract class PackageManager {
     *
     * @hide
     */
    @SystemApi
    public static final int FLAG_PERMISSION_SYSTEM_FIXED =  1 << 4;


    /**
     * Permission flag: The permission is granted by default because it
     * enables app functionality that is expected to work out-of-the-box
     * for providing a smooth user experience. For example, the phone app
     * is expected to have the phone permission.
     *
     * @hide
     */
    public static final int FLAG_PERMISSION_GRANTED_BY_DEFAULT =  1 << 5;

    /**
     * Mask for all permission flags.
     *
@@ -2474,7 +2480,8 @@ public abstract class PackageManager {
            FLAG_PERMISSION_USER_FIXED,
            FLAG_PERMISSION_POLICY_FIXED,
            FLAG_PERMISSION_REVOKE_ON_UPGRADE,
            FLAG_PERMISSION_SYSTEM_FIXED})
            FLAG_PERMISSION_SYSTEM_FIXED,
            FLAG_PERMISSION_GRANTED_BY_DEFAULT})
    @Retention(RetentionPolicy.SOURCE)
    public @interface PermissionFlags {}

@@ -4633,6 +4640,19 @@ public abstract class PackageManager {
        }
    }

    /** {@hide} */
    public static String permissionFlagToString(int flag) {
        switch (flag) {
            case FLAG_PERMISSION_GRANTED_BY_DEFAULT: return "FLAG_PERMISSION_GRANTED_BY_DEFAULT";
            case FLAG_PERMISSION_POLICY_FIXED: return "FLAG_PERMISSION_POLICY_FIXED";
            case FLAG_PERMISSION_SYSTEM_FIXED: return "FLAG_PERMISSION_SYSTEM_FIXED";
            case FLAG_PERMISSION_USER_SET: return "FLAG_PERMISSION_USER_SET";
            case FLAG_PERMISSION_REVOKE_ON_UPGRADE: return "FLAG_PERMISSION_REVOKE_ON_UPGRADE";
            case FLAG_PERMISSION_USER_FIXED: return "FLAG_PERMISSION_USER_FIXED";
            default: return Integer.toString(flag);
        }
    }

    /** {@hide} */
    public static class LegacyPackageInstallObserver extends PackageInstallObserver {
        private final IPackageInstallObserver mLegacy;
+7 −4
Original line number Diff line number Diff line
@@ -202,7 +202,8 @@ final class DefaultPermissionGrantPolicy {
                            mService.grantRuntimePermission(pkg.packageName, permission, userId);
                            mService.updatePermissionFlags(permission, pkg.packageName,
                                    PackageManager.MASK_PERMISSION_FLAGS,
                                    PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, userId);
                                    PackageManager.FLAG_PERMISSION_SYSTEM_FIXED
                                    | PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, userId);
                            if (DEBUG) {
                                Log.i(TAG, "Granted " + permission + " to system component "
                                        + pkg.packageName);
@@ -768,11 +769,13 @@ final class DefaultPermissionGrantPolicy {
                                + pkg.packageName);
                    }

                    int newFlags = PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT;
                    if (systemFixed) {
                        mService.updatePermissionFlags(permission, pkg.packageName,
                                PackageManager.FLAG_PERMISSION_SYSTEM_FIXED,
                                PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, userId);
                        newFlags |= PackageManager.FLAG_PERMISSION_SYSTEM_FIXED;
                    }

                    mService.updatePermissionFlags(permission, pkg.packageName,
                            newFlags, newFlags, userId);
                }
            }
        }
+15 −2
Original line number Diff line number Diff line
@@ -4333,12 +4333,25 @@ final class Settings {
                }
                pw.print(prefix); pw.print("  "); pw.print(permissionState.getName());
                pw.print(", granted="); pw.print(permissionState.isGranted());
                    pw.print(", flags=0x"); pw.println(Integer.toHexString(
                    pw.print(", flags="); pw.println(permissionFlagsToString(
                        permissionState.getFlags()));
            }
        }
    }

    private static String permissionFlagsToString(int flags) {
        StringBuilder flagsString = new StringBuilder();
        flagsString.append("[ ");
        while (flags != 0) {
            final int flag = 1 << Integer.numberOfTrailingZeros(flags);
            flags &= ~flag;
            flagsString.append(PackageManager.permissionFlagToString(flag));
            flagsString.append(' ');
        }
        flagsString.append(']');
        return flagsString.toString();
    }

    void dumpInstallPermissionsLPr(PrintWriter pw, String prefix, ArraySet<String> permissionNames,
            PermissionsState permissionsState) {
        List<PermissionState> permissionStates = permissionsState.getInstallPermissionStates();
@@ -4351,7 +4364,7 @@ final class Settings {
                }
                pw.print(prefix); pw.print("  "); pw.print(permissionState.getName());
                    pw.print(", granted="); pw.print(permissionState.isGranted());
                    pw.print(", flags=0x"); pw.println(Integer.toHexString(
                    pw.print(", flags="); pw.println(permissionFlagsToString(
                        permissionState.getFlags()));
            }
        }