diff options
author | Svet Ganov <svetoslavganov@google.com> | 2016-02-22 18:17:49 -0800 |
---|---|---|
committer | Svet Ganov <svetoslavganov@google.com> | 2016-02-22 18:17:52 -0800 |
commit | 44689865bafa920f33cbf7dde70379825ec9afde (patch) | |
tree | fb6e1c6186d1473afaca725ea911350d44167fbc | |
parent | 8c73974b359e24d797ab57a1c3db17f5474d1b63 (diff) | |
download | android_packages_apps_PackageInstaller-44689865bafa920f33cbf7dde70379825ec9afde.tar.gz android_packages_apps_PackageInstaller-44689865bafa920f33cbf7dde70379825ec9afde.tar.bz2 android_packages_apps_PackageInstaller-44689865bafa920f33cbf7dde70379825ec9afde.zip |
Expose removed permissions flag as system API - installer
There are some permissions that were removed from the platform
and guard nothing but legacy apps may be checking them before
calling APIs. Hence, these apps should get the permissions as
expected despite them being a no-op. To address this the platform
declares removed permissions as normal permissions that are hidden
such that legacy apps can always get them. These permissions are
not shown in the UI. Play needs a way to filter out these
permissions like the platform as they have permissions UI too.
bug:23361760
Change-Id: Ieecf69f70551d987f5fac1f128b7f7a0c242c378
5 files changed, 5 insertions, 6 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java index 27cbcd64..0771a0f4 100644 --- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java +++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java @@ -68,7 +68,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> if (permissionInfo.protectionLevel != PermissionInfo.PROTECTION_DANGEROUS || (permissionInfo.flags & PermissionInfo.FLAG_INSTALLED) == 0 - || (permissionInfo.flags & PermissionInfo.FLAG_HIDDEN) != 0) { + || (permissionInfo.flags & PermissionInfo.FLAG_REMOVED) != 0) { return null; } diff --git a/src/com/android/packageinstaller/permission/model/PermissionApps.java b/src/com/android/packageinstaller/permission/model/PermissionApps.java index e9eaff5d..9ff5025c 100644 --- a/src/com/android/packageinstaller/permission/model/PermissionApps.java +++ b/src/com/android/packageinstaller/permission/model/PermissionApps.java @@ -35,7 +35,6 @@ import com.android.packageinstaller.R; import com.android.packageinstaller.permission.utils.Utils; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.List; @@ -182,7 +181,7 @@ public class PermissionApps { || (requestedPermissionInfo.flags & PermissionInfo.FLAG_INSTALLED) == 0 || (requestedPermissionInfo.flags - & PermissionInfo.FLAG_HIDDEN) != 0) { + & PermissionInfo.FLAG_REMOVED) != 0) { continue; } diff --git a/src/com/android/packageinstaller/permission/model/PermissionGroups.java b/src/com/android/packageinstaller/permission/model/PermissionGroups.java index c496e898..8ca69f24 100644 --- a/src/com/android/packageinstaller/permission/model/PermissionGroups.java +++ b/src/com/android/packageinstaller/permission/model/PermissionGroups.java @@ -131,7 +131,7 @@ public final class PermissionGroups implements LoaderCallbacks<List<PermissionGr seenPermissions.add(groupPermission.name); if (groupPermission.protectionLevel == PermissionInfo.PROTECTION_DANGEROUS && (groupPermission.flags & PermissionInfo.FLAG_INSTALLED) != 0 - && (groupPermission.flags & PermissionInfo.FLAG_HIDDEN) == 0) { + && (groupPermission.flags & PermissionInfo.FLAG_REMOVED) == 0) { hasRuntimePermissions = true; } } diff --git a/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java index b3b0895c..0c249e55 100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java @@ -123,7 +123,7 @@ public final class AllAppPermissionsFragment extends SettingsWithHeader { } if ((perm.flags & PermissionInfo.FLAG_INSTALLED) == 0 - || (perm.flags & PermissionInfo.FLAG_HIDDEN) != 0) { + || (perm.flags & PermissionInfo.FLAG_REMOVED) != 0) { continue; } diff --git a/src/com/android/packageinstaller/permission/ui/television/AllAppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/television/AllAppPermissionsFragment.java index 2c0a123b..7ea9a258 100644 --- a/src/com/android/packageinstaller/permission/ui/television/AllAppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/television/AllAppPermissionsFragment.java @@ -153,7 +153,7 @@ public final class AllAppPermissionsFragment extends SettingsWithHeader { } if ((perm.flags & PermissionInfo.FLAG_INSTALLED) == 0 - || (perm.flags & PermissionInfo.FLAG_HIDDEN) != 0) { + || (perm.flags & PermissionInfo.FLAG_REMOVED) != 0) { continue; } |