Merge "Relax permissions for isUserOfType, isUserNameSet" into tm-dev
This commit is contained in:
@@ -9804,8 +9804,8 @@ package android.os {
|
|||||||
method public boolean isRestrictedProfile();
|
method public boolean isRestrictedProfile();
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}, conditional=true) public boolean isRestrictedProfile(@NonNull android.os.UserHandle);
|
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}, conditional=true) public boolean isRestrictedProfile(@NonNull android.os.UserHandle);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.QUERY_USERS}) public boolean isSameProfileGroup(@NonNull android.os.UserHandle, @NonNull android.os.UserHandle);
|
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.QUERY_USERS}) public boolean isSameProfileGroup(@NonNull android.os.UserHandle, @NonNull android.os.UserHandle);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.GET_ACCOUNTS_PRIVILEGED}) public boolean isUserNameSet();
|
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS, android.Manifest.permission.QUERY_USERS, android.Manifest.permission.GET_ACCOUNTS_PRIVILEGED}) public boolean isUserNameSet();
|
||||||
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isUserOfType(@NonNull String);
|
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS, android.Manifest.permission.QUERY_USERS}) public boolean isUserOfType(@NonNull String);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS}, conditional=true) public boolean isUserUnlockingOrUnlocked(@NonNull android.os.UserHandle);
|
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS}, conditional=true) public boolean isUserUnlockingOrUnlocked(@NonNull android.os.UserHandle);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public boolean removeUser(@NonNull android.os.UserHandle);
|
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public boolean removeUser(@NonNull android.os.UserHandle);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public int removeUserWhenPossible(@NonNull android.os.UserHandle, boolean);
|
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public int removeUserWhenPossible(@NonNull android.os.UserHandle, boolean);
|
||||||
|
|||||||
@@ -2186,9 +2186,17 @@ public class UserManager {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(anyOf = {Manifest.permission.MANAGE_USERS,
|
@RequiresPermission(anyOf = {
|
||||||
Manifest.permission.GET_ACCOUNTS_PRIVILEGED})
|
android.Manifest.permission.MANAGE_USERS,
|
||||||
@UserHandleAware(enabledSinceTargetSdkVersion = Build.VERSION_CODES.TIRAMISU)
|
android.Manifest.permission.CREATE_USERS,
|
||||||
|
android.Manifest.permission.QUERY_USERS,
|
||||||
|
android.Manifest.permission.GET_ACCOUNTS_PRIVILEGED})
|
||||||
|
@UserHandleAware(
|
||||||
|
enabledSinceTargetSdkVersion = Build.VERSION_CODES.TIRAMISU,
|
||||||
|
requiresAnyOfPermissionsIfNotCaller = {
|
||||||
|
android.Manifest.permission.MANAGE_USERS,
|
||||||
|
android.Manifest.permission.CREATE_USERS,
|
||||||
|
android.Manifest.permission.QUERY_USERS})
|
||||||
public boolean isUserNameSet() {
|
public boolean isUserNameSet() {
|
||||||
try {
|
try {
|
||||||
return mService.isUserNameSet(getContextUserIfAppropriate());
|
return mService.isUserNameSet(getContextUserIfAppropriate());
|
||||||
@@ -2292,8 +2300,11 @@ public class UserManager {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
|
@RequiresPermission(anyOf = {
|
||||||
|
android.Manifest.permission.MANAGE_USERS,
|
||||||
|
android.Manifest.permission.CREATE_USERS,
|
||||||
|
android.Manifest.permission.QUERY_USERS})
|
||||||
@UserHandleAware
|
@UserHandleAware
|
||||||
@RequiresPermission(android.Manifest.permission.MANAGE_USERS)
|
|
||||||
public boolean isUserOfType(@NonNull String userType) {
|
public boolean isUserOfType(@NonNull String userType) {
|
||||||
try {
|
try {
|
||||||
return mService.isUserOfType(mUserId, userType);
|
return mService.isUserOfType(mUserId, userType);
|
||||||
|
|||||||
@@ -1387,7 +1387,7 @@ public class UserManagerService extends IUserManager.Stub {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isUserOfType(@UserIdInt int userId, String userType) {
|
public boolean isUserOfType(@UserIdInt int userId, String userType) {
|
||||||
checkManageUsersPermission("check user type");
|
checkQueryOrCreateUsersPermission("check user type");
|
||||||
return userType != null && userType.equals(getUserTypeNoChecks(userId));
|
return userType != null && userType.equals(getUserTypeNoChecks(userId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1643,7 +1643,7 @@ public class UserManagerService extends IUserManager.Stub {
|
|||||||
if (!hasQueryOrCreateUsersPermission()
|
if (!hasQueryOrCreateUsersPermission()
|
||||||
&& !hasPermissionGranted(
|
&& !hasPermissionGranted(
|
||||||
android.Manifest.permission.GET_ACCOUNTS_PRIVILEGED, callingUid)) {
|
android.Manifest.permission.GET_ACCOUNTS_PRIVILEGED, callingUid)) {
|
||||||
throw new SecurityException("You need MANAGE_USERS or CREATE_USERS or "
|
throw new SecurityException("You need MANAGE_USERS, CREATE_USERS, QUERY_USERS, or "
|
||||||
+ "GET_ACCOUNTS_PRIVILEGED permissions to: get user name");
|
+ "GET_ACCOUNTS_PRIVILEGED permissions to: get user name");
|
||||||
}
|
}
|
||||||
final int userId = UserHandle.getUserId(callingUid);
|
final int userId = UserHandle.getUserId(callingUid);
|
||||||
@@ -5064,9 +5064,13 @@ public class UserManagerService extends IUserManager.Stub {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isUserNameSet(@UserIdInt int userId) {
|
public boolean isUserNameSet(@UserIdInt int userId) {
|
||||||
if (!hasManageUsersOrPermission(android.Manifest.permission.GET_ACCOUNTS_PRIVILEGED)) {
|
final int callingUid = Binder.getCallingUid();
|
||||||
throw new SecurityException("You need MANAGE_USERS or GET_ACCOUNTS_PRIVILEGED "
|
final int callingUserId = UserHandle.getUserId(callingUid);
|
||||||
+ "permissions to: get whether user name is set");
|
if (!hasQueryOrCreateUsersPermission()
|
||||||
|
&& !(callingUserId == userId && hasPermissionGranted(
|
||||||
|
android.Manifest.permission.GET_ACCOUNTS_PRIVILEGED, callingUid))) {
|
||||||
|
throw new SecurityException("You need MANAGE_USERS, CREATE_USERS, QUERY_USERS, or "
|
||||||
|
+ "GET_ACCOUNTS_PRIVILEGED permissions to: get whether user name is set");
|
||||||
}
|
}
|
||||||
synchronized (mUsersLock) {
|
synchronized (mUsersLock) {
|
||||||
final UserInfo userInfo = getUserInfoLU(userId);
|
final UserInfo userInfo = getUserInfoLU(userId);
|
||||||
|
|||||||
Reference in New Issue
Block a user