M6 6500 / M6 6550 (US)
The goal of this document is to make it easy for everyone to unlock their M6 Hotspot routers. I purchased a refurbished M6 router with a version that did not allow to do what I wanted. After several hours of research and experimentation, I was able to get it to work. Here’s what I did:
Before you get started:
You will need:
- A windows machine (to use FDT)
- M6 router (MR6500 or M6550)
- Latest stable M6550 Firmware, In case your router is not unlockable (MR6550-100PAS 12.01.54.00)
- FDT.exe version 4.6.2.0
- AC78x Drivers (optional, but I had to install them)
- Putty
The order of operations is:
- Firmware flashing (dangerous, only required if the unlock process fails)
- Unlock process
- TTL Mangle and Update prevention
- In your router, make sure you have USB Tethering enabled.
- Connect the router to your Windows computer via USB.
- Make sure your router is connected by opening a browser and navigating to your router's config page, usually http://192.168.1.1/.
- Open Putty and use the following settings to connect to your router:
- Host Name: 192.168.1.1
- Port: 5510
- Connection Type: Telnet
- On the terminal run . This command will output information about your device.
Code: Select all
ATI
- On the terminal run . This command will print a challenge.
Code: Select all
AT!OPENLOCK?
- Navigate to https://sierra-keygen.uu.sg/ and use the following to generate a challenge response:
- Device generation: SDX65
- Challenge type: OPENLOCK
- Challenge: The challenge you got from the previous step. ex: 884B78W2BTE2AA2A
- After you click generate, the website will output a challenge response command. This command looks like . Type this command in your terminal.
Code: Select all
AT!OPENLOCK="6TTD4765F1894F64"
- On the terminal run . This will generate a challenge.
Code: Select all
AT!OPENMEP?
- Navigate to https://sierra-keygen.uu.sg/ and use the following to generate a challenge response:
- Device generation: SDX65
- Challenge type: OPENMEP
- Challenge: The challenge you got from the previous step. ex: 884B78W2BTE2AA2A
- After you click generate, the website will output a challenge response command. This command looks like . Type this command in your terminal.
Code: Select all
AT!OPENMEP="C4E48EF7FA4C4C33"
- On the terminal run the following:
Code: Select all
AT!TELEN=1
Code: Select all
AT!CUSTOM="RDENABLE",1
Code: Select all
AT!CUSTOM="TELNETENABLE",1
Code: Select all
AT!NVIMEIUNLOCK
- Navigate to https://carlosalaniz.github.io/imei-encryptor/ and input your IMEI.
- In the terminal type the command outputted in the previous step. ex. [/i]
Code: Select all
AT!NVENCRYPTIMEI=00,00,00,00,00,00,00,00
- Restart the router by running
Code: Select all
AT!RESET
- In your router, make sure you have USB Tethering enabled.
- Connect the router to your Windows computer via USB.
- Make sure your router is connected by opening a browser and navigating to your router's config page, usually http://192.168.1.1/.
- Open Putty and use the following settings to connect to your router:
- Host Name: 192.168.1.1
- Port: 23
- Connection Type: Telnet
- On the terminal run the following:
Code: Select all
dx -c Oma.DMAccountServerAddress1 https://no.updateforyou.net:443/junk
Code: Select all
touch /usr/sbin/set-ttl.sh chmod +x /usr/sbin/set-ttl.sh
Code: Select all
echo '#!/bin/bash' > /usr/sbin/set-ttl.sh echo '' >> /usr/sbin/set-ttl.sh echo '# Enable debugging' >> /usr/sbin/set-ttl.sh echo 'set -x' >> /usr/sbin/set-ttl.sh echo '' >> /usr/sbin/set-ttl.sh echo '# Log output to a file' >> /usr/sbin/set-ttl.sh echo 'exec > /var/log/set-ttl.log 2>&1' >> /usr/sbin/set-ttl.sh echo '' >> /usr/sbin/set-ttl.sh echo '# Flush mangle table rules for IPv4 and IPv6' >> /usr/sbin/set-ttl.sh echo 'iptables -t mangle -F' >> /usr/sbin/set-ttl.sh echo 'ip6tables -t mangle -F' >> /usr/sbin/set-ttl.sh echo '' >> /usr/sbin/set-ttl.sh echo '# Set TTL for IPv4 on rmnet_data0 interface' >> /usr/sbin/set-ttl.sh echo 'ip6tables -t mangle -I POSTROUTING -o rmnet_data0 -j HL --hl-set 64' >> /usr/sbin/set-ttl.sh echo 'iptables -t mangle -I POSTROUTING -o rmnet_data0 -j TTL --ttl-set 64' >> /usr/sbin/set-ttl.sh echo '' >> /usr/sbin/set-ttl.sh echo 'exit 0' >> /usr/sbin/set-ttl.sh
Code: Select all
echo '[Unit]' > /etc/systemd/system/set-ttl.service echo 'Description=Set TTL in mangle iptables' >> /etc/systemd/system/set-ttl.service echo 'After=multi-user.target' >> /etc/systemd/system/set-ttl.service echo '' >> /etc/systemd/system/set-ttl.service echo '[Service]' >> /etc/systemd/system/set-ttl.service echo 'ExecStart=/usr/sbin/set-ttl.sh' >> /etc/systemd/system/set-ttl.service echo 'Type=simple' >> /etc/systemd/system/set-ttl.service echo '' >> /etc/systemd/system/set-ttl.service echo '[Install]' >> /etc/systemd/system/set-ttl.service echo 'WantedBy=multi-user.target' >> /etc/systemd/system/set-ttl.service
Code: Select all
setenforce 0 systemctl daemon-reload systemctl start set-ttl systemctl status set-ttl systemctl enable set-ttl systemctl list-unit-files | grep ttl
This is a dangerous process that could remove features, cause malfunction, or even brick your device.
Make sure you have the firmware you want to install as well as fdt.exe in the same folder.
- Unplug and remove the battery from your device.
- Press the power button for 8 seconds.
- While pressing the power button, connect the device to a Windows computer via USB.
- Keep pressing until the device goes into Downloading software update mode.
- Open an administrator terminal (cmd or powershell).
- Navigate to the folder containing fdt.exe and the firmware file you want to flash.
- Run the following command, where .\MR6550-100APS_23115772_NTGX65_12.01.54.00_00_Generic_01.30_00.secc.cwe is whatever version you want to flash into your device.
Code: Select all
.\fdt.exe -f .\MR6550-100APS_23115772_NTGX65_12.01.54.00_00_Generic_01.30_00.secc.cwe
- Wait for the device to finish flashing the firmware.
https://wirelessjoint.com/viewtopic.php?p=24271#p24271
https://www.reddit.com/r/Dish5G/comments/13err3x/owning_the_netgear_m6_pro_mr6400/
https://wirelessjoint.com/viewtopic.php?t=4183
https://github.com/developer-of-things/m6restore
https://wirelessjoint.com/viewtopic.php?p=19653#p19653