diff options
author | Rubin Xu <rubinxu@google.com> | 2015-05-12 09:06:09 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-12 09:06:14 +0000 |
commit | 9fc8bb63d8c15ecfcd3a72a685eaec6c8ec0aa6e (patch) | |
tree | 6e144a7c4766ff880956a87e2edb7c63369f7af0 /services/devicepolicy | |
parent | c12e4e468fa8c72875632b11b96b2f67ea98d7c0 (diff) | |
parent | d86d58cd010b087d6d481062f84c894e0ced7bbc (diff) | |
download | frameworks_base-9fc8bb63d8c15ecfcd3a72a685eaec6c8ec0aa6e.zip frameworks_base-9fc8bb63d8c15ecfcd3a72a685eaec6c8ec0aa6e.tar.gz frameworks_base-9fc8bb63d8c15ecfcd3a72a685eaec6c8ec0aa6e.tar.bz2 |
Merge "Tweak SystemUpdatePolicy according to API review." into mnc-dev
Diffstat (limited to 'services/devicepolicy')
-rw-r--r-- | services/devicepolicy/java/com/android/server/devicepolicy/DeviceOwner.java | 15 | ||||
-rw-r--r-- | services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java | 15 |
2 files changed, 18 insertions, 12 deletions
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DeviceOwner.java b/services/devicepolicy/java/com/android/server/devicepolicy/DeviceOwner.java index 28ffc57..88bf54e 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DeviceOwner.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DeviceOwner.java @@ -17,6 +17,7 @@ package com.android.server.devicepolicy; import android.app.AppGlobals; +import android.app.admin.SystemUpdatePolicy; import android.content.ComponentName; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -78,7 +79,7 @@ class DeviceOwner { private final HashMap<Integer, OwnerInfo> mProfileOwners = new HashMap<Integer, OwnerInfo>(); // Local system update policy controllable by device owner. - private PersistableBundle mSystemUpdatePolicy; + private SystemUpdatePolicy mSystemUpdatePolicy; // Private default constructor. private DeviceOwner() { @@ -192,11 +193,11 @@ class DeviceOwner { return mProfileOwners.keySet(); } - PersistableBundle getSystemUpdatePolicy() { + SystemUpdatePolicy getSystemUpdatePolicy() { return mSystemUpdatePolicy; } - void setSystemUpdatePolicy(PersistableBundle systemUpdatePolicy) { + void setSystemUpdatePolicy(SystemUpdatePolicy systemUpdatePolicy) { mSystemUpdatePolicy = systemUpdatePolicy; } @@ -291,7 +292,7 @@ class DeviceOwner { } mProfileOwners.put(userId, profileOwnerInfo); } else if (TAG_SYSTEM_UPDATE_POLICY.equals(tag)) { - mSystemUpdatePolicy = PersistableBundle.restoreFromXml(parser); + mSystemUpdatePolicy = SystemUpdatePolicy.restoreFromXml(parser); } else { throw new XmlPullParserException( "Unexpected tag in device owner file: " + tag); @@ -361,11 +362,7 @@ class DeviceOwner { // Write system update policy tag if (mSystemUpdatePolicy != null) { out.startTag(null, TAG_SYSTEM_UPDATE_POLICY); - try { - mSystemUpdatePolicy.saveToXml(out); - } catch (XmlPullParserException e) { - Slog.e(TAG, "Failed to save system update policy", e); - } + mSystemUpdatePolicy.saveToXml(out); out.endTag(null, TAG_SYSTEM_UPDATE_POLICY); } out.endDocument(); diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index c6816b0..ba5d666 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -39,6 +39,7 @@ import android.app.admin.DeviceAdminReceiver; import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManagerInternal; import android.app.admin.IDevicePolicyManager; +import android.app.admin.SystemUpdatePolicy; import android.app.backup.IBackupManager; import android.content.BroadcastReceiver; import android.content.ComponentName; @@ -6238,7 +6239,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } @Override - public void setSystemUpdatePolicy(ComponentName who, PersistableBundle policy) { + public void setSystemUpdatePolicy(ComponentName who, SystemUpdatePolicy policy) { + if (policy != null && !policy.isValid()) { + throw new IllegalArgumentException("Invalid system update policy."); + } synchronized (this) { getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER); if (policy == null) { @@ -6254,9 +6258,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } @Override - public PersistableBundle getSystemUpdatePolicy() { + public SystemUpdatePolicy getSystemUpdatePolicy() { synchronized (this) { - return mDeviceOwner.getSystemUpdatePolicy(); + SystemUpdatePolicy policy = mDeviceOwner.getSystemUpdatePolicy(); + if (policy != null && !policy.isValid()) { + Slog.w(LOG_TAG, "Stored system update policy is invalid, return null instead."); + return null; + } + return policy; } } |