diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java
index 8d8b087..2405b8e 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -22,10 +22,15 @@
 import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.annotation.SuppressLint;
+import android.annotation.TargetApi;
+import android.app.KeyguardManager;
+import android.app.KeyguardManager.KeyguardDismissCallback;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.location.Location;
 import android.net.Uri;
+import android.os.Build.VERSION;
+import android.os.Build.VERSION_CODES;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
@@ -1052,14 +1057,47 @@
   }
 
   @Override
+  @TargetApi(VERSION_CODES.O)
   public void smsSelected(@Nullable CharSequence text) {
     LogUtil.i("AnswerFragment.smsSelected", null);
     textResponsesFragment = null;
 
     if (text == null) {
-      createCustomSmsDialogFragment = CreateCustomSmsDialogFragment.newInstance();
-      createCustomSmsDialogFragment.show(getChildFragmentManager(), null);
-      return;
+      if (VERSION.SDK_INT < VERSION_CODES.O) {
+        LogUtil.i("AnswerFragment.smsSelected", "below O, showing dialog directly");
+        showCustomSmsDialog();
+        return;
+      }
+      if (!getContext().getSystemService(KeyguardManager.class).isKeyguardLocked()) {
+        LogUtil.i("AnswerFragment.smsSelected", "not locked, showing dialog directly");
+        showCustomSmsDialog();
+        return;
+      }
+
+      // Show the custom reply dialog only after device is unlocked, as it may cause impersonation
+      // see b/137134588
+      LogUtil.i("AnswerFragment.smsSelected", "dismissing keyguard");
+      getContext()
+          .getSystemService(KeyguardManager.class)
+          .requestDismissKeyguard(
+              getActivity(),
+              new KeyguardDismissCallback() {
+                @Override
+                public void onDismissCancelled() {
+                  LogUtil.i("AnswerFragment.smsSelected", "onDismissCancelled");
+                }
+
+                @Override
+                public void onDismissError() {
+                  LogUtil.i("AnswerFragment.smsSelected", "onDismissError");
+                }
+
+                @Override
+                public void onDismissSucceeded() {
+                  LogUtil.i("AnswerFragment.smsSelected", "onDismissSucceeded");
+                  showCustomSmsDialog();
+                }
+              });return;
     }
 
     if (primaryCallState != null && canRejectCallWithSms()) {
@@ -1068,6 +1106,11 @@
     }
   }
 
