您的位置:首页 > 运维架构

Openwrt 修改Mac地址

2015-09-08 18:42 603 查看
一、查看Mac地址

root@M201:~# ls /dev/mtdblock

mtdblock0 mtdblock1 mtdblock2 mtdblock3 mtdblock4 mtdblock5

root@M201:~# ls /dev/mtdblock*

/dev/mtdblock0 /dev/mtdblock2 /dev/mtdblock4

/dev/mtdblock1 /dev/mtdblock3 /dev/mtdblock5

root@M201:~# dd if=/dev/mtdblock2 of=/tmp/factory

128+0 records in

128+0 records out

root@M201:~# hexdump /tmp/factory

0000000 7620 0105 0c00 7643 1820 ffff ffff ffff

0000010 ffff ffff ffff ffff ffff ffff ffff ffff

0000020 ffff ffff ffff ffff 0c00 7643 7720 0c00

0000030 7643 6620 0c22 0000 ffff 013f 7755 aaa8

0000040 888c ffff 000a 0000 0000 0000 0000 ffff

0000050 ffff 0202 0202 0202 0202 0202 0202 0202

0000060 0303 0303 0303 0303 0303 0303 0303 ff80

0000070 ffff ff80 ffff 0000 ffff ffff ffff ffff

0000080 ffff ffff ffff ffff ffff ffff ffff ffff

*

00000d0 ff20 ffff ffff ffff ffff ffff ffff 0808

00000e0 0808 0004 0707 0004 0808 0004 0707 0004

00000f0 ffff ffff ffff ffff ffff ffff ffff ffff

*

0010000

root@M201:~# cat /sys/class/ieee80211/phy0/macaddress

00:0c:43:76:20:18

root@M201:~# hexdump -s 4 -n 6 -C /dev/mtd2 | head -n 1 | sed 's/\ \ /:/g' | cut -d: -f 2 | sed 's/\ /:/g'

00:0c:43:76:20:18

hexdump -s 偏移4个字节,-n 读取6个字节长度

head -n 显示1行

sed 's/\ \ /:/g' 将两个空格替换为一个冒号,在此为了取第二个域的mac地址

cut -d: 自定义分隔符‘:’,默认制表符;-f 与-d一起使用,指定显示哪个区域。

sed 's/\ /:/g' 将单空格替换为冒号进行显示

二、修改分区可写

index efa0569..fb4e71d 100755

--- a/target/linux/ramips/dts/M201.dts

+++ b/target/linux/ramips/dts/M201.dts

@@ -41,7 +41,6 @@

factory: partition@40000 {

label = "factory";

reg = <0x40000 0x10000>;

- read-only;

};

三、读出分区

dd if=/dev/mtdblock2 of=/tmp/factory.bin

四、修改Mac地址

这里只要对factory.bin 04-09偏移地址修改。

00 0C 43 76 20 18

五、写回分区

shell中写回factory.bin

mtd write /tmp/factory.bin factory

这是最粗暴的方式。当然,最好还是写个程序来进行修改,这个就自己发挥了(例如:macwrite)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: