From e83b7f29759fc66fe5a3eb23d1c3a69eb9552044 Mon Sep 17 00:00:00 2001 From: Songchun Fan Date: Thu, 3 Sep 2020 16:21:03 -0700 Subject: [PATCH] [am] system_server should not call non forUser Settings.Secure.get* methods BUG: 166312046 Test: builds Change-Id: I604ddbf311e5b8b350d1dbe9e1787cdad088de1e --- .../com/android/server/am/CoreSettingsObserver.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/am/CoreSettingsObserver.java b/services/core/java/com/android/server/am/CoreSettingsObserver.java index dbf91ee643336..529c6516398ee 100644 --- a/services/core/java/com/android/server/am/CoreSettingsObserver.java +++ b/services/core/java/com/android/server/am/CoreSettingsObserver.java @@ -18,6 +18,7 @@ package com.android.server.am; import android.annotation.NonNull; import android.app.ActivityThread; +import android.content.ContentResolver; import android.content.Context; import android.database.ContentObserver; import android.net.Uri; @@ -223,16 +224,17 @@ final class CoreSettingsObserver extends ContentObserver { @VisibleForTesting void populateSettings(Bundle snapshot, Map> map) { - Context context = mActivityManagerService.mContext; + final Context context = mActivityManagerService.mContext; + final ContentResolver cr = context.getContentResolver(); for (Map.Entry> entry : map.entrySet()) { String setting = entry.getKey(); final String value; if (map == sSecureSettingToTypeMap) { - value = Settings.Secure.getString(context.getContentResolver(), setting); + value = Settings.Secure.getStringForUser(cr, setting, cr.getUserId()); } else if (map == sSystemSettingToTypeMap) { - value = Settings.System.getString(context.getContentResolver(), setting); + value = Settings.System.getStringForUser(cr, setting, cr.getUserId()); } else { - value = Settings.Global.getString(context.getContentResolver(), setting); + value = Settings.Global.getString(cr, setting); } if (value == null) { snapshot.remove(setting);