Files
MAG160C/analysis/README.md
T

56 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# analysis/ — MAG160C 逆向工程总目录
> 本目录汇总了 MAG160C 相关的**全部逆向工程材料**,覆盖三条产品线:
> ① Linux SDKlibmagcore.so)② Windows SDKCoreSDKLib.dll / ThermalSDK.dll
> ③ 官方安卓 AppMAG-Cx 普通版:Java 层 + libcxsdk.so / libcoresdk.so)。
> 阅读顺序建议:先读本 README → `magcx_official_flow.md`(权威协议结论)
> → 按需深入各分目录。
## 顶层文件(结论与工具)
| 文件 | 内容 |
|---|---|
| `magcx_official_flow.md` | **权威协议结论**2026-09-10,官方 Java 源码逐行核对版):命令表、BasePara/CaliInfo 布局、连接序列、标定文件下载、FFC 逻辑 |
| `protocol_spec.md` | 早期 PC 端逆向协议(libmagcore/CoreSDKLib2026-08-10 硬件验证),历史参考 |
| `gen_kotlin_tables.py` | 生成 `OfficialTables.kt`palette256/T2E/E2T)的脚本 |
| `render_offline.c` | PC 端参考渲染管线(gcc 编译),Kotlin 移植的逐字节差分基准 |
| `official_render_frame.rgb` / `official_t2e_table.txt` / `t2e_table.json` / `test_ref_stats.txt` | PC 差分验证数据 |
| `revtools.py` / `reverse_tools/` | 逆向辅助脚本 |
## sdk_re/ — 按 SDK 产品线归档
### `sdk_re/linux_libmagcore/` — Linux SDKlibmagcore.so.2.1.1x86-64
- `magcore_disasm.txt`(全量反汇编)+ `magcore_defined.txt` / `magcore_dynsyms.txt` / `magcore_relocs.txt`
- `disasm_*.txt`:关键函数级反汇编(LinkCameraEx / StartProcessImage / Raw2Temperature /
ConvertResponse2Temp / ReviseTemperature / ffc / frameParse / AccumulatorPushFrame 等)
- `all_functions_decomp_libmagcore.so_00100000.txt`Ghidra 全量伪代码
### `sdk_re/windows_sdk/` — Windows SDKCoreSDKLib.dll / ThermalSDK.dll
- `refs_CoreSDKLib.dll.txt` / `exports_decomp_CoreSDKLib.dll.txt` / `keyfuncs_decomp_CoreSDKLib.dll.txt`
/ `callers_decomp_CoreSDKLib.dll.txt` / `coresdk_keyfuncs_disasm.txt` / `coresdk_windows_disasm.txt`
- `exports_decomp_ThermalSDK.dll.txt` + `thermalsdk_dll/` + `thermalsdk_so/`ThermalSDK 包装层)
### `sdk_re/android_app/` — 官方安卓 App(普通版 MAG-Cx,本管线上真机跑通的代码)
- `jadx_magcx/`**全量 Java 源码**jadx 1.5.1)。核心:`cn/com/magnity/magnitycx/sdk/UsbCommunication.java`
USB 协议真身)、`P2DCmd.java`/`D2PCmd.java`(命令表)、`DeviceController.java`JNI 封装)
- `libcxsdk_decomp.txt`Ghidra 全量伪代码(libcxsdk.so1290 函数;Controller::StartProcess /
PushFrame / LoadCalibrationTable 已核对)
- `all_functions_decomp_libcoresdk_arm64.so_00100000.txt`libcoresdk(arm64) 全量伪代码
(专业版/网络路径,CNetComm 命令层)
- `coresdk_arm64_defined.txt`ARM64 库符号表
## history/ — 过程记录(按时间)
`task_plan_20260714``findings_20260810` / `progress_20260810` / `handoff_20260810..13` /
`交接_完整逆向工程说明_20260811`PC SDK 全流程报告)→ `reverse_20260813_full` /
`progress_reverse`。历史参考,协议细节以 `magcx_official_flow.md` 为准。
## preview/ — 渲染验证截图
demo2_v3..v7 系列(管线复刻过程对照)、preview_*.png(安卓 UI 验证)。
## 与代码库的关系
- `csdk/src/`:依据 Linux SDK 逆向写出的 C 参考实现(渲染/温度/IR 会话/FFC 调度),
Kotlin 管线(android/app)与其逐字节差分验证一致。
- `android/app/src/main/java/com/mag160c/thermal/usb/IrSession.kt`:官方
UsbCommunication.java 的 Kotlin 等价实现(含小端命令、800ms 超时、0x84 标定下载)。
- `docs/android_app/HANDOFF_DEVELOPMENT.md` §4.2 指向本目录。