chore: reorganize analysis/ by SDK lineage (linux/win/android) with README index, move legacy notes to history/, refresh root README, ignore .zcode/

This commit is contained in:
ZXCLI
2026-09-10 03:09:13 +08:00
parent 4ba98f62cd
commit e69a97436b
137 changed files with 123 additions and 62 deletions
+55 -52
View File
@@ -1,64 +1,67 @@
# MAG160C 热像仪逆向工程
# MAG160C 热像仪统一工程
MAG160C 热像仪(160×120USB VID 0x833C)的 USB 协议、官方 SDK 逆向、纯 C SDK
**官方渲染管线逐像素复刻**(demo3 v5)的完整工程。
MAG160C 热像仪(160×12015fpsUSB VID `0x833C`)的逆向工程与双端实现:
**C 参考实现**Linux/Windows,源自官方 PC SDK 逆向)与**安卓统一 App**
Kotlin + Compose,适配 Android 16,整合官方 4 个 App 的功能)。
## 从这里开始
## 从这里开始(新接手者阅读顺序)
新接手者按顺序阅读:
1. `analysis/reverse_20260813_full.md` — 官方管线 Ghidra 全量逆向 + 鬼影根因(最新
2. `analysis/session_state.md` — 当前会话状态与恢复点(心跳锚点
3. `交接_完整逆向工程说明_20260811.md` — 项目总交接(目录/环境/历史/失败路线
4. `analysis/protocol_spec.md` — USB 协议/帧/命令/温度规格
5. `csdk/README.md`**C SDK 完整使用文档**(构建/API/工具/测试)
6. `csdk/tools/mag160c_demo3.c` — 主程序(官方管线复刻)
## 当前状态(2026-08-13
- demo3 v5 已完整复刻官方渲染管线:DDT 校准表加载 → 快门驱动端点选择与
Q12 插值 → ref=FFC 窗口 4×type1 帧均值 → NUC 查表 → 盲元补偿 →
窗口 → LUT1024 重建 → 灰度 → 2x 升采样 → 官方调色板
- 逐像素验证:NUC+盲元 0/19200、插值 0 误差、2x 0/76800、窗口一致
- 同静态场景 gray 直方图与官方相关性 0.92(跨会话)
- 原"鬼影"问题的根因已定位并复刻官方行为(见 reverse_20260813_full.md §7
## 硬件
- 设备:MAG160C 热像仪,分辨率 160×12015 fps
- USB VID`0x833C`,常见 PID`0x0001`
- 帧:19200 个小端 `uint16`;端点:命令 `0x03`/响应 `0x82`/实时帧 `0x81`
## 快速入口
```powershell
# 编译 demo3(官方管线复刻)
gcc -O2 -w -DMAG160C_STATIC -I"csdk\third_party\libusb\win64" -I"csdk\include" -I"csdk\src" `
-o build-artifacts\mag160c_demo3.exe csdk\tools\mag160c_demo3.c `
csdk\src\mag160c_display.c csdk\src\mag160c_error.c `
csdk\third_party\libusb\win64\libusb-1.0.x64.a -lgdi32 -luser32
# 启动
Start-Process "build-artifacts\mag160c_demo3.exe" -WorkingDirectory "build-artifacts"
```
详细用法见 `csdk/README.md`
1. `docs/android_app/HANDOFF_DEVELOPMENT.md` — 安卓 App 总交接(必读)
2. `docs/android_app/session_state.md` — 会话心跳与待办(最新进度)
3. `analysis/README.md` — 逆向工程总目录索引(Linux/Windows/Android 三条线
4. `analysis/magcx_official_flow.md`**权威 USB 协议结论**(官方源码逐行核对版
5. `analysis/protocol_spec.md` — 早期 PC 端协议逆向(硬件验证记录
6. `csdk/README.md` — C SDK 文档(构建/API/工具/测试)
## 仓库结构
| 路径 | 用途 |
|---|---|
| `csdk/` | 纯 C SDK + 工具(见 `csdk/README.md`|
| `analysis/` | 逆向证据:反编译导出(`ida/`)、协议规格、交接文档、抓帧数据 |
| `IR_Camera_SDK-1.0.1/` | 原厂 Windows/Android/Linux SDK |
| `build-artifacts/` | 运行目录(demo3 exe、DDT 表、官方抓帧工具)|
| `docs/` `vendor-docs/` `app/` | 历史资料与模块文档 |
| `tools/resume_rev.ps1` | 会话恢复脚本(心跳配套|
| `android/` | **安卓统一 App**Kotlin + ComposeGradle 工程,package `com.mag160c.thermal`):实时预览、拍照 MDT、录像、媒体库、离线分析、PDF 报告、任务巡检、设置 |
| `csdk/` | 纯 C SDK(官方管线 C 复刻:渲染/温度/IR 会话/FFC 调度,见 `csdk/README.md`|
| `analysis/` | 逆向工程总目录(Linux/Windows/Android 三条 SDK 线的解包产物与结论,见 `analysis/README.md`|
| `IR_Camera_SDK-1.0.1/` | 原厂 Windows/Android/Linux SDK 原始包 |
| `app/` | 官方安卓 APK 存档(普通版/专业版/ThermoScope/demo|
| `build-artifacts/` | 构建产物(安卓 APK、PC demo3、DDT 标定数据|
| `docs/android_app/` | 安卓 App 交接文档(HANDOFF / session_state / 逆向功能总表)|
| `vendor-docs/` | 厂商资料 |
| `tools/` | 会话恢复脚本 |
历史文档(早期 findings/progress/task_plan、根目录抓帧残留)已归档到
`analysis/history/`;早期探索工具源码在 `csdk/tools/legacy/`
## 快速入口
### 安卓 App(构建/测试)
```powershell
cd C:\Project\MAG160C\android
$env:JAVA_HOME = "C:\Tools\jdk-21"
.\gradlew.bat :app:assembleDebug test --no-daemon
# 产物:build-artifacts\mag160c-app-debug.apk
```
### C 管线复刻 demo3
```powershell
gcc -O2 -w -DMAG160C_STATIC -I"csdk\third_party\libusb\win64" -I"csdk\include" -I"csdk\src" `
-o build-artifacts\mag160c_demo3.exe csdk\tools\mag160c_demo3.c `
csdk\src\mag160c_display.c csdk\src\mag160c_error.c `
csdk\third_party\libusb\win64\libusb-1.0.x64.a -lgdi32 -luser32
Start-Process "build-artifacts\mag160c_demo3.exe" -WorkingDirectory "build-artifacts"
```
## 硬件
- 设备:MAG160C 热像仪机芯,160×120 @15fps
- USBVID `0x833C` PID `0x0001`;端点 0x03 命令 / 0x82 响应 / 0x81 图像流 /
0x84 标定文件 / 0x05 标定上传
- 协议细节:`analysis/magcx_official_flow.md`(权威)
## 里程碑
- 2026-08:官方 PC SDKlibmagcore/CoreSDKLib)逆向 + C 管线逐像素复刻(demo3)
- 2026-09-06~09:安卓 App(纯 Kotlin,无 NDK):渲染管线移植(逐字节验证)、
USB 层(官方协议 Java 源码逐行复刻)、相机式 UI、拍照/录像/媒体库/分析/PDF
- 2026-09-10:真机联调打通(根因:USB 命令字节序反转,已修复并用单测锁死);
官方 App 全量解包入库(jadx + Ghidra
## 仓库说明
仓库包含官方 SDK、第三方依赖、二进制样本和抓帧数据。部分内容可能受原厂
许可限制,仅用于本项目的互操作性研究和设备调试。大型文件使用 Git LFS。
仓库包含官方 SDK、反编译产物、二进制样本和抓帧数据。部分内容可能受原厂许可
限制,仅用于本项目的互操作性研究和设备调试。