diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/os/IUserManager.aidl | 1 | ||||
| -rw-r--r-- | core/java/android/os/UserManager.java | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl index 9a8194240f8e..3bee4b73dc22 100644 --- a/core/java/android/os/IUserManager.aidl +++ b/core/java/android/os/IUserManager.aidl @@ -46,6 +46,7 @@ interface IUserManager { UserInfo createProfileForUserWithThrow(in String name, in String userType, int flags, int userId, in String[] disallowedPackages); UserInfo createRestrictedProfileWithThrow(String name, int parentUserHandle); + String[] getPreInstallableSystemPackages(in String userType); void setUserEnabled(int userId); void setUserAdmin(int userId); void evictCredentialEncryptionKey(int userId); diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 7edd6e6597b2..8709f071f222 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -26,6 +26,7 @@ import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.StringDef; import android.annotation.SuppressAutoDoc; +import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.TestApi; @@ -53,6 +54,7 @@ import android.location.LocationManager; import android.provider.Settings; import android.telephony.TelephonyManager; import android.util.AndroidException; +import android.util.ArraySet; import android.view.WindowManager.LayoutParams; import com.android.internal.R; @@ -3221,6 +3223,33 @@ public class UserManager { } /** + * Returns the list of the system packages that would be installed on this type of user upon + * its creation. + * + * Returns {@code null} if all system packages would be installed. + * + * @hide + */ + @TestApi + @SuppressLint("NullableCollection") + @RequiresPermission(anyOf = { + android.Manifest.permission.MANAGE_USERS, + android.Manifest.permission.CREATE_USERS + }) + public @Nullable Set<String> getPreInstallableSystemPackages(@NonNull String userType) { + try { + final String[] installableSystemPackages + = mService.getPreInstallableSystemPackages(userType); + if (installableSystemPackages == null) { + return null; + } + return new ArraySet<>(installableSystemPackages); + } catch (RemoteException re) { + throw re.rethrowFromSystemServer(); + } + } + + /** * @hide * * Returns the preferred account name for user creation. |
