【免费下载链接】OmniDrive
OmniDrive 是一款面向 MediaTek MT1959 芯片光驱的开源固件修改工具,专为 Hitachi-LG Data Storage 光驱打造。刷入它之后,普通光驱就能完整读取 PS3/PS4/PS5、Xbox、Wii 等专用游戏光盘,支持原始扇区(raw)读取、lead-in/lead-out 读取,是光盘备份与存档玩家手中的“神器”。
一、OmniDrive 是什么?一句话说清 💡
普通光驱的固件对“不认识”的光盘格式会直接拒绝读取,而OmniDrive 就是一套给光驱刷入的破解固件补丁,它:
- 解锁 CD / DVD / BD 的lead-in、lead-out 读取(光盘边缘的隐藏区域);
- 解锁三种介质完整的raw 扇区读取:CD 每扇区 2352 字节、DVD 2064 字节、BD 2072 字节;
- 新增一条自定义的READ DISC RAW 命令(opcode
C0h),可自由控制 FUA(绕过缓存)、原始寻址(CD 用 MSF、DVD/BD 用 PSN)以及 DVD/BD 解扰开关; - 让光驱识别并读取各大厂商的专用游戏光盘。
刷写成功后,光驱的 Inquiry 识别信息会被改写为 “OmniDrive” 加版本号(当前为 1.0.4,见 asm/version.asm),一眼就能确认固件已生效。
二、它能让光驱读哪些游戏光盘?🎮
这是 OmniDrive 最大的卖点。官方支持列表如下(摘自 README.md):
| 光盘类型 | 支持状态 | 备注 |
|---|---|---|
| CD(ROM/R/RW) | ✅ | 原生支持 |
| DVD(ROM/RAM/±R/±RW) | ✅ | 原生支持 |
| BD(ROM/R/RE)、BD-XL、UHD-BD | ✅ | 原生支持 |
| PlayStation 3 / 4 / 5 BD-ROM | ✅ | 光盘内容加密,加密密钥无法获取 |
| Xbox(XGD1) | ✅ | 需刷入 OmniDrive 才能读取 |
| Xbox 360(XGD2/XGD3) | ✅ | 需刷入 OmniDrive 才能读取 |
| Xbox One / Series(XGD4) | ✅ | 游戏文件加密,密钥无法获取 |
| GameCube(NROM)/ Wii(RVL-ROM) | ✅ | 需刷入 OmniDrive 才能读取 |
| GameCube(NR)/ Wii(RVT-R) | ⚠️ | 光驱识别可能需要几分钟,备份软件支持仍在完善 |
| Wii U(WUP-ROM?) | ⚠️ | 可读、可解扰,但无法解密 |
| Wii U(CAT-R) | ✅ | 原生支持 |
| Dreamcast(GD-ROM/GD-R) | ❎ | 目前仅能读取低密度区域 |
简单记:索尼系主机光盘能读但解不了密,微软系和任天堂系光盘能读且大部分内容可直接备份,Dreamcast 暂时无解。
三、它是怎么做到的?技术原理速览 🔍
OmniDrive 不是重写整个固件,而是在官方固件的“空隙”里做精准手术,代码量非常精简:
- Hook 关键函数:用 C 语言(src/main.c)实现一组“钩子函数”,比如拦截 DVD/BD 读取命令、修改 TOC 读取流程,再通过汇编把原固件里的调用点重定向到自己的代码(asm/main.asm 中一行行
bl XxxHook就是挂钩点)。 - 新增自定义命令:在固件空余空间中插入一张新的命令表,把
C0h注册为 OmniDrive 专属的 READ DISC RAW 命令(asm/main.asm),并自动按光盘类型分发到 CD/DVD/BD 三条 raw 读取路径(src/main.c)。 - 专盘专项处理:例如 Xbox XGD 双层盘需要找到安全扇区、重算光盘总扇区数并改写 TOC,对应逻辑在 src/main.c 的
EnableXGD();任天堂光盘则会强制开启 BCA 通道以便读取备份通道数据。 - 破解完整性校验:MT1959 芯片对固件做 CMAC 签名校验,直接改固件会被拒绝启动。项目内置 scripts/update_cmac.py,利用公开可逆的校验算法在补丁后重算并回写 CMAC 签名,让修改后的固件能正常通过芯片自检。
- 一驱一表:每台光驱的函数地址、补丁点都不一样,项目为每款支持的驱动单维护一份地址表——LG BU40N 见 asm/HL-DT-ST_BD-RE_BU40N_1.00.asm,华硕 BW-16D1HT 见 asm/ASUS_BW-16D1HT_3.02.asm,新机型适配只需照葫芦画瓢补一张表。
四、哪些光驱能用?适用机型与刷写教程 🛠️
1. 先确认你的光驱型号
目前项目基于两份官方原始固件制作补丁,覆盖面如下:
| 原始固件 | 文件名 | 适用光驱 |
|---|---|---|
| LG HL-DT-ST BD-RE BU40N v1.00 | HL-DT-ST_BD-RE_BU40N_1.00.bin | 各类超薄(slim)光驱 |
| 华硕 BW-16D1HT v3.02 | ASUS_BW-16D1HT_3.02.bin | 各类台式机(desktop)光驱 |
⚠️ 前提是你的光驱采用MT1959 芯片组且出自 Hitachi-LG。刷写前请先用
sdftool读出原固件比对,型号不对请勿硬刷。
2. 编译生成破解固件
环境依赖:CMake(≥3.26)、ninja、arm-none-eabi-gcc交叉编译工具链、armips 汇编器、Python 3 与 pycryptodome 库。
操作步骤:
获取源码:
git clone https://gitcode.com/gh_mirrors/omn/OmniDrive把两份官方原始固件
.bin文件按上表命名放入firmware/目录,并核对 README.md 中的 CRC32 / MD5 / SHA-1 校验值,确保文件完整未被修改。配置并编译(CMakeLists.txt 会自动为
firmware/下每个固件生成补丁任务,交叉编译参数由 arm-toolchain.cmake 预设):mkdir build && cd build cmake -G Ninja .. ninja编译产物输出到
patched_firmware/目录,文件名形如HL-DT-ST_BD-RE_BU40N_1.00_OmniDrive-1.0.4.bin,其中就包含了重算后的 CMAC 签名。
3. 刷写到光驱
- 官方推荐做法:使用 MakeMKV 附带的
sdftool工具进行刷写; - 开源工具 Redumper 也已提供初步的刷写支持,但目前还不能跨型号互相刷写,请严格按“slim 用 BU40N 固件、desktop 用 BW-16D1HT 固件”选择。
🔥风险提示:固件刷写存在变砖风险,操作前务必备份原始固件,并确认断电流程。刷坏的光驱可能彻底无法识别,请务必谨慎。
五、常见问题 FAQ ❓
Q1:刷了 OmniDrive 后还能播放 DVD 电影吗?可以。补丁只增强读取能力,常规播放、刻录功能不受影响,且支持从更高版本固件降级回滚(固件内保留了降级许可位)。
Q2:PS3/PS4/PS5 光盘刷了就能直接玩吗?不能。OmniDrive 解决的是“光驱读不读”的问题;这些光盘的游戏文件本身经过加密,密钥绑定主机,光驱端无法取出,因此读出的内容主要用于存档备份而非直接运行。
Q3:刷坏了吗?能回退吗?只要你事先用sdftool备份了原始固件,随时可以刷回原厂版本恢复。
Q4:项目是什么许可协议?GPLv3(见 LICENSE.md),并附带一条额外许可:允许将 OmniDrive 与 MT1959 原厂固件链接组合后分发。
六、写在最后
OmniDrive 用不到 300 行 C 代码加几百行汇编,就把 MT1959 光驱的读取能力“越级”提升了一个档次:从只认标准光盘,到几乎通吃各家游戏光盘。对于从事光盘存档、数据抢救、固件逆向的爱好者来说,它是目前该芯片平台上功能最全的开源方案。
如果你手上有 LG / 华硕的 MT1959 光驱,又有一批老游戏光盘想完整备份,不妨从这份教程开始动手试试——先备份、再编译、最后刷写,全程只要十几分钟。
【免费下载链接】OmniDrive
相关推荐
如何高效管理UNDERTALE同人游戏:UT-DR-AU-Launcher完全指南
如何高效管理UNDERTALE同人游戏:UT DR AU Launcher完全指南 前言 你是否曾为管理众多UNDERTALE和Deltarune同人游戏而烦恼
桌面应用Zipline PWA应用配置指南:如何将文件上传服务转换为移动端应用
Zipline PWA应用配置指南:如何将文件上传服务转换为移动端应用 在当今移动优先的时代,将文件上传服务转换为原生应用体验已成为提升用户体验的关键。Zipl
后端GP2040-CE:为什么这款开源游戏手柄固件能让你的游戏体验提升10倍?🎮
GP2040 CE:为什么这款开源游戏手柄固件能让你的游戏体验提升10倍?🎮 在竞技游戏的世界里,每一毫秒的延迟都可能决定胜负。GP2040 CE作为一款高性
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考