OSDN Git Service

Layer user restrictions
authorMakoto Onuki <omakoto@google.com>
Tue, 13 Oct 2015 21:34:03 +0000 (14:34 -0700)
committerMakoto Onuki <omakoto@google.com>
Tue, 27 Oct 2015 21:26:06 +0000 (14:26 -0700)
commit068c54a5be697c3df4657dcda33cd17c4b547710
treef5e456a5373aa7a8fc9f579918241d6857797a6f
parent7fef1888d16746bc7e154fc04337dc347a512e19
Layer user restrictions

- Now DPMS remembers user restrictions set by DO / PO in their ActiveAdmin.

- User restrictions set by DO/PO will no longer be saved by UserManger.  Instead,
when needed, UMS will consult DPMS to build "effective" user restrictions.

- UM.getUserRestrictions() will now always return "effective" user restrictions.

- DPMS migrates existing user restrictions per the eng spec.

- Also now UM.setUserRestrictions() will crash.  UMS.setUserRestrictions() has
been removed.
This was needed because UM.setUserRestrctions(UM.getUserRestrictions()) will no
longer be a valid use like it used to be.

- Also introduced a fined-grained lock for user restrictions in UM to avoid
deadlock between DPMS and also for better performance.

Bug 23902097

Change-Id: If0e1e49344e2f3e9226532d00777976d1eaa7df3
20 files changed:
core/java/android/app/admin/DevicePolicyManagerInternal.java
core/java/android/os/IUserManager.aidl
core/java/android/os/UserManager.java
core/java/android/os/UserManagerInternal.java [new file with mode: 0644]
services/core/java/com/android/server/pm/UserManagerService.java
services/core/java/com/android/server/pm/UserRestrictionsUtils.java
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
services/devicepolicy/java/com/android/server/devicepolicy/Owners.java
services/tests/servicestests/assets/DevicePolicyManagerServiceMigrationTest/legacy_device_owner.xml [new file with mode: 0644]
services/tests/servicestests/assets/DevicePolicyManagerServiceMigrationTest/legacy_device_policies.xml [new file with mode: 0644]
services/tests/servicestests/assets/DevicePolicyManagerServiceMigrationTest/legacy_device_policies_10.xml [new file with mode: 0644]
services/tests/servicestests/assets/DevicePolicyManagerServiceMigrationTest/legacy_device_policies_11.xml [new file with mode: 0644]
services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java [new file with mode: 0644]
services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java
services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestBase.java
services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestUtils.java
services/tests/servicestests/src/com/android/server/devicepolicy/OwnersTest.java
services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java