+  private void showCustomSmsDialog() {
+    createCustomSmsDialogFragment = CreateCustomSmsDialogFragment.newInstance();
+    createCustomSmsDialogFragment.showNow(getChildFragmentManager(), null);
+  }
+
   @Override
   public void smsDismissed() {
     LogUtil.i("AnswerFragment.smsDismissed", null);
diff --git a/java/com/android/voicemail/impl/res/xml/vvm_config.xml b/java/com/android/voicemail/impl/res/xml/vvm_config.xml
index 077d603..dd142ec 100644
--- a/java/com/android/voicemail/impl/res/xml/vvm_config.xml
+++ b/java/com/android/voicemail/impl/res/xml/vvm_config.xml
@@ -21,200 +21,4 @@
       <item value="TEST"/>
     </string-array>
   </pbundle_as_map>
-
-  <pbundle_as_map>
-    <!-- Bouygues France -->
-    <string-array name="mccmnc">
-      <item value="20820"/>
-      <item value="20821"/>
-      <item value="20888"/>
-    </string-array>
-    <string name="feature_flag_name">vvm_carrier_flag_20820</string>
-    <int
-        name="vvm_port_number_int"
-        value="5499"/>
-    <string name="vvm_destination_number_string">22344</string>
-    <string name="vvm_type_string">vvm_type_omtp</string>
-  </pbundle_as_map>
-
-  <pbundle_as_map>
-    <!-- Orange Belgium -->
-    <string-array name="mccmnc">
-      <item value="20610"/>
-    </string-array>
-
-    <int
-        name="vvm_port_number_int"
-        value="0"/>
-    <string name="vvm_destination_number_string">8082</string>
-    <string name="vvm_type_string">vvm_type_omtp</string>
-    <boolean
-        name="vvm_cellular_data_required_bool"
-        value="true"/>
-    <!-- Carrier VVM app com.orange.vvm only supports Orange FR-->
-    <string-array name="vvm_disabled_capabilities_string_array">
-      <!-- a bug -->
-      <item value="STARTTLS"/>
-    </string-array>
-  </pbundle_as_map>
-
-  <pbundle_as_map>
-    <!-- Orange France -->
-    <string-array name="mccmnc">
-      <item value="20801"/>
-      <item value="20802"/>
-    </string-array>
-
-    <int
-        name="vvm_port_number_int"
-        value="20481"/>
-    <string name="vvm_destination_number_string">21101</string>
-    <string-array name="carrier_vvm_package_name_string_array">
-      <item value="com.orange.vvm"/>
-    </string-array>
-    <string name="vvm_type_string">vvm_type_omtp</string>
-    <boolean
-        name="vvm_cellular_data_required_bool"
-        value="true"/>
-    <string-array name="vvm_disabled_capabilities_string_array">
-      <!-- a bug -->
-      <item value="STARTTLS"/>
-    </string-array>
-  </pbundle_as_map>
-
-  <pbundle_as_map>
-    <!-- T-Mobile USA-->
-    <string-array name="mccmnc">
-      <item value="310160"/>
-      <item value="310200"/>
-      <item value="310210"/>
-      <item value="310220"/>
-      <item value="310230"/>
-      <item value="310240"/>
-      <item value="310250"/>
-      <item value="310260"/>
-      <item value="310270"/>
-      <item value="310300"/>
-      <item value="310310"/>
-      <item value="310490"/>
-      <item value="310530"/>
-      <item value="310590"/>
-      <item value="310640"/>
-      <item value="310660"/>
-      <item value="310800"/>
-    </string-array>
-
-    <int
-        name="vvm_port_number_int"
-        value="1808"/>
-    <int
-        name="vvm_ssl_port_number_int"
-        value="993"/>
-    <string name="vvm_destination_number_string">122</string>
-    <string-array name="carrier_vvm_package_name_string_array">
-      <item value="com.tmobile.vvm.application"/>
-    </string-array>
-    <string name="vvm_type_string">vvm_type_cvvm</string>>
-    <string-array name="vvm_disabled_capabilities_string_array">
-      <!-- a bug -->
-      <item value="AUTH=DIGEST-MD5"/>
-    </string-array>
-    <string name="vvm_carrier_allows_ott_transcription_string">true</string>
-    <boolean
-        name="vvm_ignore_transcription"
-        value="false"/>
-  </pbundle_as_map>
-
-  <pbundle_as_map>
-    <!-- tracfone USA-->
-    <string name="feature_flag_name">vvm_carrier_flag_tracfone_usa</string>
-
-    <string-array name="mccmnc">
-      <item value="310260?gid1=4d4b"/>
-      <item value="310260?gid1=534d"/>
-      <item value="310260?gid1=6134"/>
-      <item value="310260?gid1=ddff"/>
-      <item value="310260?gid1=deff"/>
-      <item value="311480?gid1=BA01270000000000"/>
-    </string-array>
-
-    <string name="vvm_type_string">vvm_type_disable</string>>
-  </pbundle_as_map>
-
-  <pbundle_as_map>
-    <!-- Telus Canada -->
-    <string name="feature_flag_name">vvm_carrier_flag_302220</string>
-    <string-array name="mccmnc">
-      <item value="302220"/>
-    </string-array>
-    <int
-        name="vvm_port_number_int"
-        value="5499"/>
-    <string name="vvm_destination_number_string">7723</string>
-    <string name="vvm_type_string">vvm_type_omtp</string>
-    <boolean
-        name="vvm_cellular_data_required_bool"
-        value="true"/>
-  </pbundle_as_map>
-
-  <pbundle_as_map>
-    <!-- Verizon USA -->
-    <string-array name="mccmnc">
-      <item value="310004"/>
-      <item value="310010"/>
-      <item value="310012"/>
-      <item value="310013"/>
-      <item value="310590"/>
-      <item value="310890"/>
-      <item value="310910"/>
-      <item value="311110"/>
-      <item value="311270"/>
-      <item value="311271"/>
-      <item value="311272"/>
-      <item value="311273"/>
-      <item value="311274"/>
-      <item value="311275"/>
-      <item value="311276"/>
-      <item value="311277"/>
-      <item value="311278"/>
-      <item value="311279"/>
-      <item value="311280"/>
-      <item value="311281"/>
-      <item value="311282"/>
-      <item value="311283"/>
-      <item value="311284"/>
-      <item value="311285"/>
-      <item value="311286"/>
-      <item value="311287"/>
-      <item value="311288"/>
-      <item value="311289"/>
-      <item value="311390"/>
-      <item value="311480"/>
-      <item value="311481"/>
-      <item value="311482"/>
-      <item value="311483"/>
-      <item value="311484"/>
-      <item value="311485"/>
-      <item value="311486"/>
-      <item value="311487"/>
-      <item value="311488"/>
-      <item value="311489"/>
-    </string-array>
-
-    <int
-        name="vvm_port_number_int"
-        value="0"/>
-    <string name="vvm_destination_number_string">900080006200</string>
-    <string name="vvm_type_string">vvm_type_vvm3</string>
-    <string name="vvm_client_prefix_string">//VZWVVM</string>
-    <boolean
-        name="vvm_cellular_data_required_bool"
-        value="true"/>
-    <boolean
-        name="vvm_legacy_mode_enabled_bool"
-        value="true"/>
-    <!-- VVM3 specific value for the voicemail management gateway to use if the SMS didn't provide
-         one -->
-    <string name="default_vmg_url">https://mobile.vzw.com/VMGIMS/VMServices</string>
-  </pbundle_as_map>
 </list>
