Add complete DWARFLAB protocol documentation

- Architecture overview, BLE and WebSocket protocols
- All 19 modules with command IDs validated against smali source
- BLE packet format with CRC-16/MODBUS pseudocode
- Complete WsCmd index (~300 commands)
- Connection flow with pseudocode examples
- Methodology section explaining APK decompilation process
This commit is contained in:
Jacquin Antoine
2026-06-13 00:21:19 +02:00
parent fe534ce77b
commit be87e8a4ca
14 changed files with 2373 additions and 0 deletions

View File

@ -0,0 +1,220 @@
# TaskCenter, Notify, Panorama & Schedule Commands
## TaskCenterProto — Module TASK_CENTER (ID=14, base 16400)
### ReqStartTask
| Field | # | Type | Description |
|-------|---|------|-------------|
| `clientParams` | 1 | ClientParams | Client parameters |
### ClientParams
| Field | # | Type | Description |
|-------|---|------|-------------|
| `cameraType` | 1 | int32 | Camera type |
| `shootingMode` | 2 | int32 | Shooting mode |
| `shootingTech` | 3 | int32 | Shooting technique |
### ReqStopTask — No fields
### ReqEnterCamera — No fields
### ReqSwitchShootingMode / ReqSwitchShootingTech
| Field | # | Type | Description |
|-------|---|------|-------------|
| `cameraType` | 1 | int32 | Camera type |
| `shootingMode` | 2 | int32 | Mode/technique |
### ReqGetDeviceStateInfo — No fields
### Responses
- **DeviceStateInfo**: state, progress, etc.
- **TaskState**: task state info
- **TaskAttr**: task attributes
### Command IDs
| ID | Command |
|----|---------|
| 16400 | GLOBAL_TASK_MANAGER_START_TASK |
| 16401 | GLOBAL_TASK_MANAGER_STOP_TASK |
| 16402 | GLOBAL_TASK_MANAGER_SWITCH_SHOOTING_MODE |
| 16403 | GLOBAL_TASK_MANAGER_SWITCH_SHOOTING_TECH |
| 16404 | GLOBAL_TASK_MANAGER_ENTER_CAMERA |
| 16405 | GLOBAL_TASK_GET_DEVICE_STATE_INFO |
| 16406 | GLOBAL_VOICE_ASSISTANT_TASK |
---
## NotifyProto — Module NOTIFY (ID=9, base 15200)
NotifyProto contains ~104 notification command types sent from device to app (type=2 in WsPacket). These are **asynchronous notifications** — the app registers handlers for specific cmd IDs.
### Notification Categories
| Category | Example Commands |
|----------|-----------------|
| Device State | AUTO_COOLING (15202), AUTO_SHUTDOWN (15203), LENS_DEFOG (15301), BATTERY_INFO, CHARGING_STATE, CPU_MODE (15227) |
| Camera | TELE_SET_PARAM (15213), WIDE_SET_PARAM (15214), BURST_PROGRESS (15218/15220), CMOS_TEMPERATURE (15292) |
| Astro | ASTRO_CALIBRATION (15210), ASTRO_GOTO (15211), ASTRO_TRACKING (15212), EQ_SOLVING (15239), CAPTURE_RAW_STATE (15206/15208) |
| Focus | FOCUS_POSITION (15257), ASTRO_AUTO_FOCUS_STATE (15278), NORMAL_AUTO_FOCUS_STATE (15279), AREA_AUTO_FOCUS_STATE (15281) |
| Motor/Track | TRACK_RESULT (15225), SENTRY_MODE_STATE (15231), UFO_MODE_STATE (15240) |
| Panorama | PANORAMA_PROGRESS (15219), PANORAMA_UPLOAD (15244-15246), PANORAMA_COMPRESS (15293/15294), PANO_FRAMING (15297-15299) |
| General Params | GENERAL_BOOL_PARAM (15266), GENERAL_INT_PARAM (15264), GENERAL_FLOAT_PARAM (15265) |
| Dark/Calib | STATE_CAPTURE_RAW_DARK (15206), STATE_CAPTURE_CALI_FRAME (15290), PROGRESS_CAPTURE_CALI_FRAME (15291) |
| Device Attitude | DEVICE_ATTITUDE (15295), SKY_TARGET_FINDER_STATE (15296) |
### Complete Notify Command List
| ID | Command |
|----|---------|
| 15200 | NOTIFY_TELE_WIDE_PICTURE_MATCHING |
| 15201 | NOTIFY_ELE |
| 15202 | NOTIFY_CHARGE |
| 15203 | NOTIFY_SDCARD_INFO |
| 15204 | NOTIFY_TELE_RECORD_TIME |
| 15205 | NOTIFY_TELE_TIMELAPSE_OUT_TIME |
| 15206 | NOTIFY_STATE_CAPTURE_RAW_DARK |
| 15207 | NOTIFY_PROGRASS_CAPTURE_RAW_DARK |
| 15208 | NOTIFY_STATE_CAPTURE_RAW_LIVE_STACKING |
| 15209 | NOTIFY_PROGRASS_CAPTURE_RAW_LIVE_STACKING |
| 15210 | NOTIFY_STATE_ASTRO_CALIBRATION |
| 15211 | NOTIFY_STATE_ASTRO_GOTO |
| 15212 | NOTIFY_STATE_ASTRO_TRACKING |
| 15213 | NOTIFY_TELE_SET_PARAM |
| 15214 | NOTIFY_WIDE_SET_PARAM |
| 15215 | NOTIFY_TELE_FUNCTION_STATE |
| 15216 | NOTIFY_WIDE_FUNCTION_STATE |
| 15217 | NOTIFY_SET_FEATURE_PARAM |
| 15218 | NOTIFY_TELE_BURST_PROGRESS |
| 15219 | NOTIFY_PANORAMA_PROGRESS |
| 15220 | NOTIFY_WIDE_BURST_PROGRESS |
| 15221 | NOTIFY_RGB_STATE |
| 15222 | NOTIFY_POWER_IND_STATE |
| 15223 | NOTIFY_WS_HOST_SLAVE_MODE |
| 15224 | NOTIFY_MTP_STATE |
| 15225 | NOTIFY_TRACK_RESULT |
| 15226 | NOTIFY_WIDE_TIMELAPSE_OUT_TIME |
| 15227 | NOTIFY_CPU_MODE |
| 15228 | NOTIFY_STATE_ASTRO_TRACKING_SPECIAL |
| 15229 | NOTIFY_POWER_OFF |
| 15230 | NOTIFY_ALBUM_UPDATE |
| 15231 | NOTIFY_SENTRY_MODE_STATE |
| 15232 | NOTIFY_SENTRY_MODE_TRACK_RESULT |
| 15233 | NOTIFY_STATE_ASTRO_ONE_CLICK_GOTO |
| 15234 | NOTIFY_STREAM_TYPE |
| 15235 | NOTIFY_WIDE_RECORD_TIME |
| 15236 | NOTIFY_STATE_WIDE_CAPTURE_RAW_LIVE_STACKING |
| 15237 | NOTIFY_PROGRASS_WIDE_CAPTURE_RAW_LIVE_STACKING |
| 15238 | NOTIFY_MULTI_TRACK_RESULT |
| 15239 | NOTIFY_EQ_SOLVING_STATE |
| 15240 | NOTIFY_UFO_MODE_STATE |
| 15241 | NOTIFY_TELE_LONG_EXP_PROGRESS |
| 15242 | NOTIFY_WIDE_LONG_EXP_PROGRESS |
| 15243 | NOTIFY_TEMPERATURE |
| 15244 | NOTIFY_PANORAMA_UPLOAD_COMPRESS_PROGRESS |
| 15245 | NOTIFY_PANORAMA_UPLOAD_UPLOAD_PROGRESS |
| 15246 | NOTIFY_PANORAMA_UPLOAD_COMPLETE |
| 15247 | NOTIFY_STATE_CAPTURE_WIDE_RAW_DARK |
| 15248 | NOTIFY_SHOOTING_SCHEDULE_RESULT_AND_STATE |
| 15249 | NOTIFY_SHOOTING_TASK_STATE |
| 15250 | NOTIFY_SKY_SEACHER_STATE |
| 15251 | NOTIFY_WIDE_MULTI_TRACK_RESULT |
| 15252 | NOTIFY_WIDE_TRACK_RESULT |
| 15253 | NOTIFY_STATE_AI_ENHANCE |
| 15254 | NOTIFY_PROGRESS_AI_ENHANCE |
| 15255 | NOTIFY_WAIT_SHOOTING_PROGRESS |
| 15256 | NOTIFY_CALIBRATION_RESULT |
| 15257 | NOTIFY_FOCUS_POSITION |
| 15258 | NOTIFY_UFO_AUTO_HAND_MODE |
| 15259 | NOTIFY_CURRENT_PANORAMA_UPLOAD_STATE |
| 15260 | NOTIFY_LOW_TEMP_PROTECTION_MODE |
| 15261 | NOTIFY_EXCLUSIVE_SYSTEM_IO_TASK_STATE |
| 15262 | NOTIFY_BODY_STATUS |
| 15263 | NOTIFY_PROGRESS_CAPTURE_MOSAIC |
| 15264 | NOTIFY_GENERAL_INT_PARAM |
| 15265 | NOTIFY_GENERAL_FLOAT_PARAM |
| 15266 | NOTIFY_GENERAL_BOOL_PARAM |
| 15267 | NOTIFY_SWITCH_SHOOTING_MODE |
| 15268 | NOTIFY_TELE_SWITCH_CROP_RATIO |
| 15269 | NOTIFY_TELE_SHOOTING_TECH_STATE |
| 15270 | NOTIFY_WB |
| 15271 | NOTIFY_WIDE_SHOOTING_TECH_STATE |
| 15272 | NOTIFY_RESOLUTION_PARAM |
| 15273 | NOTIFY_PHOTO_STATE |
| 15274 | NOTIFY_BURST_STATE |
| 15275 | NOTIFY_RECORD_STATE |
| 15276 | NOTIFY_TIMELAPSE_STATE |
| 15277 | NOTIFY_PANORAMA_STATE |
| 15278 | NOTIFY_ASTRO_AUTO_FOCUS_STATE |
| 15279 | NOTIFY_NORMAL_AUTO_FOCUS_STATE |
| 15280 | NOTIFY_ASTRO_AUTO_FOCUS_FAST_STATE |
| 15281 | NOTIFY_AREA_AUTO_FOCUS_STATE |
| 15282 | NOTIFY_DUAL_CAMERA_LINKAGE_STATE |
| 15283 | NOTIFY_RESOLUTION_FPS_STATE |
| 15284 | NOTIFY_NORMAL_TRACK_STATE |
| 15285 | NOTIFY_BURST_PROGRESS |
| 15286 | NOTIFY_RECORD_TIME |
| 15287 | NOTIFY_TIMELAPSE_OUT_TIME |
| 15288 | NOTIFY_LONG_EXP_PROGRESS |
| 15289 | NOTIFY_SENTRY_MOTOR_STATE |
| 15290 | NOTIFY_STATE_CAPTURE_CALI_FRAME |
| 15291 | NOTIFY_PROGRESS_CAPTURE_CALI_FRAME |
| 15292 | NOTIFY_CMOS_TEMPERATURE |
| 15293 | NOTIFY_PANORAMA_COMPRESS_PROGRESS |
| 15294 | NOTIFY_PANORAMA_COMPRESS_COMPLETE |
| 15295 | NOTIFY_DEVICE_ATTITUDE |
| 15296 | NOTIFY_SKY_TARGET_FINDER_STATE |
| 15297 | NOTIFY_PANO_FRAMING_RECT_UPDATE |
| 15298 | NOTIFY_PANO_FRAMING_THUMBNAIL_UPDATE |
| 15299 | NOTIFY_PANO_FRAMING_STATE |
| 15300 | NOTIFY_WIDE_FOCUS_POSITION |
| 15301 | NOTIFY_LENS_DEFOG_STATE |
| 15302 | NOTIFY_AUTO_COOLING_STATE |
| 15303 | NOTIFY_AUTO_SHUTDOWN_STATE |
---
## PanoramaProto — Module PANORAMA (ID=10, base 15500)
### Command IDs
| ID | Command |
|----|---------|
| 15500 | PANORAMA_START_GRID |
| 15501 | PANORAMA_STOP |
| 15503 | PANORAMA_START_STITCH_UPLOAD |
| 15504 | PANORAMA_STOP_STITCH_UPLOAD |
| 15505 | PANORAMA_GET_CURRENT_UPLOAD_STATE |
| 15506 | PANORAMA_GET_UPLOAD_PREDICT |
| 15507 | PANORAMA_START_COMPRESS |
| 15508 | PANORAMA_STOP_COMPRESS |
| 15509 | PANORAMA_START_FRAMING |
| 15510 | PANORAMA_STOP_FRAMING |
| 15511 | PANORAMA_RESET_FRAMING |
| 15512 | PANORAMA_UPDATE_FRAMING_RECT |
| 15513 | PANORAMA_STOP_FRAMEING_AND_START_GRID |
> **Note**: ID 15502 is not assigned. `PANORAMA_STOP` is 15501 (not "START_FRAMEING" as previously documented).
---
## ScheduleProto — Module SHOOTING_SCHEDULE (ID=13, base 16100)
### Command IDs
| ID | Command |
|----|---------|
| 16100 | SYNC_SHOOTING_SCHEDULE |
| 16101 | CANCEL_SHOOTING_SCHEDULE |
| 16102 | GET_ALL_SHOOTING_SCHEDULE |
| 16103 | GET_SHOOTING_SCHEDULE_BY_ID |
| 16105 | REPLACE_SHOOTING_SCHEDULE |
| 16106 | UNLOCK_SHOOTING_SCHEDULE |
| 16107 | LOCK_SHOOTING_SCHEDULE |
| 16108 | DELETE_SHOOTING_SCHEDULE |
> **Note**: ID 16104 is not assigned.