diff --git a/src/com/android/phone/InCallScreenShowActivation.java b/src/com/android/phone/InCallScreenShowActivation.java
index 34710a1..3b5fe16 100644
--- a/src/com/android/phone/InCallScreenShowActivation.java
+++ b/src/com/android/phone/InCallScreenShowActivation.java
@@ -25,6 +25,7 @@
 import android.os.Bundle;
 import android.os.SystemProperties;
 import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
 import android.util.Log;
 
 import com.android.internal.telephony.Phone;
@@ -71,7 +72,8 @@
 
         if (intent.getAction().equals(OtaUtils.ACTION_PERFORM_CDMA_PROVISIONING)) {
 
-            boolean usesHfa = getResources().getBoolean(R.bool.config_use_hfa_for_provisioning);
+            Bundle carrierConfig = app.getCarrierConfig();
+            boolean usesHfa = carrierConfig.getBoolean(CarrierConfigManager.BOOL_USE_HFA_FOR_PROVISIONING);
             if (usesHfa) {
                 Log.i(LOG_TAG, "Starting Hfa from ACTION_PERFORM_CDMA_PROVISIONING");
                 startHfa();
@@ -79,7 +81,7 @@
                 return;
             }
 
-            boolean usesOtasp = getResources().getBoolean(R.bool.config_use_otasp_for_provisioning);
+            boolean usesOtasp = carrierConfig.getBoolean(CarrierConfigManager.BOOL_USE_OTASP_FOR_PROVISIONING);
             if (usesOtasp) {
                 // On voice-capable devices, we perform CDMA provisioning in
                 // "interactive" mode by directly launching the InCallScreen.
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 48b2bf9..b931340 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -34,6 +34,7 @@
 import android.media.AudioManager;
 import android.net.Uri;
 import android.os.AsyncResult;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.IPowerManager;
@@ -509,6 +510,10 @@
         return mCM;
     }
 
+    /* package */ Bundle getCarrierConfig() {
+        return configLoader.getConfigForSubId(SubscriptionManager.getDefaultSubId());
+    }
+
     /**
      * Returns PendingIntent for hanging up ongoing phone call. This will typically be used from
      * Notification context.
