Coding with Titans

so breaking things happens constantly, but never on purpose

Xiaomi HotSpot (tethering) not working

Yet, Internet connection sharing is an easy-to-use feature on my Xiaomi Redme Note 5 phone that has wasted me whole evening to get it right. Funny thing, really, since as a user I was supposed to enter Settings, navigate to Mobile Hotspot, define password and swipe to enable it. Also from that point of view, that’s all you can do, due to lack of any other configuration options. But as it turned out, there is a subtle “bug”, that causes it not to work on any Xiaomi phone (with MIUI and without).

Short story long… Of course data connection on the phone itself was always working fine. I could browse the net, connect via VPN to work network, watch YT, listen music from Spotify etc. Several times I needed to share this LTE connection with the Windows 10 laptop to perform some immediate tasks and it always failed. No matter what hour I tried, or the part of the city I was sitting. Then I mostly gave up and turned back for few moments to my BlackBerry Passport phone, where it was always working smoothly ;)

Finally I realized it’s time to find a solution to this issue. And here it is, few hours later.

I browsed the Internet and found all those misleading guides, that lead to nothing, so simply skip them:

  • First I thought it was due to problem with the way my APN (settings for data-connection) was defined:
  • Switched to IPv6 only
  • Reset everything to default
  • Confirmed with my mobile operator, whether default is right
  • Switched APN type to ‘default’
  • Switched MVNO type to ‘GID’
  • Switched to IPv4/IPv6
  • Set hotspot frequency to 5 GHz
  • Reset device, place SIM card in secondary slot
  • That all was wrong, still I could only to connect the PC to the hotspot, but no packets were actually transmitted over the LTE. Then I thought – maybe it’s the problem with Windows itself. So I tried:
  • Forced IPv6
  • Reset network settings to default
  • Hardcoded Google DNS – 8.8.8.8
  • ipconfig /renew
  • ipconfig /flushdns
  • ssh to any external serverContinuously nothing working correct, even when all the guides I have seen were claiming, it should be fine long ago. I have even found info about Samsung and Huawei devices, where IP ranges or default DNS can be defined directly on mobile.

Then boom! What if this is Xiaomi-only related “bug”. And that’s true. It flies around since several years and xda-developers.com has even a fix, that looks like:

  • install Android SDK
  • enable developer mode on the device
  • enable USB debugging and especially USB debugging extra security settings (without it further commands will throw security exception; also it might require registering at Xiaomi portal as developer)
  • connect the device via USB
  • in command prompt type adb shell to issue further commands on the device directly
  • check value of tether_dun_required, that in my case was null as described in the original fix, with command: settings get global tether_dun_required
  • if the value is different than ‘0’, hotspot will not work
  • to set it type: settings put global tether_dun_required 0
  • exit shell and reboot the device

And now it works finally!