Merge "Enforce MODIFY_SETTINGS_OVERRIDEABLE_BY_RESTORE permission" into rvc-dev am: d0effa2492

Change-Id: Ic209a3535b43490534e26a8cd7ed5cf78c51dd99
This commit is contained in:
Automerger Merge Worker
2020-03-11 15:41:43 +00:00
2 changed files with 7 additions and 1 deletions

View File

@@ -98,7 +98,8 @@ import java.util.Set;
* The Settings provider contains global system-level device preferences. * The Settings provider contains global system-level device preferences.
*/ */
public final class Settings { public final class Settings {
private static final boolean DEFAULT_OVERRIDEABLE_BY_RESTORE = false; /** @hide */
public static final boolean DEFAULT_OVERRIDEABLE_BY_RESTORE = false;
// Intent actions for Settings // Intent actions for Settings

View File

@@ -2778,6 +2778,11 @@ public class SettingsProvider extends ContentProvider {
public boolean insertSettingLocked(int type, int userId, String name, String value, public boolean insertSettingLocked(int type, int userId, String name, String value,
String tag, boolean makeDefault, boolean forceNonSystemPackage, String packageName, String tag, boolean makeDefault, boolean forceNonSystemPackage, String packageName,
boolean forceNotify, Set<String> criticalSettings, boolean overrideableByRestore) { boolean forceNotify, Set<String> criticalSettings, boolean overrideableByRestore) {
if (overrideableByRestore != Settings.DEFAULT_OVERRIDEABLE_BY_RESTORE) {
getContext().enforceCallingOrSelfPermission(
Manifest.permission.MODIFY_SETTINGS_OVERRIDEABLE_BY_RESTORE,
"Caller is not allowed to modify settings overrideable by restore");
}
final int key = makeKey(type, userId); final int key = makeKey(type, userId);
boolean success = false; boolean success = false;