Merge "Revert "Reset system fixed to clean storage perm model 2"" into qt-dev

This commit is contained in:
Philip P. Moltmann
2019-05-18 02:33:23 +00:00
committed by Android (Google) Code Review

View File

@@ -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) {