summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Martijn Coenen <maco@google.com> 2022-12-09 07:42:00 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2022-12-09 07:42:00 +0000
commit140a69e94fd3e78a69f8ea9cefea47bc05060d80 (patch)
treebd24731f2099101bc11991ebb95fcb0362a0e569
parentca1b446bd0d6044b8e4f3f0017a1375a83e6702a (diff)
parente9e8dbc7df20e4a3da13e2553723b668d49ba2ca (diff)
Merge "Tell vold about users sharing storage with each other."
-rw-r--r--services/core/java/com/android/server/StorageManagerService.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 5d2fce45e03d..fdfcfa3b43c9 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -897,7 +897,15 @@ class StorageManagerService extends IStorageManager.Stub
if (Intent.ACTION_USER_ADDED.equals(action)) {
final UserManager um = mContext.getSystemService(UserManager.class);
final int userSerialNumber = um.getUserSerialNumber(userId);
- mVold.onUserAdded(userId, userSerialNumber);
+ final UserInfo userInfo = um.getUserInfo(userId);
+ if (userInfo.isCloneProfile()) {
+ // Only clone profiles share storage with their parent
+ mVold.onUserAdded(userId, userSerialNumber,
+ userInfo.profileGroupId /* sharesStorageWithUserId */);
+ } else {
+ mVold.onUserAdded(userId, userSerialNumber,
+ -1 /* shareStorageWithUserId */);
+ }
} else if (Intent.ACTION_USER_REMOVED.equals(action)) {
synchronized (mVolumes) {
final int size = mVolumes.size();
@@ -1146,7 +1154,11 @@ class StorageManagerService extends IStorageManager.Stub
// Tell vold about all existing and started users
for (UserInfo user : users) {
- mVold.onUserAdded(user.id, user.serialNumber);
+ if (user.isCloneProfile()) {
+ mVold.onUserAdded(user.id, user.serialNumber, user.profileGroupId);
+ } else {
+ mVold.onUserAdded(user.id, user.serialNumber, -1);
+ }
}
for (int userId : systemUnlockedUsers) {
mVold.onUserStarted(userId);