Broken Captive Portal detection on older Androids It seems like the captive portal detection on older smartphones is broken. During the last days, I had several (cheap) tablets and smartphones in my hands which showed an exclamation mark next to the WiFi flag indicator.
After some research, sniffing the phones wifi traffic with wireshark, I noticed several DNS resolutions for the domain "status.eqoe.cn". Searching for the domain yields not much results. However, checking the output of "adb logcat", I noticed an error message about not reaching said domain. This was the proof, the devices attempted to connect to that server, failed and assumed, there is no internet connection available.
It is unclear to me, why they use a server in China, known to be behind a solid firewall, for such an important check. Maybe the manufacturer expected the devices to be only sold in China and saw no problem with that. Or the server died recently and the owner does not now about the importance of it.
The fix was rather easy (given the previous research and input of a colleague of mine): Attempt to change the captive portal detection server to something reachable which produces a valid 204 response. Issuing one of these two commands configures the phone to either use a google server for such checks or disable the captive portal detection altogether. adb shell settings put global captive_portal_server clients1.google.com adb shell settings put global captive_portal_detection_enabled 0 Lesson learned: Cheap is not always best. I really hope there are no other Chinese-Special features in these handsets. |
No comments yet