mayusi/odin3-npu-teardown

GitHub: mayusi/odin3-npu-teardown

该仓库通过 47 阶段的系统级逆向工程,以三重独立证据链证明 AYN Odin 3 的高通定制 SoC 之 Hexagon NPU 子系统在出厂时已被 QFPROM 熔断永久禁用,无法通过任何软件手段解锁。

Stars: 1 | Forks: 0

## 📖 **[→ 阅读完整文档站点 ←](https://mayusi.github.io/odin3-npu-teardown/)** ### **[mayusi.github.io/odin3-npu-teardown](https://mayusi.github.io/odin3-npu-teardown/)** — 支持标签页、可搜索、暗黑模式的文档 [![文档站点](https://img.shields.io/badge/docs-live%20site-7e57c2?style=for-the-badge&logo=readthedocs&logoColor=white)](https://mayusi.github.io/odin3-npu-teardown/)   [![最终结论](https://img.shields.io/badge/verdict-NSP%20FUSED%20OFF-c62828?style=for-the-badge)](https://mayusi.github.io/odin3-npu-teardown/01-the-verdict/)
# Odin 3 / Snapdragon CQ8725S — NPU (NSP) 解锁调查 ### 一份详尽的、有证据支撑的深度拆解:*为什么* AYN Odin 3 上的 Hexagon NPU 无法被启用 —— 以及为了启用它所尝试的一切手段。 **设备:** AYN Odin 3 · **SoC:** Qualcomm `sun` / SM8750 级别,型号 **CQ8725S-3-AA** (Dragonwing / IoT 规格版本) **结论:** `NSP_HARDWARE_FUSE_DISABLED` — NPU 子系统在**出厂时已被熔断禁用**,这与 modem 被禁用的方式相同。**无法通过软件、固件、签名或任何设备端路径进行解锁(确信度约 94%)。**
## 为什么会有这个项目 这个项目从一句*“NPU 关了,咱们把它打开吧”*,演变成了一场涵盖 **47 个独立工作阶段**的全面逆向工程攻坚——数百份分析报告、远超一千次的探测抓包、多次独立的内核编译、反复的 EDL/Firehose 会话、完整的 bootloader 认证逆向、一次设备变砖与恢复,以及最终在设备上直接读取熔丝。各个突破口依次为:无 root 的 QNN 探测 → 固件层面摸底 → XBL/启动策略分析 → EDL/Firehose 存储取证 → donor 固件对比 → 内核源码编译 (×5) → 实时的 `vendor_dlkm`/`vendor_boot` 启动探测(其中一次**导致设备变砖并已完全恢复**) → 出厂固件逆向工程 → 最终通过**在设备上只读读取熔丝**为该案件一锤定音。[完整测试清单](docs/03-methods/00-full-test-inventory.md) 对每一个阶段进行了分类记录。 它并没有解锁 NPU——因为压根就不存在可供解锁的机制。但它针对这个此前无人记录过的 SoC,得出了一个严谨且可复现的答案。这就是本仓库所发布的内容。 ## 阅读文档 | 标签页 | 包含内容 | |---|---| | **[概述](docs/00-overview/)** | 设备是什么,NPU/NSP/CDSP/FastRPC 协议栈是什么,以及如何阅读本仓库 | | **[最终结论](docs/01-the-verdict/)** | 直截了当的最终答案,附带确信度与注意事项 | | **[我们如何证明](docs/02-how-we-proved-it/)** | 三个独立的证据:实时 socinfo 读取、FeatureEnabler trustlet、内核源码 + 专利 | | **[方法](docs/03-methods/)** | 尝试过的每一种途径 —— EDL/Firehose、XBL/启动策略、vendor_dlkm、内核编译、FeatureEnabler、donor 固件 | | **[证据](docs/04-evidence/)** | [`/evidence`](evidence/) 中精选的原始证据(日志、读取结果、报告、哈希值)索引 | | **[时间线](docs/05-timeline/)** | 每个阶段和结果的按时间顺序记录 | | **[常见问题解答](docs/06-faq/)** | “AYN 不能直接启用它吗?”、“这真的是永久的吗?” 等等 | | **[复现步骤](docs/07-reproduce/)** | 在你自己的 Odin 3 上验证关键发现的只读操作步骤 | ## 一段话的证明 `/sys/devices/soc0/nsp` 的数据源自 Qualcomm socinfo 的 **`subset_parts`**(即 `defective_parts` / “partial-goods” 瑕疵品)表,该表由启动固件在启动时从 **QFPROM** 中填充。在这台设备上,`nsp` 的读取值为 `0xff`(不存在)——这与在同一手持无蜂窝网络设备上报告 `modem = 0xff`(一个已知真实的硬件硬件级屏蔽)使用的是*相同的表、相同的编码*。经过签名的 XBL bootloader 通过读取熔丝字 `0x221c2420` 推导出该值;FeatureEnabler trustlet 则独立检查 `qsee_is_sw_fuse_blown(fuse_id = 22 = NSP_DISABLE)`。QFPROM 熔丝属于一次性可编程,且在启动后只读(Qualcomm 专利 **US 12,061,855**,"Functional circuit block harvesting" / 功能电路模块筛选)。保存 NSP 位的熔丝孔径**并未**映射到 Android(`/proc/iomem` 仅显示 `0x221c8000` 窗口),且 `/dev/mem` 已在编译时被剔除——因此即使拥有 root 权限,也无法从操作系统中对其进行更改。三种独立的方法得出了一致的结论。 ## ⚠️ 本仓库包含与不包含的内容 本仓库包含**原创分析、文档、脚本以及精选的文本证据**(日志、设备端读取结果、解码报告、哈希值)。它**不**分发以下内容: - **AYN 的专有出厂固件**(`ODIN3_FOLDERS` 及其签名镜像)——已记录并计算了哈希值,但从未公开上传。 - 用于对比的**第三方 donor 固件**二进制文件——仅注明了出处,未包含在仓库中。 - 任何设备序列号、IMEI、密钥或个人路径——均已进行脱敏处理(参见 [`SENSITIVE.md`](SENSITIVE.md))。 关于*包含*的内容及其原因,请参见 [`docs/04-evidence`](docs/04-evidence/)。 ## 状态 `CASE CLOSED` · `NSP_HARDWARE_FUSE_DISABLED` · `~94% PERMANENT` · `NOT UNLOCKABLE ON THIS DEVICE` ## 许可证 文档与原创分析:参见 [`LICENSE`](LICENSE)。引用的固件字符串、寄存器名称和第三方标识符仍归其各自所有者所有,并在此基于合理使用原则进行复制,用于研究/互操作性文档记录。
标签:NPU, 云资产清单, 安全渗透, 安卓底层, 嵌入式系统, 技术文档, 故障分析, 硬件分析, 逆向工程, 高通芯片