[Galaxy S III General] felixchris:
This thread is about the 3 types of known wifi-roaming bugs, how to differentiate these and fix at least one of them with a little hack.

Documentation of the bug avioded by this workaround on Google: Click Here

BIG NEWS!! As mentioned by a spanish user above there are newer firmwares, that are correcting the wifi-roaming bug, that was fixed by this fix.

Confirmed by an german OTA-Update. So try upgrading your firmware to fix the bug.

But : Keep in mind that an OTA-Update, official from Samsung wont install on a modified system. This includes also our modified wpa-supplicant. So if you want to use a newer firmware you have to restore the old wpa-supplicant: View attachment 1749506(From The newest Firmware in Germany[OTA-Eplus, JZO54K.I9300XXELL4)

General facts to know about buggy Wifi-Roaming on Android Devices:
​

Bugs types that are existing

1.The phone never tries to roam by, unless it completely loses signal. Then it connects to the strongest AP. This is the typical Galaxy S2 bug.

2.The phone never tries to roam, and on top of that tries to reconnect to the specific AP that it knows, even if it is right next to a better one while connecting. This has been observed on some Nexus devices, but is apparently fixed on the Galaxy Nexus running CM10.

3.The phone tries to roam as it can see a better AP, but drops the connection and reconnects to the stronger AP shortly after. That's the typical Galaxy S3 and Galaxy Nexus bug, which is fixed by the hack described in this thread.

Only Bug 3 in this list is fixed by this hack. It will not help for the other two bugs!

To determine which bug you are observing, try this:​

- Pick two access points that are within range of each other, we will call them AP1 and AP2.

- Locate the phone close to AP1, turn on wifi, and connect to the network. You should get full signal strength.

- Start listening to a web radio stream using e.g. TuneIn Radio (available on Play Store), configure the buffer size to the minimum possible.

- Slowly walk towards AP2, watching the signal strength indicator.

- If you reach AP2 and the phone still shows a low signal strength (at most one bar) after 10-20 seconds:

You are observing a different bug which is not avoided by this workaround.

- Turn off wifi and turn it back on again.

- If the phone now connects to AP2 and shows a high signal strength, you are observing the

Galaxy S2 bug --> Bug 1 in the list

- If the phone still connects to AP1 and shows a low signal strength, you are observing the

Nexus bug --> Bug 2 in the list

- If the connection drops before getting close enough to AP2, the access points are too far away from each other. -->

Retry with a different set of access points.

- If the signal strength seems to increase while getting closer to AP2, but then the wifi icon disappears briefly and comes back after a few seconds, and the web radio stream drops, you are observing the

Galaxy S3 bug

, and this workaround will help you. -->

Bug 3 in the list

- If the signal strength increases while getting closer to AP2, the wifi icon doesn't disappear, and the web radio stream doesn't drop, everything is working normally -->

no bug

:

-You might have a device that just doesn't have a wifi bug. Apparently such devices indeed exist.

-You might have a Galaxy S3 or Galaxy Nexus, but you were lucky. Try walking back to AP1 and check if it drops the connection this time.

-You might have already applied the workaround above, or a different fix for the same bug. (However there doesn't seem to be one yet.)

______________________________________________________________________________________________________________________

Now as you know which bug your device has you maybe have noticed that your device has bug type 3, here is the hack to fix it:​

IMPORTANT: IM NOT RESPONSIBLE FOR NOT WORKING DEVICES AFTER THIS PROCEDURE. INSTALL AT YOUR OWN RISK!! THIS MOD IS EXPERIMENTAL!!

THIS MOD ONLY IS CONFIRMED WORKING FOR THE SAMSUNG GALAXY i9300 AND THE SAMSUNG GALAXY NEXUS i9250

For the installation procedure i give here root rights are needed. It also is recommended to make a CWM-Backup before. If you are unsure about root rights or dont know how to use a Custom Recovery feel free to ask before you do anything.​

Installation Instructions for the Standalone-file(no Custom-Recovery needed):

1. Download View attachment 1549807 and unzip

2. Search for your original "wpa_supplicant"-file in \system\bin.

You can use any Explorer that offers root-acess but be sure you set the permissions to rwx r-x r-x if you use another file explorer as i mentioned. It is needed for the file to have the permission to be executed

(f.e. Root Browser Lite)

3. Copy your original "wpa_supplicant"-file to any location you will remember in case anything goes wrong.

4. Delete the original "wpa_supplicant"-file from the folder

5. Paste the modified "wpa_supplicant"-file downloaded from here in \system\bin. Make sure the file still is named "wpa_supplicant"

6. Reboot your device

Installation Instructions for CWM Flashable-file(CWM-Recovery needed):

1. Download View attachment 1549825

2. Copy the downloaded file to your sdcard.

3. Search for your original "wpa_supplicant"-file in \system\bin.

You can use any Explorer that offers root-acess but be sure you set the permissions to rwx r-x r-x if you use another file explorer as i mentioned. It is needed for the file to have the permission to be executed

(f.e. Root Browser Lite)

4. Copy your original "wpa_supplicant"-file to any location you will remember in case anything goes wrong.

5. Reboot to recovery and flash the downloaded file.

6. Reboot your device.

Your device should now roam correctly from one AP to another.

Please leave your feedback here in the thread and hit the thanks-button if it fixed your problem. ENJOY ;)

FOR ADDITIONAL INFO: Click Here

______________________________________________________________________________________________________________________

Special Thanks to:

- TheSeven, who created this hack

- querty12, who created the flashable CWM-file

- Gabeloooooo, who was the first to give me feedback about this​