Merge "Use correct packageName for checking if it belongs to callingUid."

This commit is contained in:
Sudheer Shanka
2017-02-16 00:51:45 +00:00
committed by Android (Google) Code Review
4 changed files with 8 additions and 5 deletions

View File

@@ -53,6 +53,7 @@ import android.os.Handler;
import android.os.HandlerThread;
import android.os.IUserManager;
import android.os.ParcelFileDescriptor;
import android.os.Process;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.SELinux;
@@ -1004,7 +1005,8 @@ public final class Pm {
// In non-split user mode, userId can only be SYSTEM
int parentUserId = userId >= 0 ? userId : UserHandle.USER_SYSTEM;
info = mUm.createRestrictedProfile(name, parentUserId);
mAm.addSharedAccountsFromParentUser(parentUserId, userId);
mAm.addSharedAccountsFromParentUser(parentUserId, userId,
(Process.myUid() == Process.ROOT_UID) ? "root" : "com.android.shell");
} else if (userId < 0) {
info = mUm.createUser(name, flags);
} else {

View File

@@ -1802,7 +1802,7 @@ public class AccountManager {
public void addSharedAccountsFromParentUser(UserHandle parentUser, UserHandle user) {
try {
mService.addSharedAccountsFromParentUser(parentUser.getIdentifier(),
user.getIdentifier());
user.getIdentifier(), mContext.getOpPackageName());
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();
}

View File

@@ -80,7 +80,7 @@ interface IAccountManager {
/* Shared accounts */
Account[] getSharedAccountsAsUser(int userId);
boolean removeSharedAccountAsUser(in Account account, int userId);
void addSharedAccountsFromParentUser(int parentUserId, int userId);
void addSharedAccountsFromParentUser(int parentUserId, int userId, String opPackageName);
/* Account renaming. */
void renameAccount(in IAccountManagerResponse response, in Account accountToRename, String newName);

View File

@@ -4087,9 +4087,10 @@ public class AccountManagerService
}
@Override
public void addSharedAccountsFromParentUser(int parentUserId, int userId) {
public void addSharedAccountsFromParentUser(int parentUserId, int userId,
String opPackageName) {
checkManageOrCreateUsersPermission("addSharedAccountsFromParentUser");
Account[] accounts = getAccountsAsUser(null, parentUserId, mContext.getOpPackageName());
Account[] accounts = getAccountsAsUser(null, parentUserId, opPackageName);
for (Account account : accounts) {
addSharedAccountAsUser(account, userId);
}