Modificiranje Huawei E3372 LTE sticka

Huawei E3372 LTE stick podržava sve LTE frekvencije koje koriste hrvatski provideri (VIPnet na 1800 MHz, te Hrvatski telekom na 1800 MHz u većim gradovima i 800 MHz u ruralnim područjima), te se nalazi u redovnoj ponudi HT-a po basnoslovnim cijenama (450 kn/60 € bez ugovora). Na svu sreću, na eBayu se isti taj stick prodaje za ispod 30€, gdje sam ja nabavio svoga. Radi se o inačici E3372h-153, i dolazi otključan tako da prima SIM kartice svih mreža.

Kako mi je plan bio saznati točnu frekvenciju na kojoj radi HT-ov LTE u mom mjestu, to sam pokušavao saznati iz statistike modema, ali na kraju nisam uspio s originalnim firmwareom latvijskog providera LMT (ta verzija firmwarea jest, doduše, ispisivala razinu i kvalitetu signala, ali nije nigdje bilo mogućnosti odabira frekvencijskog opsega). Isprobao sam, naravno, hrpu dostupnih updateova dostupnih u threadu na austrijskom forumu, pritom izgubio originalni WebUI koji je imao jačinu signala i zamijenio ga verzijom koja razinu signala nije imala, te blago rečeno zbrljao stvar.

Nakon toga sam pokušao prebaciti stick iz HiLink moda u “obični” surf-stick, gdje se on instalira kao modem i konekcije se odrađuju preko USB serijskog porta odnosno Mobile Partner aplikacije. Kako je AT command set Huaweija donekle poznat, ali nepotpuno dokumentiran, ni na taj način nisam uspio zabraniti frekvencijske opsege kako bih metodom eliminacije utvrdio radi li mi mreža na 800 ili 1800 MHz.

O ovom sticku ima pregršt informacija na ruskom forumu 4pda, ali čak i ako se dovoljno snalazite s ruskom ćirilicom i google translateom, download nije moguć bez prijave na forum, a za to trebate i registraciju i rješavanje captcha zadatka s brojevima na ruskom. To sam nekako uspio riješiti – capcha na stranici za registraciju traži da zbrojite dva broja koje vidite na slici (XX плюс XX равно), dok je capcha na stranici za prijavu puno zajebaniji, jer se radi o četveroznamenkastom broju pisanom riječima, u tri reda, pisanom ruskom ćirilicom (npr: девять тысяч восемьсот сорок семь ilivam devjat’ tisjač vosem’sot sorok sem’ odnosno 9847).

I sad sam bio na konju – na siteu se nalaze detaljne upute koje verzije firmwarea prolaze tvornički, kako dodati potpuni WebUI sa i bez modifikacije, kako pokrenuti ADB i Telnet server, te kako prebaciti modem u DEBUG način rada.

Nešto od dostupnih uputa sam iskoristio, dio sam pojednostavnio i sve iskušao na drugome sticku, tako da vrijedi standardni disklejmer: Meni radi™. Ako želite svoj E3372z-153 dovesti u još iskoristivije stanje, molim da pročitate CIJELE upute prije no što napravite bilo što od navedenog jer se su prvih par koraka način kako “pješice” doći do modifikacije na tvorničkom firmwareu. Ako vam nije važno sačuvati firmware koji ste dobili sa stickom, fleširajte odgovarajući firmware prema koraku 6, napravite korake 1-3 i nakon toga upucajte modificirani firmware – ne morate se zezati s koracima 4 i 5.

1. Prebacivanje u DEBUG mode

Prvi korak u svemu je prebacivanje uređaja na DEBUG način rada, koji daje pristup dodatnim COM portovima preko kojih ćete ga otključati/omogućiti ADB/pokrenuti busybox.

To se radi slanjem POST zahtjeva na web sučelje modema, obično http://192.168.8.1/CGI

Sadržaj post zahtjeva je:

<?xml version="1.0" encoding="UTF-8" ?> 
<api version="1.0">
  <header>
    <function>switchMode</function>
  </header>
  <body>
    <request>
      <switchType>1</switchType> 
    </request>
  </body>
