- 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
207 lines
5.7 KiB
Markdown
207 lines
5.7 KiB
Markdown
# System, Param, ITips & VoiceAssistant Commands
|
|
|
|
## SystemProto — Module SYSTEM (ID=4, base 13000)
|
|
|
|
### ReqSetTime
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `timestamp` | 1 | int64 | Unix timestamp |
|
|
| `timezoneOffset` | 2 | double | Timezone offset (hours) |
|
|
|
|
### ReqSetTimezone
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `timezone` | 1 | string | Timezone (e.g. "Europe/Paris") |
|
|
|
|
### ReqSetMtpMode / ReqSetCpuMode
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `mode` | 1 | int32 | Mode value |
|
|
|
|
### ReqsetMasterLock
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `lock` | 1 | bool | Lock state |
|
|
|
|
### ReqSetLocation
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `latitude` | 1 | double | Latitude |
|
|
| `longitude` | 2 | double | Longitude |
|
|
| `altitude` | 3 | double | Altitude |
|
|
| `countryRegion` | 4 | string | Country/region |
|
|
| `province` | 5 | string | Province |
|
|
| `city` | 6 | string | City |
|
|
| `district` | 7 | string | District |
|
|
| `enable` | 8 | bool | Enabled |
|
|
|
|
### ReqGetDeviceActivateInfo / ReqDeviceActivateWriteFile / ReqDeviceActivateSuccessfull / ReqDisableDeviceActivate
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `issuer` | 1 | int32 | (GetDeviceActivateInfo only) |
|
|
| `requestParam` | 1 | string | (others) |
|
|
|
|
### Command IDs
|
|
|
|
| ID | Command |
|
|
|----|---------|
|
|
| 13000 | SET_TIME |
|
|
| 13001 | SET_TIME_ZONE |
|
|
| 13002 | SET_MTP_MODE |
|
|
| 13003 | SET_CPU_MODE |
|
|
| 13004 | SET_MASTER |
|
|
| 13005 | GET_DEVICE_ACTIVATE_INFO |
|
|
| 13006 | DEVICE_ACTIVATE_WRITE_FILE |
|
|
| 13007 | DEVICE_ACTIVATE_NOTIFY_ACTIVATE_SUCCESSFULL |
|
|
| 13008 | FACTORY_TEST_UN_ACTIVATE |
|
|
| 13009 | SET_LOW_TEMP_PROTECTION_MODE |
|
|
| 13010 | SET_LOCATION |
|
|
|
|
---
|
|
|
|
## ParamProto — Module PARAM (ID=15, base 16700)
|
|
|
|
### ReqSetAutoParam
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `cameraType` | 1 | int32 | Camera type |
|
|
| `shootingTech` | 2 | int32 | Shooting technique |
|
|
| `isAuto` | 3 | bool | Auto mode |
|
|
|
|
### ReqSetExposure / ReqSetGain / ReqSetWb
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `paramId` | 1 | int64 | Parameter ID |
|
|
| `mode` | 2 | int32 | Mode |
|
|
| `value` | 3 | int32 | Value |
|
|
|
|
### ReqSetGeneralBoolParams
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `paramId` | 1 | int64 | Parameter ID |
|
|
| `value` | 2 | bool | Boolean value |
|
|
|
|
### ReqSetGeneralIntParam
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `paramId` | 1 | int64 | Parameter ID |
|
|
| `value` | 2 | int32 | Integer value |
|
|
|
|
### ReqSetGeneralFloatParam
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `paramId` | 1 | int64 | Parameter ID |
|
|
| `value` | 2 | float | Float value |
|
|
|
|
### ResSetAutoParam
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `shootingMode` | 1 | int32 | Shooting mode |
|
|
| `cameraType` | 2 | int32 | Camera type |
|
|
| `shootingTech` | 3 | int32 | Technique |
|
|
| `isAuto` | 4 | bool | Auto enabled |
|
|
| `updateAll` | 5 | bool | Update all |
|
|
| `code` | 6 | int32 | Status code |
|
|
|
|
### Command IDs
|
|
|
|
| ID | Command |
|
|
|----|---------|
|
|
| 16700 | PARAM_SET_EXPOSURE |
|
|
| 16701 | PARAM_SET_GAIN |
|
|
| 16702 | PARAM_SET_WB |
|
|
| 16703 | PARAM_SET_GENERAL_BOOL_PARAMS |
|
|
| 16704 | PARAM_SET_GENERAL_INT_PARAM |
|
|
| 16705 | PARAM_SET_GENERAL_FLOAT_PARAM |
|
|
| 16706 | PARAM_SET_AUTO_PARAMS |
|
|
|
|
---
|
|
|
|
## ITipsProto — Module ITIPS (ID=11, base 15700)
|
|
|
|
### ReqITipsGet
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `mode` | 1 | int32 | Mode |
|
|
|
|
### ResITipsGet
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `mode` | 1 | int32 | Mode |
|
|
| `itipsCode` | 2 | string | Tip code |
|
|
| `code` | 3 | int32 | Status code |
|
|
|
|
### Command IDs
|
|
|
|
| ID | Command |
|
|
|----|---------|
|
|
| 15700 | ITIPS_GET |
|
|
|
|
---
|
|
|
|
## VoiceAssistantProto — Module VOICE_ASSISTANT (ID=16, base 16800)
|
|
|
|
### ReqVoiceCommand
|
|
|
|
| Field | # | Type | Description |
|
|
|-------|---|------|-------------|
|
|
| `commandType` | 1 | int32 | Voice command type (see enum) |
|
|
| `shootingMode` | 2 | int32 | Shooting mode |
|
|
| `params` | 14 | oneof | Specific parameters |
|
|
|
|
### VoiceCommandType Enum
|
|
|
|
| Value | Name | Description |
|
|
|-------|------|-------------|
|
|
| 0 | VOICE_CMD_UNKNOWN | Unknown |
|
|
| 1 | VOICE_CMD_TAKE_PHOTO | Take photo |
|
|
| 2 | VOICE_CMD_START_RECORD | Start recording |
|
|
| 3 | VOICE_CMD_STOP_RECORD | Stop recording |
|
|
| 4 | VOICE_CMD_START_BURST | Start burst |
|
|
| 5 | VOICE_CMD_STOP_BURST | Stop burst |
|
|
| 6 | VOICE_CMD_START_TIMELAPSE | Start timelapse |
|
|
| 7 | VOICE_CMD_STOP_TIMELAPSE | Stop timelapse |
|
|
| 8 | VOICE_CMD_START_ASTRO | Start astro |
|
|
| 9 | VOICE_CMD_STOP_ASTRO | Stop astro |
|
|
| 10 | VOICE_CMD_GOTO_TARGET | Goto target |
|
|
| 11 | VOICE_CMD_AUTO_FOCUS | Autofocus |
|
|
| 12 | VOICE_CMD_STOP_FOCUS | Stop focus |
|
|
| 13 | VOICE_CMD_START_SENTRY | Start sentry |
|
|
| 14 | VOICE_CMD_STOP_SENTRY | Stop sentry |
|
|
| 15 | VOICE_CMD_CALIBRATION | Calibrate |
|
|
| 16 | VOICE_CMD_MOVE | Move |
|
|
| 17 | VOICE_CMD_GET_STATUS | Get status |
|
|
| 18 | VOICE_CMD_STOP_ALL | Stop all |
|
|
|
|
### Voice Parameter Messages
|
|
|
|
- **VoiceGotoParams**: `targetName`, `ra`, `dec`, `index`, `lon`, `lat`, `shootingMode`
|
|
- **VoiceAstroParams**: `targetName`, `ra`, `dec`, `index`, `lon`, `lat`, `autoGoto`, `forceStart`
|
|
- **VoiceBurstParams**: `cameraType`, `count`
|
|
- **VoicePhotoParams**: `cameraType`
|
|
- **VoiceRecordParams**: `cameraType`, `durationSeconds`
|
|
- **VoiceTimelapseParams**: `cameraType`, `intervalSeconds`, `durationSeconds`
|
|
- **VoiceFocusParams**: `isInfinity`
|
|
- **VoiceCalibrationParams**: `lon`, `lat`
|
|
- **VoiceMoveParams**: `azimuthAngle`, `altitudeAngle`, `speed`
|
|
- **VoiceSentryParams**: `type`
|
|
|
|
### Command IDs
|
|
|
|
| ID | Command |
|
|
|----|---------|
|
|
| 16800 | VOICE_ASSISTANT_TASK | |