Loading api/system-current.txt +0 −5 Original line number Diff line number Diff line Loading @@ -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 core/java/android/content/pm/PackageManager.java +26 −6 Original line number Diff line number Diff line Loading @@ -1924,7 +1924,6 @@ public abstract class PackageManager { * * @hide */ @SystemApi public static final int FLAG_PERMISSION_USER_SET = 1 << 0; /** Loading @@ -1934,7 +1933,6 @@ public abstract class PackageManager { * * @hide */ @SystemApi public static final int FLAG_PERMISSION_USER_FIXED = 1 << 1; /** Loading @@ -1944,7 +1942,6 @@ public abstract class PackageManager { * * @hide */ @SystemApi public static final int FLAG_PERMISSION_POLICY_FIXED = 1 << 2; /** Loading @@ -1957,7 +1954,6 @@ public abstract class PackageManager { * * @hide */ @SystemApi public static final int FLAG_PERMISSION_REVOKE_ON_UPGRADE = 1 << 3; /** Loading @@ -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. * Loading Loading @@ -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 {} Loading Loading @@ -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; Loading services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +7 −4 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); } } } Loading services/core/java/com/android/server/pm/Settings.java +15 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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())); } } Loading Loading
api/system-current.txt +0 −5 Original line number Diff line number Diff line Loading @@ -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
core/java/android/content/pm/PackageManager.java +26 −6 Original line number Diff line number Diff line Loading @@ -1924,7 +1924,6 @@ public abstract class PackageManager { * * @hide */ @SystemApi public static final int FLAG_PERMISSION_USER_SET = 1 << 0; /** Loading @@ -1934,7 +1933,6 @@ public abstract class PackageManager { * * @hide */ @SystemApi public static final int FLAG_PERMISSION_USER_FIXED = 1 << 1; /** Loading @@ -1944,7 +1942,6 @@ public abstract class PackageManager { * * @hide */ @SystemApi public static final int FLAG_PERMISSION_POLICY_FIXED = 1 << 2; /** Loading @@ -1957,7 +1954,6 @@ public abstract class PackageManager { * * @hide */ @SystemApi public static final int FLAG_PERMISSION_REVOKE_ON_UPGRADE = 1 << 3; /** Loading @@ -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. * Loading Loading @@ -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 {} Loading Loading @@ -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; Loading
services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +7 −4 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); } } } Loading
services/core/java/com/android/server/pm/Settings.java +15 −2 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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())); } } Loading