Etisalat S3 is a wireless WiFi 5 router manufactured by Sercomm company.
Device specification
--------------------
SoC Type: MediaTek MT7621AT
RAM: 256 MiB
Flash: 128 MiB
Wireless 2.4 GHz (MT7603EN): b/g/n, 2x2
Wireless 5 GHz (MT7615E): a/n/ac, 4x4
Ethernet: 5x GbE (WAN, LAN1, LAN2, LAN3, LAN4)
USB ports: 1x USB3.0
Button: 2 buttons (Reset & WPS)
LEDs:
   - 1x Status (RGB)
   - 1x 2.4G (blue, hardware, mt76-phy0)
   - 1x 5G (blue, hardware, mt76-phy1)
Power: 12 VDC, 1.5 A
Connector type: barrel
Bootloader: U-Boot
Installation
-----------------
1.  Login to the router web interface under admin account
2.  Navigate to Settings -> Configuration -> Save to Computer
3.  Decode the configuration. For example, using cfgtool.py tool (see
    related section):
       cfgtool.py -u configurationBackup.cfg
4.  Open configurationBackup.xml and find the following line:
    <PARAMETER name="Password" type="string" value="<your router serial \
       is here>" writable="1" encryption="1" password="1"/>
5.  Insert the following line after and save:
<PARAMETER name="Enable" type="boolean" value="1" writable="1" encryption="0"/>
6.  Encode the configuration. For example, using cfgtool.py tool:
       cfgtool.py -p configurationBackup.xml
7.  Upload the changed configuration (configurationBackup_changed.cfg) to
    the router
8.  Login to the router web interface (SuperUser:ETxxxxxxxxxx, where
    ETxxxxxxxxxx is the serial number from the backplate label)
9.  Navigate to Settings -> WAN -> Add static IP interface (e.g.
    10.0.0.1/255.255.255.0)
10. Navigate to Settings -> Remote cotrol -> Add SSH, port 22,
    10.0.0.0/255.255.255.0 and interface created before
11. Change IP of your client to 10.0.0.2/255.255.255.0 and connect the
    ethernet cable to the WAN port of the router
12. Connect to the router using SSH shell under SuperUser account
13. Run in SSH shell:
       sh
14. Make a mtd backup (optional, see related section)
15. Change bootflag to Sercomm1 and reboot:
       printf 1 | dd bs=1 seek=7 count=1 of=/dev/mtdblock3
       reboot
16. Login to the router web interface under admin account
17. Remove dots from the OpenWrt factory image filename
18. Update firmware via web using OpenWrt factory image
Revert to stock
---------------
Change bootflag to Sercomm1 in OpenWrt CLI and then reboot:
   printf 1 | dd bs=1 seek=7 count=1 of=/dev/mtdblock3
mtd backup
----------
1. Set up a tftp server (e.g. tftpd64 for windows)
2. Connect to a router using SSH shell and run the following commands:
      cd /tmp
      for i in 0 1 2 3 4 5 6 7 8 9 10; do nanddump -f mtd$i /dev/mtd$i; \
      tftp -l mtd$i -p 10.0.0.2; md5sum mtd$i >> mtd.md5; rm mtd$i; done
      tftp -l mtd.md5 -p 10.0.0.2
Recovery
--------
Use sercomm-recovery tool.
Link: https://github.com/danitool/sercomm-recovery
MAC Addresses
-------------
+-----+------------+---------+
| use | address    | example |
+-----+------------+---------+
| LAN | label      | *:50    |
| WAN | label + 11 | *:5b    |
| 2g  | label + 2  | *:52    |
| 5g  | label + 3  | *:53    |
+-----+------------+---------+
The label MAC address was found in Factory 0x21000
cfgtool.py
----------
A tool for decoding and encoding Sercomm configs.
Link: https://github.com/r3d5ky/sercomm_cfg_unpacker
Co-authored-by: Karim Dehouche <karimdplay@gmail.com>
Co-authored-by: Maximilian Weinmann <x1@disroot.org>
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
		
	
		
			
				
	
	
		
			116 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# Copyright (C) 2011-2012 OpenWrt.org
 | 
						|
#
 | 
						|
 | 
						|
[ -e /etc/config/ubootenv ] && exit 0
 | 
						|
 | 
						|
touch /etc/config/ubootenv
 | 
						|
 | 
						|
. /lib/uboot-envtools.sh
 | 
						|
. /lib/functions.sh
 | 
						|
 | 
						|
board=$(board_name)
 | 
						|
 | 
						|
case "$board" in
 | 
						|
alfa-network,ac1200rm|\
 | 
						|
alfa-network,awusfree1|\
 | 
						|