</api>

Gotove skripte i curl koji ovo rade pronaći ćete u arhivi ovdje.

2. Uključivanje debug portova i izračunavanje OEM ključa neophodnog za pristup konzoli

Prebacite, dakle, modem u DEBUG mode pokretanjem skripte sw_debug_mode.cmd.

Preuzmite Huawei Modem Terminal, otpakirajte ga, pokrenite i spojite se na “FC – PC UI interface“. Kliknite na “Connect”.

PC-UI_interface

Aktivirajte konzolu s
AT^NVWREX=33,0,4,2,0,0,0

Vidjet ćete da je konzola aktivna jer će vam Huawei Modem Terminal početi ispisivati statistiku modema.

PC_UI_interface_connected

Vrijeme je da izračunamo OEM ključ. Preuzmite, otpakirajte i pokrenite program CalculatorOEM. Pošaljite naredbu

AT^NVRDEX=50502,0,128

Kao odgovor u prozoru terminala dobit ćete nešto u stilu:

Recieve: ^NVRDEX: 50502,0,128,60 DE 2A 11 94 B3 4C 64 78 93 C6 5B 3F 21 57 CC 8A 6C 7C 25 DC 5B E5 C4 61 7A DF B5 EC 5F B4 C2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 62 7E F5 73 BC 33 24 87 39 33 8A 55 CD 75 33 72 05 9C 45 B8 5D BA C7 CC B0 72 6F 83 B0 D2 81 02 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Podebljani heksadecimalni dio zalijepite u CalculatorOEM kao što je prikazano u uputama i kliknite na Подобрать код. Nakon nekoliko minuta (izračun traje stvarno dugo i program izgleda kao da se smrznuo), dobit ćete svoj OEM ključ kojeg ćete si zapisati, trebat će vam kasnije. Na isti način možete doći i do NCK koda za otključavanje mreže, samo treba 50502 u naredbi zamijeniti s 50503.

CalculatorOEM

Resetirajte modem naredbom AT^RESET

Kad se podigne i dobijete web sučelje u browseru, ponovno ga prebacite u DEBUG mod gornjom skriptom.

3. Pokretanje telneta/busyboxa

Huawei Modem Terminal ćete sada spojiti na “FC – ShallB” port.

ShallB

U Send polje upišite svoj OEM kod i pritisnite Enter. Modem će odgovoriti s:

Recieve: Login success 
Recieve: EUAP>
Recieve: EUAP>

ShallB-login

Pokrenite busybox/telnet naredbom

busybox telnetd -l /bin/sh

Sada možete pokrenuti svoj omiljeni telnet klijent (PuTTy, KiTTY) i spojiti se telnet protokolom, port 23 na server 192.168.8.1

4. Trajno omogućavanje adb-a i telneta

Datoteke koje su nam potrebne za ovaj korak snimit ćemo na MicroSD karticu i ubaciti je u modem. Preuzmite i otpakirajte arhivu sa sljedećeg linka u root MicroSD kartice: ADB Daemon

Prvo ćemo montirati MicroSD karticu kako bismo mogli čitati/pisati s nje:

mount -t vfat /dev/block/mmcblk0p1 /mnt/sdcard

Montirat ćemo i /system RW modu (omogućujemo pisanje)

mount -o remount,rw /dev/block/mtdblock16 /system

adb daemon ćemo otpakirati u system/bin sljedećom naredbom:

busybox tar -xzvf /mnt/sdcard/adbd_s.tgz -C /system/bin

te na kraju dodati busybox i adb daemon u startup

echo -e "\nbusybox telnetd -l /bin/sh\n/system/bin/adbd &" >> /system/etc/autorun.sh

Nakon toga možete za probu ponovno pokrenuti modem naredbom reboot. Telnet i ADB vam trebaju biti dostupni bez ulaska u DEBUG mod.

5. Zamjena webUI-ja

Potrebne datoteke snimit ćemo na MicroSD karticu i ubaciti je u modem. Trebat će vam: kompletni webui17.100.06.00.03mod1.0, te nand_tools ako želite napraviti backup cijelog postojećeg webUI-ja, iako to možete i na drugi način.

