summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRubin Xu <rubinxu@google.com>2015-07-30 17:47:24 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-07-30 17:47:24 +0000
commit5fa0ad4aeae55c0aba1ac2a42745782d53fbbceb (patch)
treef3773d197c9072c3dfd1fb5eeb14445e5e66f721
parentb60d3628a00f5a1d39548e6d3021e35e6c93fc73 (diff)
parent45fd722869942810bdfab7af090fd8786d4422e8 (diff)
downloadandroid_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.java13
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);