看了一圈好像国内目前没有人发相关的教程,遂在此分享 😋
警告:修改固件有风险,请谨慎操作。作者不为您的不当操作所产生的任何后果负责

效果展示
准备阶段
你所需要的是:
版本不要太低的 python 环境,如果没有的话,可以参考 Python安装与环境变量配置
进行配置
用于修改固件的工具 G90Tools ,建议全部下载 / clone 下来
后缀名为 .xgf
的官方机头固件,请去 官网 下载
你想要修改的黑白二值图像,大小为 48px * 48px,建议导出为 bmp 格式
对于非 Windows 用户,请自行参考下文内容
开始操作
一 解密固件
从官网中下载到的 .xgf
文件,其实质为经 aes-256 加密后的 stm32 单片机固件。G90系固件的密钥通用,只要提取出一个密钥就可以对所有固件解密了。提取的方法参见 本文,这里直接给出结论:
435158494547552d584945594920202059414e4855414e204d4f554c49414e5a
假设你下载到的固件叫做 G90_DispUnit.xgf
,把它移动到 G90Tools\encryption
文件夹下。
在 G90Tools\encryption
处启动命令行
执行命令:
python encryption.py 435158494547552d584945594920202059414e4855414e204d4f554c49414e5a decrypt G90_DispUnit.xgf fw_plain.bin
如果出现
success: plaintext firmware written to fw_plain.bin
且当前目录下出现 fw_plain.bin
即为成功,此文件便是解密后的固件。
二 修改启动图像
将准备好的二值图像移动至 G90Tools\bootlogo
处,命名为 mylogo.bmp
将 fw_plain.bin
移动至 G90Tools\bootlogo
处,在此启动命令行
执行命令:
python .\patch_bootlogo.py .\mylogo.bmp .\fw_plain.bin
若出现
done: new bootlogo image patched
则修改成功,fw_plain.bin
本身即为修改后的固件,此时可以将其重命名为 fw_plain_patched.bin
三 重新加密固件
改好的固件需要重新加密才能刷入机器里。
将 fw_plain_patched.bin
,移动至 G90Tools\encryption
下,并启动命令行
执行命令:
python encryption.py 435158494547552d584945594920202059414e4855414e204d4f554c49414e5a encrypt .\fw_plain_patched.bin fw_patched.xgf
若出现
success: encrypted firmware written to fw_patched.xgf
即为成功
最终得到的 fw_patched.xgf
就是可以刷入机头的固件,可以快点刷机啦~
四 ???
工具包里还有一个 disable_lock
,这是什么东西?🤔
我才不知道,我不会成为你的传话筒