news 2026/10/15 18:13:58

OmniDrive是什么?一款让MT1959光驱通吃游戏光盘的开源固件破解工具完整解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OmniDrive是什么?一款让MT1959光驱通吃游戏光盘的开源固件破解工具完整解析

【免费下载链接】OmniDrive

项目地址:https://gitcode.com/gh_mirrors/omn/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 命令(opcodeC0h),可自由控制 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 不是重写整个固件,而是在官方固件的“空隙”里做精准手术,代码量非常精简:

  1. Hook 关键函数:用 C 语言(src/main.c)实现一组“钩子函数”,比如拦截 DVD/BD 读取命令、修改 TOC 读取流程,再通过汇编把原固件里的调用点重定向到自己的代码(asm/main.asm 中一行行bl XxxHook就是挂钩点)。
  2. 新增自定义命令:在固件空余空间中插入一张新的命令表,把C0h注册为 OmniDrive 专属的 READ DISC RAW 命令(asm/main.asm),并自动按光盘类型分发到 CD/DVD/BD 三条 raw 读取路径(src/main.c)。
  3. 专盘专项处理:例如 Xbox XGD 双层盘需要找到安全扇区、重算光盘总扇区数并改写 TOC,对应逻辑在 src/main.c 的EnableXGD();任天堂光盘则会强制开启 BCA 通道以便读取备份通道数据。
  4. 破解完整性校验:MT1959 芯片对固件做 CMAC 签名校验,直接改固件会被拒绝启动。项目内置 scripts/update_cmac.py,利用公开可逆的校验算法在补丁后重算并回写 CMAC 签名,让修改后的固件能正常通过芯片自检。
  5. 一驱一表:每台光驱的函数地址、补丁点都不一样,项目为每款支持的驱动单维护一份地址表——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.00HL-DT-ST_BD-RE_BU40N_1.00.bin各类超薄(slim)光驱
华硕 BW-16D1HT v3.02ASUS_BW-16D1HT_3.02.bin各类台式机(desktop)光驱

⚠️ 前提是你的光驱采用MT1959 芯片组且出自 Hitachi-LG。刷写前请先用sdftool读出原固件比对,型号不对请勿硬刷。

2. 编译生成破解固件

环境依赖:CMake(≥3.26)、ninja、arm-none-eabi-gcc交叉编译工具链、armips 汇编器、Python 3 与 pycryptodome 库。

操作步骤:

  1. 获取源码:

    git clone https://gitcode.com/gh_mirrors/omn/OmniDrive
  2. 把两份官方原始固件.bin文件按上表命名放入firmware/目录,并核对 README.md 中的 CRC32 / MD5 / SHA-1 校验值,确保文件完整未被修改。

  3. 配置并编译(CMakeLists.txt 会自动为firmware/下每个固件生成补丁任务,交叉编译参数由 arm-toolchain.cmake 预设):

    mkdir build && cd build cmake -G Ninja .. ninja
  4. 编译产物输出到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

项目地址:https://gitcode.com/gh_mirrors/omn/OmniDrive
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 18:13:38

用MATLAB计算矩形微带天线尺寸:从公式到仿真实战

简介:天线设计入门常从微带天线开始,其尺寸计算是射频工程设计的基础环节。矩形微带贴片天线的物理尺寸依赖中心频率、基板介电常数与厚度三要素,需通过有效介电常数和边缘场修正准确求得。利用MATLAB脚本可实现宽度、长度及馈点位置的快速估…

作者头像 李华
网站建设 2026/10/15 18:12:53

Flutter for OpenHarmony实战:底部导航栏从设计到落地

Flutter for OpenHarmony 这个组合最近被问得挺多。我手头正好在做一个面向某款热门战术竞技手游(就是大家常说的吃鸡类游戏)的助手 App,第一关要做的界面就是底部导航栏。别看它只是四个图标加四个页面,真要在 OpenHarmony 设备上…

作者头像 李华
网站建设 2026/10/15 18:12:53

AngularJS状态管理不再难:Redux绑定库ng-redux完全指南

【免费下载链接】ng-redux Angular bindings for Redux 项目地址: https://gitcode.com/gh_mirrors/ng/ng-redux 点击查看 免费下载 AngularJS状态管理不再难!ng-redux 是一款专为 AngularJS(Angular 1.x)打造的 Redux 绑定库&am…

作者头像 李华
网站建设 2026/10/15 18:12:38

像写SQL一样查询大模型:LARQL的LQL查询语言快速上手指南

【免费下载链接】larql 项目地址: https://gitcode.com/gh_mirrors/la/larql 点击查看 免费下载 LARQL 是一个开源大模型研究系统,其中的 LQL(Lazarus Query Language,Lazarus 查询语言) 让你可以像写 SQL 一样查询、…

作者头像 李华