Merge "Enforce MODIFY_SETTINGS_OVERRIDEABLE_BY_RESTORE permission" into rvc-dev

This commit is contained in:
Ruslan Tkhakokhov
2020-03-11 15:34:09 +00:00
committed by Android (Google) Code Review
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;