Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 096fa0d4 authored by Jonathan Scott's avatar Jonathan Scott Committed by Android Build Coastguard Worker
Browse files

Always sync user restriction state to UserManager

On certain Android 14 builds, global restrictions set by the
DPC can errornously go into UserManager's local restriction
store, resulting in a bad state where they cannot be unset
in future. Fix this by always force syncing user restrictions
from the policy engine to the UserManager when a restriction is
being set or cleared by the DPC. The force sync ensures that both
local and global restriction states of UserManager are consistent
with policy engine, for the restriction that is being updated.

Ran through the following manual tests:
1. (DO) Start with A14 bad build, set global restrictions
   -> OTA to this fix
   -> try clearing policy
2. (DO) Start with A14 bad build, set global restrictions
   -> reboot device
   -> OTA to this fix
   -> try clearing policy
3. (DO) A13 with local & global restrictions set
   -> OTA to A14 bad build
   -> set same restrictions again
   -> OTA to this fix
   -> try clearing policy
4. (DO) A13 with local & global restrictions set
   -> OTA to A14 bad build
   -> reboot device
   -> set same restrictions again
   -> OTA to this fix
   -> try clearing policy
5. (DO) A13 with local & global restrictions set
   -> OTA to A14 bad build
   -> OTA to this fix
   -> try clearing policy
6. (DO) A13 with local & global restrictions set
   -> OTA to A14 bad build
   -> reboot device
   -> OTA to this fix
   -> try clearing policy
7. (DO) A13 with local & global restrictions set
   -> OTA to this fix
   -> try clearing policy
8. (BYOD PO) A13 with global restrictions set
   -> OTA to A14 bad build
   -> reboot device
   -> OTA to this fix
   -> try clearing policy
Case 1 & 2: fresh A14 setup
Case 3 & 4: OTA'ed devices with workaround applied
Case 5 & 6: OTA'ed devices without workaround applied
Case 7: directly OTA'ed to build with fix
Case 8: same as case 5 & 6 but on a BYOD PO device

Bug: 311687929
Bug: 299302474
Test: btest a.d.c.PolicyEngineTest
Test: atest android.devicepolicy.cts.UserRestrictionsTest
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:5394ddbee5dd88a35e2a9a8508dc260395895ac1)
Merged-In: I4d700bc42ec114d1c0fc86f230f7f7612819195c
Change-Id: I4d700bc42ec114d1c0fc86f230f7f7612819195c
parent 1f4651d2
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment