OSDN Git Service

Block adb from changing certain settings value when corresponding user
authoryuemingw <yuemingw@google.com>
Tue, 30 Jan 2018 17:27:54 +0000 (17:27 +0000)
committeryuemingw <yuemingw@google.com>
Fri, 23 Feb 2018 16:04:45 +0000 (16:04 +0000)
commit4140f6c4e3de454dfbcf060112517408ac69e96c
treeece58fc72003e5131dd03dbce3bc4e55578d6fcf
parentefee606e8634a5415739b7ec11b4e7330e2e0d2a
Block adb from changing certain settings value when corresponding user
restriction is on.

Check calling uid in isSettingRestrictedForUser(which is called by settingsprovider),
 and only allow system_uid when certain user restriction is on, so that user won't be
able to change these settings with adb:
Settings.Secure.LOCATION_MODE,
Settings.Secure.PROVIDERS_ALLOWED,
Settings.System.SCREEN_BRIGHTNESS,
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_OFF_TIMEOUT,
Settings.Global.AUTO_TIME,
Settings.Global.AUTO_TIME_ZONE.
This check also prevents 3rd party apps from modifying system settings value
when corresponding user restriction is on.
In addition, any attempt to change AUTO_TIME will also go through the check
for dpm.getAutoTimeRequired().

Test: manually by running the adb command with restriction set and not set
Bug: 72549013
Bug: 72548203
Bug: 72548533
Bug: 72686466
Bug: 72687105
Bug: 72940551
Bug: 72940562

Change-Id: Idfe0f1758d57958b836207ab3d55b2a292e1ae0d
core/java/android/os/IUserManager.aidl
core/java/android/os/UserManager.java
packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
services/core/java/com/android/server/pm/UserManagerService.java
services/core/java/com/android/server/pm/UserRestrictionsUtils.java