diff options
author | Rubin Xu <rubinxu@google.com> | 2015-07-30 17:47:24 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-07-30 17:47:24 +0000 |
commit | 5fa0ad4aeae55c0aba1ac2a42745782d53fbbceb (patch) | |
tree | f3773d197c9072c3dfd1fb5eeb14445e5e66f721 | |
parent | b60d3628a00f5a1d39548e6d3021e35e6c93fc73 (diff) | |
parent | 45fd722869942810bdfab7af090fd8786d4422e8 (diff) | |
download | android_packages_apps_ManagedProvisioning-5fa0ad4aeae55c0aba1ac2a42745782d53fbbceb.tar.gz android_packages_apps_ManagedProvisioning-5fa0ad4aeae55c0aba1ac2a42745782d53fbbceb.tar.bz2 android_packages_apps_ManagedProvisioning-5fa0ad4aeae55c0aba1ac2a42745782d53fbbceb.zip |
am 45fd7228: Merge "Set device owner as profile owners on secondary users" into mnc-dev
* commit '45fd722869942810bdfab7af090fd8786d4422e8':
Set device owner as profile owners on secondary users
-rw-r--r-- | src/com/android/managedprovisioning/task/SetDevicePolicyTask.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/com/android/managedprovisioning/task/SetDevicePolicyTask.java b/src/com/android/managedprovisioning/task/SetDevicePolicyTask.java index 4ddf429b..994d151d 100644 --- a/src/com/android/managedprovisioning/task/SetDevicePolicyTask.java +++ b/src/com/android/managedprovisioning/task/SetDevicePolicyTask.java @@ -26,6 +26,7 @@ import android.os.RemoteException; import android.os.UserHandle; import com.android.managedprovisioning.ProvisionLogger; +import com.android.managedprovisioning.Utils; /** * This tasks sets a given component as the owner of the device. If provided it also sets a given @@ -73,12 +74,24 @@ public class SetDevicePolicyTask { setDeviceOwner(mAdminPackage, mOwnerName); if (mInitializerComponent != null) { + // For secondary users, set device owner package as profile owner as well, in order + // to give it DO/PO privileges. This only applies if device initializer is present. + if (!Utils.isCurrentUserOwner() && !Utils.isManagedProfile(mContext)) { + int userId = UserHandle.myUserId(); + if (!mDevicePolicyManager.setProfileOwner(mAdminComponent, mAdminPackage, + userId)) { + ProvisionLogger.loge("Fail to set profile owner for user " + userId); + mCallback.onError(ERROR_OTHER); + return; + } + } enableDevicePolicyApp(mInitializerPackageName); setActiveAdmin(mInitializerComponent); if (!setDeviceInitializer(mInitializerComponent)) { // error reported in setDeviceInitializer return; } + } } catch (Exception e) { ProvisionLogger.loge("Failure setting device owner or initializer", e); |