ZTE 光猫

二、F7607p跨版本刷机:

由于市场上充斥着移动版本的F7607p,电信原版、联通原版的F7607p都比较稀少,所以才会有从移动版刷固件到电信版和联通版的教程。

1. 刷机前准备工作

  • 重置光猫(强烈建议,启动后捅reset按钮等所有灯亮了松开即重置成功,重置成功后的超管后台账号密码如下)
移动:CMCCAdmin,aDm8H%MdA
联通:CUAdmin,CUAdmin  |  cuadmin,cuadmin
电信:telecomadmin, nE7jA%5m 

从工具中获取到的b'FactoryModeAuth.gch?user=e7cvt74z&pass=0hrRIVv0\x00' 字段中,其中:
临时账户为:e7cvt74z
临时密码为:0hrRIVv0

  • 固化telnet用户名和密码:

可以参考[2]rajey的恩山脚本进行,以下脚本在rajey的基础上就只增加了提权光猫背面的普通用户的权限至管理员,适用于F7607p,不适用于G7615。G7615固化telnet请直接用rajey的脚本。

@echo off
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
echo WScript.Sleep 600 >>telnet_tmp.vbs
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "临时账号{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "临时密码{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB p TelnetCfg{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 Lan_Enable 1{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 TS_UName admin{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 TSLan_UName admin{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 TS_UPwd admin{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 TSLan_UPwd admin{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 Max_Con_Num 999999{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 WanWebLinkToTS 1{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 ExitTime 99999999{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 InitSecLvl 3{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 CloseServerTime 99999999{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set TelnetCfg 0 Lan_EnableAfterOlt 1{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB set DevAuthInfo 1 Level 1{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "sendcmd 1 DB save{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "reboot{ENTER}">>telnet_tmp.vbs
echo WScript.Sleep 9000 >>telnet_tmp.vbs
echo message
start telnet
cscript //nologo telnet_tmp.vbs
taskkill /im telnet.exe /f
del telnet_tmp.vbs

2. 三大运营商的F7607p固件:

3. 备份原机闪存

  • 移动版:
dd if=/dev/mtd0 of=/mnt/usb1_1/f7607p_dd.bin
或(移动版阉割了nand命令,可分别执行dd和cat双备份)
cat /dev/mtd0 > /mnt/usb1_1/f7607p_cat.bin
  • 联通版:
cat /dev/mtd0 > /mnt/USB1_disc1/f7607p_cat.bin
或(联通版阉割了dd,可分别执行cat和nand双备份)
nand kread /dev/mtd0 0x0 0x10000000 /mnt/USB1_disc1/f7607p_nand.bin
  • 电信版:
cat /dev/mtd0 > /mnt/USB_disc1/f7607p_cat.bin
或(电信版阉割了dd,可分别执行cat和nand双备份)
nand kread /dev/mtd0 0x0 0x10000000 /mnt/USB_disc1/f7607p_nand.bin

4. 刷固件的优盘:

格式化为NTFS或FAT32格式,将需要刷入的运营商固件放置到优盘根目录,比如移动版刷电信版,需要将电信版的固件解压后的kernel.bin、framework.bin放置在优盘的根目录下。

5. Telnet连接光猫:

光猫通电后,接入你的Windows电脑,可以使用putty客户端(提前安装好),也可以在Windows下的shell命令行中,直接通过telnet命令[3]连接到光猫的后台。

putty客户端连接设置

三、移动版刷联通版

  • 确认当前所在分区:
    进入Telnet,运行fw_flashing,会报错并给出当前启动的内核分区,如:
    baseaddr:1600000, curpdev=/dev/mtd7, offset=0
    其中 mtd7 为当前启动的内核分区;
  • 切换分区:
    当启动分区为mtd7时,执行命令upgradetest switchver 1将操作分区切换到 mtd8 ;
    当启动分区为mtd8时,执行命令upgradetest switchver 0 将操作分区切换到mtd7
  • 刷入分区文件:
    当启动分区为 mtd7 时,执行以下命令:
cd /mnt/usb1_1
echo 2 > /proc/zteinfo/factory/factorymode
touch /userconfig/nanddebug
nand kerase /dev/mtd8 0x0 0x2800000
nand kwrite /dev/mtd8 0x0 0x2800000 ./kernel.bin
#建议一行一行输入代码,除非你懂代码什么意思。

当启动分区为 mtd8 时,执行以下命令:

cd /mnt/usb1_1
echo 2 > /proc/zteinfo/factory/factorymode
touch /userconfig/nanddebug
nand kerase /dev/mtd7 0x0 0x2800000
nand kwrite /dev/mtd7 0x0 0x2800000 ./kernel.bin
#建议一行一行输入代码,除非你懂代码什么意思。
  • 晚上以上步骤后,输入 reboot 执行重启;
  • 重启完成后再次进入Telnet再次执行fw_flashing得到当前启动的内核分区:
    当启动分区为 mtd8 时,执行以下命令:
cd /mnt/USB1_disc1
echo 2 > /proc/zteinfo/factory/factorymode
nand kerase /dev/mtd7 0x0 0x2800000
nand kwrite /dev/mtd7 0x0 0x2800000 ./kernel.bin
nand kerase /dev/mtd9 0x0 0x1000000
nand kwrite /dev/mtd9 0x0 0x1000000 ./framework.bin
nand kerase /dev/mtd10 0x0 0x1000000
nand kwrite /dev/mtd10 0x0 0x1000000 ./framework.bin
nand kerase /dev/mtd11 0x0 0x7900000
nand kerase /dev/mtd6 0x0 0x600000
rm  /userconfig/nanddebug
#建议一行一行输入代码,除非你懂代码什么意思。

当启动分区为 mtd7 时,执行以下命令:

cd /mnt/USB1_disc1
echo 2 > /proc/zteinfo/factory/factorymode
nand kerase /dev/mtd8 0x0 0x2800000
nand kwrite /dev/mtd8 0x0 0x2800000 ./kernel.bin
nand kerase /dev/mtd9 0x0 0x1000000
nand kwrite /dev/mtd9 0x0 0x1000000 ./framework.bin
nand kerase /dev/mtd10 0x0 0x1000000
nand kwrite /dev/mtd10 0x0 0x1000000 ./framework.bin
nand kerase /dev/mtd11 0x0 0x7900000
nand kerase /dev/mtd6 0x0 0x600000
rm /userconfig/nanddebug
#建议一行一行输入代码,除非你懂代码什么意思。
  • 修改区域信息:
    查看区域码对照表:cat /etc/init.d/regioncode ;
    切换区域码:upgradetest sdefconf 210

四、移动版刷电信版

  • 确认当前所在分区: 进入Telnet,运行 fw_flashing,会报错并给出当前启动的内核分区,如: baseaddr:1600000, curpdev=/dev/mtd7, offset=0 其中 mtd7 为当前启动的内核分区;
  • 切换分区:
    当启动分区为mtd7时,执行命令upgradetest switchver 1将操作分区切换到 mtd8 ;
    当启动分区为mtd8时,执行命令upgradetest switchver 0 将操作分区切换到mtd7
  • 刷入分区文件: 当启动分区为 mtd7 时,执行以下命令:
cd /mnt/usb1_1
echo 2 > /proc/zteinfo/factory/factorymode
touch /userconfig/nanddebug
nand kerase /dev/mtd8 0x0 0x2800000
nand kwrite /dev/mtd8 0x0 0x2800000 ./kernel.bin
#建议一行一行输入代码,除非你懂代码什么意思。

当启动分区为 mtd8 时,执行以下命令:

cd /mnt/usb1_1
echo 2 > /proc/zteinfo/factory/factorymode
touch /userconfig/nanddebug
nand kerase /dev/mtd7 0x0 0x2800000
nand kwrite /dev/mtd7 0x0 0x2800000 ./kernel.bin
#建议一行一行输入代码,除非你懂代码什么意思。
  • 晚上以上步骤后,输入 reboot 执行重启;
  • 重启完成后再次进入Telnet再次执行fw_flashing得到当前启动的内核分区: 当启动分区为 mtd9时,执行以下命令:
cd /mnt/USB_disc1
echo 2 > /proc/zteinfo/factory/factorymode
nand kerase /dev/mtd10 0x0 0x2800000
nand kwrite /dev/mtd10 0x0 0x2800000 ./kernel_CT.bin
umount /opt/upt/apps/mnt1(移动版刷电信固件不用这一步)
umount /opt/upt/apps/mnt2(移动版刷电信固件不用这一步)
nand kerase /dev/mtd6 0x0 0x1000000
nand kwrite /dev/mtd6 0x0 0x1000000 ./framework_CT.bin
nand kerase /dev/mtd7 0x0 0x1000000
nand kwrite /dev/mtd7 0x0 0x1000000 ./framework_CT.bin
nand kerase /dev/mtd8 0x0 0x600000
nand kerase /dev/mtd11 0x0 0x7900000
rm  /userconfig/nanddebug
#建议一行一行输入代码,除非你懂代码什么意思。

当启动分区为 mtd10 时,执行以下命令:

cd /mnt/USB_disc1
echo 2 > /proc/zteinfo/factory/factorymode
nand kerase /dev/mtd9 0x0 0x2800000
nand kwrite /dev/mtd9 0x0 0x2800000 ./kernel_CT.bin
umount /opt/upt/apps/mnt1(移动版刷电信固件不用这一步)
umount /opt/upt/apps/mnt2(移动版刷电信固件不用这一步)
nand kerase /dev/mtd6 0x0 0x1000000
nand kwrite /dev/mtd6 0x0 0x1000000 ./framework_CT.bin
nand kerase /dev/mtd7 0x0 0x1000000
nand kwrite /dev/mtd7 0x0 0x1000000 ./framework_CT.bin
nand kerase /dev/mtd8 0x0 0x600000
nand kerase /dev/mtd11 0x0 0x7900000
rm  /userconfig/nanddebug
#建议一行一行输入代码,除非你懂代码什么意思。
  • 修改区域信息:
    查看区域码对照表:cat /etc/init.d/regioncode
    切换区域码:upgradetest sdefconf 210

五、附加设置

1. 跳过ITMS注册

电信固件和联通固件部分省份没注册ITMS服务器的话会劫持所有DNS请求的结果到192.168.1.1,使用如下命令手动欺骗ITMS注册结果,解决刷完后打开任意网页自动跳转LOID注册页面。

sendcmd 1 DB set PDTCTUSERINFO 0 Status 0
sendcmd 1 DB set PDTCTUSERINFO 0 Result 1
sendcmd 1 DB save

2. 修改超级密码:

- 修改超级帐号:sendcmd 1 DB set DevAuthInfo 0 User XXXXXX
- 修改超级密码:sendcmd 1 DB set DevAuthInfo 0 Pass XXXXXX

3. 修改用户限制:

sendcmd 1 DB p CltLmt
sendcmd 1 DB set CltLmt 8 Max 20   (修改最大用户数为20,可以改成其他数目,最大数目不超过255)
sendcmd 1 DB set CltLmt 8 Enable 0
sendcmd 1 DB save

4. 修改Mac地址、SN等:

  • 查看系统参数信息:setmac show2
  • 修改格式:setmac 1 [ID] [内容]
  • 如修改PONMAC命令为:setmac 1 32769 MAC地址

5. 关闭TR069与定时上报功能:

sendcmd 1 DB p MgtServer #查看一下当前的电信远程控制
sendcmd 1 DB set MgtServer 0 URL http://127.0.0.1  把服务器 URL 改掉
sendcmd 1 DB set MgtServer 0 Tr069Enable 0 
sendcmd 1 DB set MgtServer 0 PeriodicInformEnable 0
sendcmd 1 DB save

6. 删除定制版WiFi名字前缀(CMCC, ChinaNet):

sendcmd 1 DB set WLANCfg 0 ESSIDPrefix #设置2.4G的ssid前缀为空 
sendcmd 1 DB set WLANCfg 4 ESSIDPrefix #设置5G的ssid前缀为空 
sendcmd 1 DB save

7. 关闭下行光口和WiFi

  • 关闭:
ip link set mini-olt down
rmmod optical
rmmod mtlk
rmmod mtlkroot
  • 开启:
insmod /kmodule/optical.ko
insmod /kmodule/mtlkroot.ko
insmod /kmodule/mtlk.ko

8. 查看固件版本和编译日期:

hexdump -C -s 0x180 -n 128 /dev/mtd7 输出kernel分区的固件版本号和编译日期部分,移动联通为mtd7和mtd8,电信为mtd9和mtd10。

00000180  5a 58 48 4e 20 46 37 36  30 37 50 20 55 4e 49 20  |ZXHN F7607P UNI |
00000190  56 32 2e 30 2e 36 50 31  4e 32 00 00 00 00 00 00  |V2.0.6P1N2......|
000001a0  01 00 00 00 00 48 08 00  40 00 54 04 7e f2 f6 49  |.....H..@.T.~..I|
000001b0  00 00 7e 02 00 00 d6 01  17 07 c4 96 00 00 00 00  |..~.............|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00  |................|
000001e0  8d a4 a1 c0 32 30 32 32  30 35 31 36 32 32 35 32  |....202205162252|
000001f0  34 33 00 00 00 00 00 00  ff ff ff ff ff ff ff ff  |43..............|
00000200

9. 查看硬件配置信息:

cat /proc/capability/boardinfo

 system:LINUX
cpufac:ZXIC
cpumod:ZX279132
2gwlmod:INTEL
5gwlmod:INTEL
cpufre:1100MHZ
cpunum:4
flshcap:256MB
ddrcap:512MB

开启SSID5的5G WIFI

sendcmd 1 DB set WLANCfg 4 InstExist 1
sendcmd 1 DB set WLANCfg 4 Enable 1
sendcmd 1 DB set WLANCfg 4 LocalSetEnable 1
sendcmd 1 DB save

如果你看不懂上面的折腾教程,同时希望节省自己的宝贵时间,到手即可使用,也可以通过下面链接购买我们刷好的光猫:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注