alfa-network,quad-e4g|\
 | 
						|
alfa-network,r36m-e4g|\
 | 
						|
alfa-network,tube-e4g|\
 | 
						|
engenius,esr600h|\
 | 
						|
sitecom,wlr-4100-v1-002)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x1000"
 | 
						|
	;;
 | 
						|
allnet,all0256n-4m|\
 | 
						|
allnet,all0256n-8m|\
 | 
						|
allnet,all5002|\
 | 
						|
yuncore,ax820)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000"
 | 
						|
	;;
 | 
						|
ampedwireless,ally-00x19k|\
 | 
						|
ampedwireless,ally-r1900k)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000" "4"
 | 
						|
	;;
 | 
						|
beeline,smartbox-giga|\
 | 
						|
beeline,smartbox-turbo|\
 | 
						|
etisalat,s3|\
 | 
						|
rostelecom,rt-sf-1)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd0" "0x80000" "0x1000" "0x20000"
 | 
						|
	;;
 | 
						|
buffalo,wsr-1166dhp|\
 | 
						|
buffalo,wsr-600dhp|\
 | 
						|
kroks,kndrt31r16|\
 | 
						|
kroks,kndrt31r19|\
 | 
						|
mediatek,linkit-smart-7688|\
 | 
						|
samknows,whitebox-v8|\
 | 
						|
xiaomi,mi-router-4c|\
 | 
						|
xiaomi,miwifi-nano|\
 | 
						|
zbtlink,zbt-wg2626|\
 | 
						|
zte,mf283plus)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x10000"
 | 
						|
	;;
 | 
						|
belkin,rt1800|\
 | 
						|
h3c,tx1800-plus|\
 | 
						|
h3c,tx1801-plus|\
 | 
						|
h3c,tx1806|\
 | 
						|
jcg,q20|\
 | 
						|
linksys,e7350|\
 | 
						|
netgear,wax202)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
 | 
						|
	;;
 | 
						|
haier,har-20s2u1|\
 | 
						|
sim,simax1800t)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
 | 
						|
	ubootenv_add_uci_sys_config "/dev/mtd1" "0x40000" "0x40000" "0x20000"
 | 
						|
	;;
 | 
						|
hootoo,ht-tm05|\
 | 
						|
ravpower,rp-wd03)
 | 
						|
	idx="$(find_mtd_index u-boot-env)"
 | 
						|
	[ -n "$idx" ] && \
 | 
						|
		ubootenv_add_uci_config "/dev/mtd$idx" "0x4000" "0x1000" "0x1000"
 | 
						|
	;;
 | 
						|
beeline,smartbox-flash|\
 | 
						|
linksys,ea6350-v4|\
 | 
						|
linksys,ea7300-v1|\
 | 
						|
linksys,ea7300-v2|\
 | 
						|
linksys,ea7500-v2|\
 | 
						|
linksys,ea8100-v1|\
 | 
						|
linksys,ea8100-v2|\
 | 
						|
mts,wg430223)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000"
 | 
						|
	;;
 | 
						|
xiaomi,mi-router-3g-v2|\
 | 
						|
xiaomi,mi-router-4a-gigabit|\
 | 
						|
xiaomi,miwifi-3c)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x10000"
 | 
						|
	ubootenv_add_uci_sys_config "/dev/mtd2" "0x0" "0x4000" "0x10000"
 | 
						|
	;;
 | 
						|
xiaomi,mi-router-3g|\
 | 
						|
xiaomi,mi-router-3-pro|\
 | 
						|
xiaomi,mi-router-4|\
 | 
						|
xiaomi,mi-router-ac2100|\
 | 
						|
xiaomi,redmi-router-ac2100)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000"
 | 
						|
	ubootenv_add_uci_sys_config "/dev/mtd2" "0x0" "0x4000" "0x20000"
 | 
						|
	;;
 | 
						|
zyxel,lte3301-plus)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x80000"
 | 
						|
	;;
 | 
						|
zyxel,nr7101)
 | 
						|
	idx="$(find_mtd_index Config)"
 | 
						|
	[ -n "$idx" ] && \
 | 
						|
		ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x1000" "0x80000"
 | 
						|
	;;
 | 
						|
bolt,arion|\
 | 
						|
xiaomi,mi-router-cr6606|\
 | 
						|
xiaomi,mi-router-cr6608|\
 | 
						|
xiaomi,mi-router-cr6609)
 | 
						|
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x20000"
 | 
						|
	;;
 | 
						|
esac
 | 
						|
 | 
						|
config_load ubootenv
 | 
						|
config_foreach ubootenv_add_app_config
 | 
						|
 | 
						|
exit 0
 |