Merge "Revert "Reset system fixed to clean storage perm model 2"" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
901516cb6c
@@ -305,7 +305,6 @@ public final class DefaultPermissionGrantPolicy {
|
||||
}
|
||||
|
||||
public void grantDefaultPermissions(int userId) {
|
||||
removeSystemFixedStorage(userId);
|
||||
grantPermissionsToSysComponentsAndPrivApps(userId);
|
||||
grantDefaultSystemHandlerPermissions(userId);
|
||||
grantDefaultPermissionExceptions(userId);
|
||||
@@ -314,46 +313,6 @@ public final class DefaultPermissionGrantPolicy {
|
||||
}
|
||||
}
|
||||
|
||||
// STOPSHIP: This is meant to fix the devices messed up by storage permission model 2 and
|
||||
// should be removed once all devices were updated
|
||||
private void removeSystemFixedStorage(int userId) {
|
||||
List<PackageInfo> packages = mContext.getPackageManager().getInstalledPackagesAsUser(
|
||||
DEFAULT_PACKAGE_INFO_QUERY_FLAGS, userId);
|
||||
|
||||
for (PackageInfo pkg : packages) {
|
||||
if (pkg == null || pkg.requestedPermissions == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (String permission : pkg.requestedPermissions) {
|
||||
if (!(Manifest.permission.READ_EXTERNAL_STORAGE.equals(permission)
|
||||
|| Manifest.permission.WRITE_EXTERNAL_STORAGE.equals(permission))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int flags = mContext.getPackageManager().getPermissionFlags(permission,
|
||||
pkg.packageName, UserHandle.of(userId));
|
||||
if ((flags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Log.v(TAG, "Removing system fixed " + pkg.packageName + "/" + permission);
|
||||
mContext.getPackageManager().updatePermissionFlags(permission, pkg.packageName,
|
||||
PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, 0, UserHandle.of(userId));
|
||||
|
||||
if (!doesPackageSupportRuntimePermissions(pkg)
|
||||
|| (flags & (PackageManager.FLAG_PERMISSION_USER_SET
|
||||
| PackageManager.FLAG_PERMISSION_POLICY_FIXED)) != 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Log.v(TAG, "Revoking " + pkg.packageName + "/" + permission);
|
||||
mContext.getPackageManager().revokeRuntimePermission(pkg.packageName, permission,
|
||||
UserHandle.of(userId));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void grantRuntimePermissionsForSystemPackage(int userId, PackageInfo pkg) {
|
||||
Set<String> permissions = new ArraySet<>();
|
||||
for (String permission : pkg.requestedPermissions) {
|
||||
|
||||
Reference in New Issue
Block a user