2024. április 28., vasárnap

Gyorskeresés

AX3600 Global verzióból Kínai +MiWifi

Írta: |

[ ÚJ BEJEGYZÉS ]

A leírásom és a hozzá szükséges fájlok ebből a topikból lettek összeollózva. Köszönet jár az alábbi kollégáknak az értékes tippekért, tanácsokért valamint saját tárhelyükön megosztott fájlokért.

trance89
tlala
takcslajos1
lafaty80
Tonyk

"A gyári fw irdatlan mennyiségű adatot küldözget haza (a webuin is minden egyes kattintás logolva van) emellett nonstop pingelgeti a kínai szervereket, aki kicsit is odafigyel az adatai védelmére érdemes elgondolkoznia ezen.." trance89
Ugyanez a helyzet a patchelt, de Mi szolgáltatásokat tartalmazó firmwerekkel is

Mi szolgáltatás = adatküldés

El kell dönteni, hogy a MiWifi alkalmazás a fontosabb, vagy az, hogy ne küldözgessen adatokat a router az engedélyünk nélkül.

A művelethez szükséges alkalmazások és fájlok:
a legegyszerűbb, ha csináltok mondjuk a "D:" meghajtó gyökerébe egy ax3600 mappát, és mindent bele töltötök egyesével.

-Python 3.6
-ax3600-files-master
-Putty
-WinSCP
-Rollback firmware 1.0.17
-1.1.19-es kínai firmware- (MiWifi kompatibilis, legfrissebb wifi driverek)

Ha valakinek esetleg nem kell a MiWifi kompatibilitás, de cserébe nem küldözget a routere adatokat, akkor neki erre van szüksége:
miwifi_r3600_firmware_aba17_1.1.19+SSH+txpwr.zip
és az ebből kicsomagolt firmware-t használja majd r3600.bin néven később

A fentiek közül 3 programot csak szimplán fel kell telepíteni.
-Putty (SSH elérés)
-WinSCP (fájlok másolása a routerre oda/vissza)
-Python (telepítés végén bepipálni a python add PATH részt)

ezeket pedig kicsomagolni:
ax3600-files-master.zip tartalmát kicsomagolni a mappánkba
miwifi_r3600_firmware_aba17_1.1.19+SSH+MI+txpwr.zip tartalmát kicsomagolni, majd átnevezni erre: r3600.bin

valahogy így fog kinézni a mappánk tartalma:

2. Rollback firmware

fel kell rakni a router menüjéből egy régebbi firmware-t aminek a segítségével lesz SSH elérésünk
miwifi_r3600_firmware_5da25_1.0.17.bin (router oldalán Settings (2. fül felül) >> Status (utolsó sárga ikon))
a lapon az első gomb, betallózod a firmware-t és elindítod a frissítést
megvárod amíg újra elindul a router, belépsz ismét a főmenübe amit megelőz újra pár alap beállítás.

3. SSH engedélyezés

Ha a router főmenüben vagy, nyomsz egy F12 gombot, felugrik egy ablak ahol átkattintasz a console fülre és beilleszted ezt:

