diff --git a/java/com/android/dialer/app/settings/SoundSettingsFragment.java b/java/com/android/dialer/app/settings/SoundSettingsFragment.java
index d321f87..0f3fc23 100644
--- a/java/com/android/dialer/app/settings/SoundSettingsFragment.java
+++ b/java/com/android/dialer/app/settings/SoundSettingsFragment.java
@@ -85,6 +85,7 @@
   @Override
   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
+    getPreferenceManager().setStorageDeviceProtected();
 
     addPreferencesFromResource(R.xml.sound_settings);
 
diff --git a/java/com/android/dialer/callrecord/impl/CallRecorderService.java b/java/com/android/dialer/callrecord/impl/CallRecorderService.java
index 298e8ad..c24e109 100644
--- a/java/com/android/dialer/callrecord/impl/CallRecorderService.java
+++ b/java/com/android/dialer/callrecord/impl/CallRecorderService.java
@@ -92,7 +92,8 @@
     // that we need multi process preferences, as the pref is written in a separate
     // process (com.android.dialer vs. com.android.incallui)
     final String prefName = getPackageName() + "_preferences";
-    final SharedPreferences prefs = getSharedPreferences(prefName, MODE_MULTI_PROCESS);
+    final SharedPreferences prefs = createDeviceProtectedStorageContext()
+            .getSharedPreferences(prefName, MODE_MULTI_PROCESS);
 
     try {
       String value = prefs.getString(getString(R.string.call_recording_format_key), null);
diff --git a/java/com/android/dialer/lookup/LookupSettings.java b/java/com/android/dialer/lookup/LookupSettings.java
index f1b673b..d7ad1d9 100644
--- a/java/com/android/dialer/lookup/LookupSettings.java
+++ b/java/com/android/dialer/lookup/LookupSettings.java
@@ -45,7 +45,8 @@
   }
 
   private static SharedPreferences getSharedPreferences(Context context) {
-    return context.getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
+    return context.createDeviceProtectedStorageContext()
+            .getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
   }
 
   public static boolean isForwardLookupEnabled(Context context) {
diff --git a/java/com/android/dialer/lookup/LookupSettingsFragment.java b/java/com/android/dialer/lookup/LookupSettingsFragment.java
index b539bf8..526a7f5 100644
--- a/java/com/android/dialer/lookup/LookupSettingsFragment.java
+++ b/java/com/android/dialer/lookup/LookupSettingsFragment.java
@@ -43,6 +43,7 @@
   @Override
   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
+    getPreferenceManager().setStorageDeviceProtected();
 
     addPreferencesFromResource(R.xml.lookup_settings);
 
diff --git a/java/com/android/incallui/InCallDndHandler.java b/java/com/android/incallui/InCallDndHandler.java
index 4ab3e84..dd4aea3 100644
--- a/java/com/android/incallui/InCallDndHandler.java
+++ b/java/com/android/incallui/InCallDndHandler.java
@@ -36,7 +36,8 @@
   private int userSelectedDndMode;
 
   public InCallDndHandler(Context context) {
-    prefs = PreferenceManager.getDefaultSharedPreferences(context);
+    prefs = PreferenceManager.getDefaultSharedPreferences(
+                context.createDeviceProtectedStorageContext());
     notificationManager = context.getSystemService(NotificationManager.class);
 
     // Save the user's Do Not Disturb mode so that it can be restored when the call ends
