diff --git a/debian/binary/usr/bin/restore_mac.sh b/debian/binary/usr/bin/restore_mac.sh index a99d94917..46a2d93d3 100755 --- a/debian/binary/usr/bin/restore_mac.sh +++ b/debian/binary/usr/bin/restore_mac.sh @@ -11,6 +11,14 @@ MAC_HEX=$(vendor_storage -r VENDOR_LAN_MAC_ID -t hex 2>/dev/null | \ awk '{print $2$3$4$5$6$7}' | tr 'a-f' 'A-F') if [ -n "$MAC_HEX" ] && [ ${#MAC_HEX} -eq 12 ]; then + # 验证MAC地址是否以90A9开头 + MAC_PREFIX=$(echo $MAC_HEX | cut -c1-4) + if [ "$MAC_PREFIX" != "90A9" ]; then + echo "Warning: Invalid MAC address prefix in vendor_storage: $MAC_HEX (not starting with 90A9)" + echo "Skipping MAC restore to avoid corrupted data" + exit 1 + fi + # 转换为标准MAC格式: 90A9F7300001 -> 90:A9:F7:30:00:01 MAC_ADDR=$(echo $MAC_HEX | sed 's/../&:/g;s/:$//')