function getSTOK() {
let match = location.href.match(/;stok=(.*?)\//);
if (!match) {
return null;
}
return match[1];
}

function execute(stok, command) {
command = encodeURIComponent(command);
let path = `/cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=SteelyWing&user_id=SteelyWing&ssid=-h%0A${command}%0A`;
console.log(path);
return fetch(new Request(location.origin + path));
}

function enableSSH() {
stok = getSTOK();
if (!stok) {
console.error('stok not found in URL');
return;
}
console.log(`stok = "${stok}"`);

password = prompt('Input new SSH password');
if (!password) {
console.error('You must input password');
return;
}

execute(stok,
`
nvram set ssh_en=1
nvram commit
sed -i 's/channel=.*/channel=\\"debug\\"/g' /etc/init.d/dropbear
/etc/init.d/dropbear start
`
)
.then((response) => response.text())
.then((text) => console.log(text));
console.log('New SSH password: ' + password);
execute(stok, `echo -e "${password}\\n${password}" | passwd root`)
.then((response) => response.text())
.then((text) => console.log(text));
}

enableSSH();

a felugró ablakban megadod az SSH-hoz szükséges jelszót, ami legyen admin

4. SSH bejelentkezés

Putty program indít, a képen szereplő adatok beállítása és OPEN

- felh név: root
- jelszó: admin (nem fogod látni miközben írod be a jelszót, de a végén enter)

a zöld villogó kurzor után beilleszted az alábbi parancsokat

5. Bdata kinyerés

Putty parancs

nanddump -f /tmp/bdata_mtd9.img /dev/mtd9

6. WinSCP bejelentkezés

SCP protokollt használd, port: 22

a két ablak között lehet másolgatni F5 gombbal

7. Bdata másolása a PC-re

WinSCP művelet

/tmp/bdata_mtd9.img másolása ./ax3600-files-master/scripts könyvtárba
azaz a router temp mappájában létrejött bdata_mtd9.img fájlt kell átmásolni a D meghajtón létrehozott ax3600-files-master SCRIPTS mappájába

8. Parancssor (CMD) indítása

Parancssor megnyitása (start menüben elkezded gépelni (cmd)

9. SCRIPTS mappa megnyitása

A scripts mappa megnyitása parancssorból

d: enter
cd ax3600 enter
cd ax3600-files-master enter
cd scripts enter

10. Bdata módosítása

CMD parancs
kiadjuk az alábbi parancsot a scripts mappából
(ezzel lesz állandó SSH, telnet és CN lesz az országkód)

header.py modify --country CN bdata_mtd9.img bdata_mtd9.img.modified

11. Crash_unlock másolása a routerre

WinSCP művelet

D: meghajtón található crash mappa tartalmát átmásolni a router tmp mappájába (winSCP-vel)
./ax3600-files-master/crash/crash_unlock.img másolása /tmp könyvtárba

12. Crash_unlock futtatása a routeren

Putty-ba írandó parancs

mtd write /tmp/crash_unlock.img crash
enter

13. Router újraindítása

Putty-ba írandó parancs

reboot
enter

14. Módosított Bdata másolása a routerre

WinSCP művelet

D meghajtóról másolunk a routerre
./ax3600-files-master/scripts/bdata_mtd9.img.modified másolása /tmp könyvtárba

15. A módosított Bdata futtatása a routeren

Putty parancs (újra bejelentkezés, ha az ablak felül inactive-ot mutatna)

mtd write /tmp/bdata_mtd9.img.modified bdata
enter

16. Router újraindítása

Putty parancs

reboot
enter

17. Putty parancsok egyesével, ha inactive, előtte újra bejelentkezni

sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear

enter

/etc/init.d/dropbear start

enter

echo -e 'admin\nadmin' | passwd root

enter

mtd erase crash

enter

reboot

enter

nvram set CountryCode=CN

majd ENTER (ez átírja CN-re az értéket)

nvram commit

majd ENTER (ez véglegesíti az átírást)

18. A legújabb firmware routerre másolása

WinSCP másolás
a r3600.bin firmware fájlt bemásolni a router tmp mappájába

19. Putty parancsok (inaktív ablak esetén újra bejelentkezés)

A következő parancsokat Ctrl-C-vel másolni, majd Puttyba kattintással lehet copy/paste-elni, majd ENTER.

grep rootfs /proc/mtd

Ennek az eredménye ez kell, hogy legyen:
mtd12: 023c0000 00020000 "rootfs"
mtd13: 023c0000 00020000 "rootfs_1"
mtd17: 015cc000 0001f000 "ubi_rootfs"

Következik Puttyban az alábbi parancs:

nvram get flag_boot_rootfs

Amire pedig kétféle eredmény lehetséges, 0 vagy 1 értéket kapunk.

1 esetén beírjuk:
ubiformat /dev/mtd12 -f /tmp/r3600.bin -s 2048 -O 2048

0 esetén pedig:
ubiformat /dev/mtd13 -f /tmp/r3600.bin -s 2048 -O 2048

Majd sorban a következő 3 parancs jön (külön-külön, ENTER-rel egyenként beadva):
nvram set flag_ota_reboot=1
nvram commit
reboot

CSINÁLJ RESET-ET A HÁTSÓ GOMBBAL (KB 10 MÁSODPERCIG TARTSD NYOMVA)

Régió kód ellenőrzése:

1. lépj be a router web-es felületére (főmenü), és másold ki a saját stok azonosítód valahova
(stok azonosítót csak azután fogsz látni, amikor már be vagy jelentkezve a router admin menüjében, és végig vitted a kezdő beállítás varázslót. Ezt minden firmware frissítés és reset után végig kell kattintgatni)

2. az alábbi kódban szereplő stok azonosítót cseréld ki arra, amit az előbb feljegyeztél

http://192.168.31.1/cgi-bin/luci/;stok=d5df39a297daff7e325df31f16724619/api/xqsystem/country_code

3. ENTER

4. a kapott szövegben nézd meg az első részt, ha mindent jól csináltál akkor ezt kapod
{"current":"CN"

Firmware frissítés a későbbiekben

"tlala" Mivel a módosított fw-ek már tartalmaznak egy xqflash scriptet, így frissítés esetén nem kell a teljes procedúrát végigcsinálni, csak bemásoljuk WinSCP-vel a friss fw-t (r3600.bin-re átnevezve) a tmp mappába és kiadjuk ezt a két parancsot egymás után Putty alatt SSH-n:

xqflash /tmp/r3600.bin
reboot

Hozzászólások

(#1) Doky1988


Doky1988
senior tag

Tökéletes leírás, köszönöm szépen mégegyszer! :)
3 routeren csináltam végig, tökéletes lett mind a 3 :)

DokY | www.zsolti.hu

(#2) FingR86 válasza Doky1988 (#1) üzenetére


FingR86
őstag

öröm bódottá :C :))

[ Szerkesztve ]

(#3) gaben88


gaben88
őstag

:R :R :R

iPhone 13 Mini, PS5, PC, iPad Pro 10.5, Switch OLED, Steam Deck, Quest 2

(#4) Silent77


Silent77
veterán

:R

Legfrissebb Banggood, Geekb, Ali kuponok: https://t.me/kinabolrendelek

(#5) woodworm


woodworm
veterán

Köszönet a cikkért!
Egyedül a reset utáni ssh jelszó törlés ért meglepetésként, már régen volt az utolsó xiaomi rendszer a kezem alatt. Kellett egy pár hiábavaló próbálkozás mire leesett, hogy az alapértelmezett jelszót le kell generálni. Szerencsére a python script megoldotta.

A pythonról szólva, kicsit lazítva a követelményen, a linkelt zip-ben lévő scriptek a 3.9.5-ösön is minden gond nélkül lefutnak. Nem tudom, a köztes verziókkal voltak esetleg gondok és azért lett a 3.6-osra korlátozva?

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.