Loading core/jni/android_net_wifi_Wifi.cpp +10 −7 Original line number Diff line number Diff line Loading @@ -173,14 +173,17 @@ static jboolean android_net_wifi_wpsPbcCommand(JNIEnv* env, jobject clazz, jstri return doBooleanCommand(cmdstr, "OK"); } static jboolean android_net_wifi_wpsPinFromAccessPointCommand(JNIEnv* env, jobject clazz, jstring bssid, int apPin) static jboolean android_net_wifi_wpsPinFromAccessPointCommand(JNIEnv* env, jobject clazz, jstring bssid, jstring apPin) { char cmdstr[BUF_SIZE]; jboolean isCopy; const char *bssidStr = env->GetStringUTFChars(bssid, &isCopy); int numWritten = snprintf(cmdstr, sizeof(cmdstr), "WPS_REG %s %d", bssidStr, apPin); const char *apPinStr = env->GetStringUTFChars(apPin, &isCopy); int numWritten = snprintf(cmdstr, sizeof(cmdstr), "WPS_REG %s %s", bssidStr, apPinStr); env->ReleaseStringUTFChars(bssid, bssidStr); env->ReleaseStringUTFChars(apPin, apPinStr); if ((numWritten == -1) || (numWritten >= (int)sizeof(cmdstr))) { return false; Loading @@ -188,7 +191,7 @@ static jboolean android_net_wifi_wpsPinFromAccessPointCommand(JNIEnv* env, jobje return doBooleanCommand(cmdstr, "OK"); } static jint android_net_wifi_wpsPinFromDeviceCommand(JNIEnv* env, jobject clazz, jstring bssid) static jstring android_net_wifi_wpsPinFromDeviceCommand(JNIEnv* env, jobject clazz, jstring bssid) { char cmdstr[BUF_SIZE]; jboolean isCopy; Loading @@ -198,9 +201,9 @@ static jint android_net_wifi_wpsPinFromDeviceCommand(JNIEnv* env, jobject clazz, env->ReleaseStringUTFChars(bssid, bssidStr); if ((numWritten == -1) || (numWritten >= (int)sizeof(cmdstr))) { return -1; return NULL; } return doIntCommand(cmdstr); return doStringCommand(env, cmdstr); } static jboolean android_net_wifi_setCountryCodeCommand(JNIEnv* env, jobject clazz, jstring country) Loading Loading @@ -648,9 +651,9 @@ static JNINativeMethod gWifiMethods[] = { { "addToBlacklistCommand", "(Ljava/lang/String;)Z", (void*) android_net_wifi_addToBlacklistCommand }, { "clearBlacklistCommand", "()Z", (void*) android_net_wifi_clearBlacklistCommand }, { "startWpsPbcCommand", "(Ljava/lang/String;)Z", (void*) android_net_wifi_wpsPbcCommand }, { "startWpsWithPinFromAccessPointCommand", "(Ljava/lang/String;I)Z", { "startWpsWithPinFromAccessPointCommand", "(Ljava/lang/String;Ljava/lang/String;)Z", (void*) android_net_wifi_wpsPinFromAccessPointCommand }, { "startWpsWithPinFromDeviceCommand", "(Ljava/lang/String;)I", { "startWpsWithPinFromDeviceCommand", "(Ljava/lang/String;)Ljava/lang/String;", (void*) android_net_wifi_wpsPinFromDeviceCommand }, { "setSuspendOptimizationsCommand", "(Z)Z", (void*) android_net_wifi_setSuspendOptimizationsCommand}, Loading services/java/com/android/server/WifiService.java +4 −13 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.SupplicantState; import android.net.wifi.WifiConfiguration.KeyMgmt; import android.net.wifi.WpsConfiguration; import android.net.ConnectivityManager; import android.net.InterfaceConfiguration; import android.net.DhcpInfo; Loading Loading @@ -843,23 +844,13 @@ public class WifiService extends IWifiManager.Stub { mWifiStateMachine.forgetNetwork(netId); } public void startWpsPbc(String bssid) { enforceChangePermission(); mWifiStateMachine.startWpsPbc(bssid); } public void startWpsWithPinFromAccessPoint(String bssid, int apPin) { enforceChangePermission(); mWifiStateMachine.startWpsWithPinFromAccessPoint(bssid, apPin); } public int startWpsWithPinFromDevice(String bssid) { public String startWps(WpsConfiguration config) { enforceChangePermission(); if (mChannel != null) { return mWifiStateMachine.syncStartWpsWithPinFromDevice(mChannel, bssid); return mWifiStateMachine.startWps(mChannel, config); } else { Slog.e(TAG, "mChannel is not initialized"); return -1; return ""; } } Loading wifi/java/android/net/wifi/IWifiManager.aidl +2 −5 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.net.wifi; import android.net.wifi.WifiInfo; import android.net.wifi.WifiConfiguration; import android.net.wifi.WpsConfiguration; import android.net.wifi.ScanResult; import android.net.DhcpInfo; Loading Loading @@ -108,10 +109,6 @@ interface IWifiManager void forgetNetwork(int networkId); void startWpsPbc(String bssid); void startWpsWithPinFromAccessPoint(String bssid, int apPin); int startWpsWithPinFromDevice(String bssid); String startWps(in WpsConfiguration config); } wifi/java/android/net/wifi/SupplicantStateTracker.java +0 −23 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.util.Log; * that is based on these state changes: * - detect a failed WPA handshake that loops indefinitely * - password failure handling * - Enable networks after a WPS success/failure */ class SupplicantStateTracker extends HierarchicalStateMachine { Loading @@ -49,10 +48,6 @@ class SupplicantStateTracker extends HierarchicalStateMachine { /* Maximum retries on a password failure notification */ private static final int MAX_RETRIES_ON_PASSWORD_FAILURE = 2; /* Track if WPS was started since we need to re-enable networks * and load configuration afterwards */ private boolean mWpsStarted = false; private Context mContext; private HierarchicalState mUninitializedState = new UninitializedState(); Loading Loading @@ -156,11 +151,6 @@ class SupplicantStateTracker extends HierarchicalStateMachine { mPasswordFailuresCount++; mAuthFailureInSupplicantBroadcast = true; break; case WifiStateMachine.CMD_START_WPS_PBC: case WifiStateMachine.CMD_START_WPS_PIN_FROM_AP: case WifiStateMachine.CMD_START_WPS_PIN_FROM_DEVICE: mWpsStarted = true; break; case WifiStateMachine.SUPPLICANT_STATE_CHANGE_EVENT: StateChangeResult stateChangeResult = (StateChangeResult) message.obj; sendSupplicantStateChangedBroadcast(stateChangeResult, Loading Loading @@ -192,12 +182,6 @@ class SupplicantStateTracker extends HierarchicalStateMachine { @Override public void enter() { if (DBG) Log.d(TAG, getName() + "\n"); /* A failed WPS connection */ if (mWpsStarted) { Log.e(TAG, "WPS set up failed, enabling other networks"); WifiConfigStore.enableAllNetworks(); mWpsStarted = false; } mWifiStateMachine.setNetworkAvailable(false); } @Override Loading Loading @@ -289,13 +273,6 @@ class SupplicantStateTracker extends HierarchicalStateMachine { if (DBG) Log.d(TAG, getName() + "\n"); /* Reset password failure count */ mPasswordFailuresCount = 0; /* A successful WPS connection */ if (mWpsStarted) { WifiConfigStore.enableAllNetworks(); WifiConfigStore.loadConfiguredNetworks(); mWpsStarted = false; } } @Override public boolean processMessage(Message message) { Loading wifi/java/android/net/wifi/WifiConfigStore.java +21 −7 Original line number Diff line number Diff line Loading @@ -366,8 +366,8 @@ class WifiConfigStore { * Start WPS pin method configuration with pin obtained * from the access point */ static boolean startWpsWithPinFromAccessPoint(String bssid, int apPin) { if (WifiNative.startWpsWithPinFromAccessPointCommand(bssid, apPin)) { static boolean startWpsWithPinFromAccessPoint(WpsConfiguration config) { if (WifiNative.startWpsWithPinFromAccessPointCommand(config.BSSID, config.pin)) { /* WPS leaves all networks disabled */ markAllNetworksDisabled(); return true; Loading @@ -379,14 +379,16 @@ class WifiConfigStore { /** * Start WPS pin method configuration with pin obtained * from the device * @return empty string on failure. null is never returned. */ static int startWpsWithPinFromDevice(String bssid) { int pin = WifiNative.startWpsWithPinFromDeviceCommand(bssid); static String startWpsWithPinFromDevice(WpsConfiguration config) { String pin = WifiNative.startWpsWithPinFromDeviceCommand(config.BSSID); /* WPS leaves all networks disabled */ if (pin != -1) { if (!TextUtils.isEmpty(pin)) { markAllNetworksDisabled(); } else { Log.e(TAG, "Failed to start WPS pin method configuration"); pin = ""; } return pin; } Loading @@ -394,8 +396,8 @@ class WifiConfigStore { /** * Start WPS push button configuration */ static boolean startWpsPbc(String bssid) { if (WifiNative.startWpsPbcCommand(bssid)) { static boolean startWpsPbc(WpsConfiguration config) { if (WifiNative.startWpsPbcCommand(config.BSSID)) { /* WPS leaves all networks disabled */ markAllNetworksDisabled(); return true; Loading Loading @@ -527,6 +529,18 @@ class WifiConfigStore { sendConfiguredNetworksChangedBroadcast(); } static void updateIpAndProxyFromWpsConfig(int netId, WpsConfiguration wpsConfig) { synchronized (sConfiguredNetworks) { WifiConfiguration config = sConfiguredNetworks.get(netId); if (config != null) { config.ipAssignment = wpsConfig.ipAssignment; config.proxySettings = wpsConfig.proxySettings; config.linkProperties = wpsConfig.linkProperties; writeIpAndProxyConfigurations(); } } } /* Mark all networks except specified netId as disabled */ private static void markAllNetworksDisabledExcept(int netId) { synchronized (sConfiguredNetworks) { Loading Loading
core/jni/android_net_wifi_Wifi.cpp +10 −7 Original line number Diff line number Diff line Loading @@ -173,14 +173,17 @@ static jboolean android_net_wifi_wpsPbcCommand(JNIEnv* env, jobject clazz, jstri return doBooleanCommand(cmdstr, "OK"); } static jboolean android_net_wifi_wpsPinFromAccessPointCommand(JNIEnv* env, jobject clazz, jstring bssid, int apPin) static jboolean android_net_wifi_wpsPinFromAccessPointCommand(JNIEnv* env, jobject clazz, jstring bssid, jstring apPin) { char cmdstr[BUF_SIZE]; jboolean isCopy; const char *bssidStr = env->GetStringUTFChars(bssid, &isCopy); int numWritten = snprintf(cmdstr, sizeof(cmdstr), "WPS_REG %s %d", bssidStr, apPin); const char *apPinStr = env->GetStringUTFChars(apPin, &isCopy); int numWritten = snprintf(cmdstr, sizeof(cmdstr), "WPS_REG %s %s", bssidStr, apPinStr); env->ReleaseStringUTFChars(bssid, bssidStr); env->ReleaseStringUTFChars(apPin, apPinStr); if ((numWritten == -1) || (numWritten >= (int)sizeof(cmdstr))) { return false; Loading @@ -188,7 +191,7 @@ static jboolean android_net_wifi_wpsPinFromAccessPointCommand(JNIEnv* env, jobje return doBooleanCommand(cmdstr, "OK"); } static jint android_net_wifi_wpsPinFromDeviceCommand(JNIEnv* env, jobject clazz, jstring bssid) static jstring android_net_wifi_wpsPinFromDeviceCommand(JNIEnv* env, jobject clazz, jstring bssid) { char cmdstr[BUF_SIZE]; jboolean isCopy; Loading @@ -198,9 +201,9 @@ static jint android_net_wifi_wpsPinFromDeviceCommand(JNIEnv* env, jobject clazz, env->ReleaseStringUTFChars(bssid, bssidStr); if ((numWritten == -1) || (numWritten >= (int)sizeof(cmdstr))) { return -1; return NULL; } return doIntCommand(cmdstr); return doStringCommand(env, cmdstr); } static jboolean android_net_wifi_setCountryCodeCommand(JNIEnv* env, jobject clazz, jstring country) Loading Loading @@ -648,9 +651,9 @@ static JNINativeMethod gWifiMethods[] = { { "addToBlacklistCommand", "(Ljava/lang/String;)Z", (void*) android_net_wifi_addToBlacklistCommand }, { "clearBlacklistCommand", "()Z", (void*) android_net_wifi_clearBlacklistCommand }, { "startWpsPbcCommand", "(Ljava/lang/String;)Z", (void*) android_net_wifi_wpsPbcCommand }, { "startWpsWithPinFromAccessPointCommand", "(Ljava/lang/String;I)Z", { "startWpsWithPinFromAccessPointCommand", "(Ljava/lang/String;Ljava/lang/String;)Z", (void*) android_net_wifi_wpsPinFromAccessPointCommand }, { "startWpsWithPinFromDeviceCommand", "(Ljava/lang/String;)I", { "startWpsWithPinFromDeviceCommand", "(Ljava/lang/String;)Ljava/lang/String;", (void*) android_net_wifi_wpsPinFromDeviceCommand }, { "setSuspendOptimizationsCommand", "(Z)Z", (void*) android_net_wifi_setSuspendOptimizationsCommand}, Loading
services/java/com/android/server/WifiService.java +4 −13 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.SupplicantState; import android.net.wifi.WifiConfiguration.KeyMgmt; import android.net.wifi.WpsConfiguration; import android.net.ConnectivityManager; import android.net.InterfaceConfiguration; import android.net.DhcpInfo; Loading Loading @@ -843,23 +844,13 @@ public class WifiService extends IWifiManager.Stub { mWifiStateMachine.forgetNetwork(netId); } public void startWpsPbc(String bssid) { enforceChangePermission(); mWifiStateMachine.startWpsPbc(bssid); } public void startWpsWithPinFromAccessPoint(String bssid, int apPin) { enforceChangePermission(); mWifiStateMachine.startWpsWithPinFromAccessPoint(bssid, apPin); } public int startWpsWithPinFromDevice(String bssid) { public String startWps(WpsConfiguration config) { enforceChangePermission(); if (mChannel != null) { return mWifiStateMachine.syncStartWpsWithPinFromDevice(mChannel, bssid); return mWifiStateMachine.startWps(mChannel, config); } else { Slog.e(TAG, "mChannel is not initialized"); return -1; return ""; } } Loading
wifi/java/android/net/wifi/IWifiManager.aidl +2 −5 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.net.wifi; import android.net.wifi.WifiInfo; import android.net.wifi.WifiConfiguration; import android.net.wifi.WpsConfiguration; import android.net.wifi.ScanResult; import android.net.DhcpInfo; Loading Loading @@ -108,10 +109,6 @@ interface IWifiManager void forgetNetwork(int networkId); void startWpsPbc(String bssid); void startWpsWithPinFromAccessPoint(String bssid, int apPin); int startWpsWithPinFromDevice(String bssid); String startWps(in WpsConfiguration config); }
wifi/java/android/net/wifi/SupplicantStateTracker.java +0 −23 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.util.Log; * that is based on these state changes: * - detect a failed WPA handshake that loops indefinitely * - password failure handling * - Enable networks after a WPS success/failure */ class SupplicantStateTracker extends HierarchicalStateMachine { Loading @@ -49,10 +48,6 @@ class SupplicantStateTracker extends HierarchicalStateMachine { /* Maximum retries on a password failure notification */ private static final int MAX_RETRIES_ON_PASSWORD_FAILURE = 2; /* Track if WPS was started since we need to re-enable networks * and load configuration afterwards */ private boolean mWpsStarted = false; private Context mContext; private HierarchicalState mUninitializedState = new UninitializedState(); Loading Loading @@ -156,11 +151,6 @@ class SupplicantStateTracker extends HierarchicalStateMachine { mPasswordFailuresCount++; mAuthFailureInSupplicantBroadcast = true; break; case WifiStateMachine.CMD_START_WPS_PBC: case WifiStateMachine.CMD_START_WPS_PIN_FROM_AP: case WifiStateMachine.CMD_START_WPS_PIN_FROM_DEVICE: mWpsStarted = true; break; case WifiStateMachine.SUPPLICANT_STATE_CHANGE_EVENT: StateChangeResult stateChangeResult = (StateChangeResult) message.obj; sendSupplicantStateChangedBroadcast(stateChangeResult, Loading Loading @@ -192,12 +182,6 @@ class SupplicantStateTracker extends HierarchicalStateMachine { @Override public void enter() { if (DBG) Log.d(TAG, getName() + "\n"); /* A failed WPS connection */ if (mWpsStarted) { Log.e(TAG, "WPS set up failed, enabling other networks"); WifiConfigStore.enableAllNetworks(); mWpsStarted = false; } mWifiStateMachine.setNetworkAvailable(false); } @Override Loading Loading @@ -289,13 +273,6 @@ class SupplicantStateTracker extends HierarchicalStateMachine { if (DBG) Log.d(TAG, getName() + "\n"); /* Reset password failure count */ mPasswordFailuresCount = 0; /* A successful WPS connection */ if (mWpsStarted) { WifiConfigStore.enableAllNetworks(); WifiConfigStore.loadConfiguredNetworks(); mWpsStarted = false; } } @Override public boolean processMessage(Message message) { Loading
wifi/java/android/net/wifi/WifiConfigStore.java +21 −7 Original line number Diff line number Diff line Loading @@ -366,8 +366,8 @@ class WifiConfigStore { * Start WPS pin method configuration with pin obtained * from the access point */ static boolean startWpsWithPinFromAccessPoint(String bssid, int apPin) { if (WifiNative.startWpsWithPinFromAccessPointCommand(bssid, apPin)) { static boolean startWpsWithPinFromAccessPoint(WpsConfiguration config) { if (WifiNative.startWpsWithPinFromAccessPointCommand(config.BSSID, config.pin)) { /* WPS leaves all networks disabled */ markAllNetworksDisabled(); return true; Loading @@ -379,14 +379,16 @@ class WifiConfigStore { /** * Start WPS pin method configuration with pin obtained * from the device * @return empty string on failure. null is never returned. */ static int startWpsWithPinFromDevice(String bssid) { int pin = WifiNative.startWpsWithPinFromDeviceCommand(bssid); static String startWpsWithPinFromDevice(WpsConfiguration config) { String pin = WifiNative.startWpsWithPinFromDeviceCommand(config.BSSID); /* WPS leaves all networks disabled */ if (pin != -1) { if (!TextUtils.isEmpty(pin)) { markAllNetworksDisabled(); } else { Log.e(TAG, "Failed to start WPS pin method configuration"); pin = ""; } return pin; } Loading @@ -394,8 +396,8 @@ class WifiConfigStore { /** * Start WPS push button configuration */ static boolean startWpsPbc(String bssid) { if (WifiNative.startWpsPbcCommand(bssid)) { static boolean startWpsPbc(WpsConfiguration config) { if (WifiNative.startWpsPbcCommand(config.BSSID)) { /* WPS leaves all networks disabled */ markAllNetworksDisabled(); return true; Loading Loading @@ -527,6 +529,18 @@ class WifiConfigStore { sendConfiguredNetworksChangedBroadcast(); } static void updateIpAndProxyFromWpsConfig(int netId, WpsConfiguration wpsConfig) { synchronized (sConfiguredNetworks) { WifiConfiguration config = sConfiguredNetworks.get(netId); if (config != null) { config.ipAssignment = wpsConfig.ipAssignment; config.proxySettings = wpsConfig.proxySettings; config.linkProperties = wpsConfig.linkProperties; writeIpAndProxyConfigurations(); } } } /* Mark all networks except specified netId as disabled */ private static void markAllNetworksDisabledExcept(int netId) { synchronized (sConfiguredNetworks) { Loading