Loading cmds/pm/src/com/android/commands/pm/Pm.java +3 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 { Loading core/java/android/accounts/AccountManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -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(); } Loading core/java/android/accounts/IAccountManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading services/core/java/com/android/server/accounts/AccountManagerService.java +3 −2 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading
cmds/pm/src/com/android/commands/pm/Pm.java +3 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 { Loading
core/java/android/accounts/AccountManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -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(); } Loading
core/java/android/accounts/IAccountManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading
services/core/java/com/android/server/accounts/AccountManagerService.java +3 −2 Original line number Diff line number Diff line Loading @@ -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); } Loading