135
0

鼎阳SDG810带宽升级

2026-09-25
2026-09-26

背景

前段时间在网上发现了有sdg810升级sdg830的案例,搜索更多信息后,发现eevblog也有售后回来成功升级的,但是没有并找到到底如何升级,只知道810升级830是可行的。

据信只需要在机器上纯按键操作就可以升级,不需要联机进行复杂操作,怀疑升级相关内容是完全存在固件中的,于是去鼎阳官网查看固件信息。

鼎阳支持页面做的还不错,不但可以下载各个版本的固件升级包,甚至还写了更新内容。最新固件V1.08.01.15R8更新内容明晃晃写着:“1. 解决SDG800升带宽无法立即生效需要重启才能生效问题”。证实了升级带宽是固件真实存在的功能,并且还存在了不止一个版本。截止本文起草,这个固件就是最新固件。

既然这个固件更改了相关功能,那其内部肯定有相关的变动,也许可以从中获得一些信息。
让AI分析了一下固件,有了一些收获,进一步研究后得到了升级方法。具体内容担心合规性,不做展示,感兴趣的朋友可以去自行尝试。

悄悄话

(相信鼎阳差价几千的sds都允许随便升,那差价才几百的sdg800系肯定更不会管x)

容器解包: plain = reverse(raw) ⊕ A ⊕ B
A = { k(k+1)/2 : k = 1,2,3,… , p < n }
B = [ n − n//2 − 56 , n )

后面就是使用GNU-tools和Unicorn的常规操作了,让ai完成即可

操作方法

下面是具体操作方法,包括升级和降级

方法1

访问本站这个小工具,里面包含操作方法,全部计算在本地完成,信息不会上传服务器。

方法2

  • 进入仪器Utility-系统界面,获取机器序列号,计算授权码。

  • 在仪器Utility-系统界面上,用数字键盘连按 745896,弹出授权输入框。

  • 用方向键 / 旋钮在屏幕字符表里逐字选出上面这 16 位码,Select 确认、Delete 删字。

  • 按 Done,出现 License right! 即完成(失败显示 License error!)

授权码使用下面的python脚本进行计算,可在这里执行,SERIAL后面引号中的内容换成你的序列号。

#!/usr/bin/env python3
import hashlib

SERIAL = "SDGXXXXXXXXXXX" # 替换成你的序列号

SEED = (b"5zao9lyua01pp7hjzm3orcq90mds63z6zi5kv7vmv3ih981vlwn06txnjdtas3u2wa8msx"
        b"61i12ueh14t7kqwsfskg032nhyuy1d9vv2wm925rd18kih9xhkyilobbgy")

PRODUCT = b"MD5_PR SDG800\n"
BAND_STR = {5: b"5M", 10: b"10M", 30: b"30M"}
MODEL = {5: "SDG805", 10: "SDG810", 30: "SDG830"}
FIXUP = {ord("0"): "2", ord("1"): "3", ord("l"): "m", ord("o"): "p"}


def pad(data, size):
    return data[:size].ljust(size, b"\x00")

def map_byte(b):
    if 48 <= b <= 57 or 97 <= b <= 122:
        c = b
    else:
        r = b % 36
        c = 48 + r if r <= 9 else 97 + r - 10
    return FIXUP.get(c, chr(c))

def license_code(serial, band):
    srl = b"MD5_SRLN " + serial.encode() + b"\n"
    blob = (SEED
            + pad(PRODUCT, 32)
            + pad(BAND_STR[band], 5)
            + pad(srl, 32)
            + pad(srl, 32)
            + b"\x00" * 16)
    return "".join(map_byte(b) for b in hashlib.md5(blob).digest()).upper()

def main():
    print("序列号  %s" % SERIAL)
    for band in (5, 10, 30):
        print("%-7s %2d MHz  %s" % (MODEL[band], band, license_code(SERIAL, band)))

if __name__ == "__main__":
    main()

注意事项

1.本人只在硬件版本0b-00-00-15-00软件版本1.08.01.15R8的sdg810上经过测试,升级到sdg830再降级到sdg810均成功,理论上不怎么挑版本。

2.不建议频繁升降级,此操作会有flash写入,而flash是有寿命的。

评论