56 lines
3.6 KiB
Markdown
56 lines
3.6 KiB
Markdown
# analysis/ — MAG160C 逆向工程总目录
|
||
|
||
> 本目录汇总了 MAG160C 相关的**全部逆向工程材料**,覆盖三条产品线:
|
||
> ① Linux SDK(libmagcore.so)② Windows SDK(CoreSDKLib.dll / ThermalSDK.dll)
|
||
> ③ 官方安卓 App(MAG-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/CoreSDKLib,2026-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 SDK(libmagcore.so.2.1.1,x86-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 SDK(CoreSDKLib.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.so,1290 函数;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 指向本目录。
|