diff --git a/services/java/com/android/server/NetworkManagementService.java b/services/java/com/android/server/NetworkManagementService.java
index 552bed4..5e0439c 100644
--- a/services/java/com/android/server/NetworkManagementService.java
+++ b/services/java/com/android/server/NetworkManagementService.java
@@ -494,15 +494,20 @@
              * argv8 - Max SCB
              */
             String str = String.format("softap set " + wlanIface + " " + softapIface +
-                                       " \"%s\" %s %s", wifiConfig.SSID,
+                                       " %s %s %s", convertQuotedString(wifiConfig.SSID),
                                        wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_PSK) ?
                                        "wpa2-psk" : "open",
-                                       wifiConfig.preSharedKey);
+                                       convertQuotedString(wifiConfig.preSharedKey));
             mConnector.doCommand(str);
         }
         mConnector.doCommand(String.format("softap startap"));
     }
 
+    private String convertQuotedString(String s) {
+      /* Replace \ with \\, then " with \" and add quotes at end */
+      return '"' + s.replaceAll("\\\\","\\\\\\\\").replaceAll("\"","\\\\\"") + '"';
+    }
+
     public void stopAccessPoint() throws IllegalStateException {
         mContext.enforceCallingOrSelfPermission(
                 android.Manifest.permission.CHANGE_NETWORK_STATE, "NetworkManagementService");
@@ -521,10 +526,10 @@
             mConnector.doCommand(String.format("softap set " + wlanIface + " " + softapIface));
         } else {
             String str = String.format("softap set " + wlanIface + " " + softapIface +
-                                       " \"%s\" %s %s", wifiConfig.SSID,
+                                       " %s %s %s", convertQuotedString(wifiConfig.SSID),
                                        wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_PSK) ?
                                        "wpa2-psk" : "open",
-                                       wifiConfig.preSharedKey);
+                                       convertQuotedString(wifiConfig.preSharedKey));
             mConnector.doCommand(str);
         }
     }