Pod uvjetom da ste napravili sve iz prethodnih koraka, spojite se telnetom na modem i, ako je potrebno, montirajte SD karticu.

Ako želite, napravite sigurnosnu kopiju postojećeg sučelja. To možete na tri načina, ali za vraćanje bilo kojega od ta tri načina trebat će vam telnet pristup.

Možete iskopirati datoteke u tar arhivu:

busybox tar -cvf /mnt/sdcard/original-webui.tgz /app/webroot/*

ili napraviti dump cijele particije na kojoj se nalazi WebUI pomoću dd-a:

dd if=/dev/block/mtdblock15 of=/mnt/sdcard/webui.dd

ili isto to, ali pomoću nanddumpa:

/mnt/sdcard/nanddump -f /mnt/sdcard/webui.img /dev/mtd/mtd15

Možemo dalje. Prvo ćemo omogućiti pisanje u webroot mountu.

mount -o remount,rw /dev/block/mtdblock15 /app/webroot

Brišemo postojeći WebUI sljedećim naredbama:

rm -r /app/webroot/WebApp
rm -r /app/webroot/upnp

Modificirani WebUI koji smo pripremili na SD kartici otpakirat ćemo u webroot:

busybox tar -xzvf /mnt/sdcard/webui17.100.06.00.03mod1.0.tgz -C /app/webroot

Naletio sam na savjete bi trebalo resetirati modem na tvorničke postavke, ali u mom slučaju to nije bilo potrebno. To možete preko adb-a sljedećom skriptom: erase_userdata_e3372.rar

6. Zakrpa kernela koja omogućuje fleširanje modificiranog firmwarea

Zakrpe za verziju firmwarea koja je “tvornički” došla s mojim modemom nema (u prijevodu, nisam je našao), ali to se lako može riješiti. Napravite nadogradnju firmwarea na jednu od kompatibilnih verzija, a to su:

22.200.03.00.1134
21.180.01.00.00
21.180.01.00.143
22.180.05.00.00

Firmware je dostupan na austrijskom forumu, treba vam prvi iz rubrike “HI- Link Offiziell E3372h” (22.180.05.00.00).

Ako ga instalirate, izgubit ćete telnet/ADB, pa ćete taj dio procedure morati ponoviti.

Nakon što ste instalirali odgovarajući firmware i iznova omogućili telnet pristup, prebacite željeni kernel iz arhive u root SD kartice, kao i pripadajuće alate (nanddump, nandwrite).
Kerneli: dload_patch_kernels_HuaweiE3372h.7z
Nand alati: nand_tools.7z

Montirat ćemo SD karticu:

mount -t vfat /dev/block/mmcblk0p1 /mnt/sdcard

Izbrisati postojeći kernel:

/mnt/sdcard/dload_patch/flash_erase /dev/mtd/mtd7 0 0

Fleširati novi kernel – ovu naredbu promijenite ovisno o firmwareu koji imate! Odaberite odgovarajući kernel i samo njega.

/mnt/sdcard/dload_patch/nandwrite /dev/mtd/mtd7 /mnt/sdcard/dload_patch/kernel_22.XXX.XX.XX.XX.bin

I na kraju provjerite je li sve u redu tako što ćete napraviti dump.

/mnt/sdcard/dload_patch/nanddump -f /testdump.bin /dev/mtd/mtd7

Ako je sve u redu, možete resetirati modem i s gore navedenog foruma odabrati verziju firmwarea/WebUI-ja koji želite (s ADB-om, telnetom ili različitim inačicama drivera) – pripazite samo da u nazivu ima “M” što znači da već dolazi s kernelom koji omogućuje instaliranje drugih neslužbenih firmwarea/web sučelja.

Tu, naravno, možete odabrati i firmware bez Hilinka, ako više volite aplikaciju za spajanje i emulaciju modema. Imajte samo na umu da surf-stick inačice firmwarea idu web sučelja, a iz data stick firmware dashboardi sa softverom.