Merge "Remove fixed grant of READ_PHONE_STATE and cleanup" into sc-dev
This commit is contained in:
@@ -205,9 +205,6 @@
|
|||||||
<split-permission name="android.permission.WRITE_EXTERNAL_STORAGE">
|
<split-permission name="android.permission.WRITE_EXTERNAL_STORAGE">
|
||||||
<new-permission name="android.permission.READ_EXTERNAL_STORAGE" />
|
<new-permission name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
</split-permission>
|
</split-permission>
|
||||||
<split-permission name="android.permission.READ_PRIVILEGED_PHONE_STATE">
|
|
||||||
<new-permission name="android.permission.READ_PHONE_STATE" />
|
|
||||||
</split-permission>
|
|
||||||
<split-permission name="android.permission.READ_CONTACTS"
|
<split-permission name="android.permission.READ_CONTACTS"
|
||||||
targetSdk="16">
|
targetSdk="16">
|
||||||
<new-permission name="android.permission.READ_CALL_LOG" />
|
<new-permission name="android.permission.READ_CALL_LOG" />
|
||||||
|
|||||||
@@ -422,19 +422,24 @@ final class DefaultPermissionGrantPolicy {
|
|||||||
grantRuntimePermissionsForSystemPackage(pm, userId, pkg);
|
grantRuntimePermissionsForSystemPackage(pm, userId, pkg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Grant READ_PHONE_STATE to all system apps that have READ_PRIVILEGED_PHONE_STATE
|
// Re-grant READ_PHONE_STATE as non-fixed to all system apps that have
|
||||||
|
// READ_PRIVILEGED_PHONE_STATE and READ_PHONE_STATE granted -- this is to undo the fixed
|
||||||
|
// grant from R.
|
||||||
for (PackageInfo pkg : packages) {
|
for (PackageInfo pkg : packages) {
|
||||||
if (pkg == null
|
if (pkg == null
|
||||||
|| !doesPackageSupportRuntimePermissions(pkg)
|
|| !doesPackageSupportRuntimePermissions(pkg)
|
||||||
|| ArrayUtils.isEmpty(pkg.requestedPermissions)
|
|| ArrayUtils.isEmpty(pkg.requestedPermissions)
|
||||||
|| !pm.isGranted(Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
|
|| !pm.isGranted(Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
|
||||||
pkg, UserHandle.of(userId))) {
|
pkg, UserHandle.of(userId))
|
||||||
|
|| !pm.isGranted(Manifest.permission.READ_PHONE_STATE, pkg,
|
||||||
|
UserHandle.of(userId))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
grantRuntimePermissions(pm, pkg,
|
|
||||||
Collections.singleton(Manifest.permission.READ_PHONE_STATE),
|
pm.updatePermissionFlags(Manifest.permission.READ_PHONE_STATE, pkg,
|
||||||
true, // systemFixed
|
PackageManager.FLAG_PERMISSION_SYSTEM_FIXED,
|
||||||
userId);
|
0,
|
||||||
|
UserHandle.of(userId));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1723,7 +1728,7 @@ final class DefaultPermissionGrantPolicy {
|
|||||||
int flagMask, int flagValues, @NonNull UserHandle user) {
|
int flagMask, int flagValues, @NonNull UserHandle user) {
|
||||||
PermissionState state = getPermissionState(permission, pkg, user);
|
PermissionState state = getPermissionState(permission, pkg, user);
|
||||||
state.initFlags();
|
state.initFlags();
|
||||||
state.newFlags |= flagValues & flagMask;
|
state.newFlags = (state.newFlags & ~flagMask) | (flagValues & flagMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user