diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java
index baf8e7e..27a5c01 100644
--- a/src/com/android/settings/datausage/BillingCycleSettings.java
+++ b/src/com/android/settings/datausage/BillingCycleSettings.java
@@ -43,6 +43,7 @@
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.network.SubscriptionUtil;
+import com.android.settings.network.telephony.MobileNetworkUtils;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.NetworkPolicyEditor;
 import com.android.settingslib.net.DataUsageController;
@@ -503,7 +504,8 @@
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
-                    return SubscriptionUtil.isSimHardwareVisible(context)
+                    return (!MobileNetworkUtils.isMobileNetworkUserRestricted(context))
+                            && SubscriptionUtil.isSimHardwareVisible(context)
                             && DataUsageUtils.hasMobileData(context);
                 }
             };
diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index 65e880b..50c3f39 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -49,6 +49,7 @@
 import android.os.PersistableBundle;
 import android.os.SystemClock;
 import android.os.SystemProperties;
+import android.os.UserManager;
 import android.provider.Settings;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
@@ -114,6 +115,23 @@
     public static final Drawable EMPTY_DRAWABLE = new ColorDrawable(Color.TRANSPARENT);
 
     /**
+     * Return true if current user limited by UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS.
+     *
+     * Note: Guest user should have this restriction through
+     *       GuestTelephonyPreferenceController.java.
+     *       However, it's not help with those devices upgraded their software.
+     */
+    public static boolean isMobileNetworkUserRestricted(Context context) {
+        UserManager um = context.getSystemService(UserManager.class);
+        boolean disallow = false;
+        if (um != null) {
+            disallow = um.isGuestUser() || um.hasUserRestriction(
+                    UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
+        }
+        return disallow;
+    }
+
+    /**
      * Returns if DPC APNs are enforced.
      */
     public static boolean isDpcApnEnforced(Context context) {
