Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,9 @@
"140": "SET_ADVERTISING_NAME", "141": "GET_ADVERTISING_NAME",
"142": "START_FIRMWARE_LOAD_NEW", "143": "LOAD_FIRMWARE_DATA_NEW",
"144": "PROCESS_FIRMWARE_IMAGE_NEW", "145": "GET_HELLO", "151": "GET_BATTERY_PACK_INFO",
"153": "TOGGLE_PERSISTENT_R20", "154": "TOGGLE_PERSISTENT_R21"},
"153": "TOGGLE_PERSISTENT_R20", "154": "TOGGLE_PERSISTENT_R21",
"155": "START_CERTIFICATE_TRANSFER", "156": "LOAD_CERTIFICATE", "157": "VERIFY_CERTIFICATE",
"158": "PROCESS_CERTIFICATE", "159": "LOCK_DEVICE"},
"CommandResult": {"0": "FAILURE", "1": "SUCCESS", "2": "PENDING", "3": "UNSUPPORTED"}
},
"envelope": [
Expand Down
7 changes: 7 additions & 0 deletions android/app/src/main/java/com/noop/protocol/Enums.kt
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,13 @@ object CommandNames {
151 to "GET_BATTERY_PACK_INFO",
153 to "TOGGLE_PERSISTENT_R20",
154 to "TOGGLE_PERSISTENT_R21",
// 155-159: certificate transfer and LOCK_DEVICE (official app 5.473.0, via wearable5.0). Named for
// log legibility only; all five are destructive and absent from the send allowlist.
155 to "START_CERTIFICATE_TRANSFER",
156 to "LOAD_CERTIFICATE",
157 to "VERIFY_CERTIFICATE",
158 to "PROCESS_CERTIFICATE",
159 to "LOCK_DEVICE",
)

/** `"NAME(raw)"` for a known opcode, else `"0xHH(raw)"` — byte-identical to Swift `Schema.enumName`. */
Expand Down
5 changes: 5 additions & 0 deletions docs/PROTOCOL_IMPLEMENTATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,11 @@ WHOOP 4 probe described below.
| 142 | `START_FIRMWARE_LOAD_NEW` | firmware write |
| 143 | `LOAD_FIRMWARE_DATA_NEW` | firmware write |
| 144 | `PROCESS_FIRMWARE_IMAGE_NEW` | firmware write |
| 155–158 | `START_CERTIFICATE_TRANSFER`, `LOAD_CERTIFICATE`, `VERIFY_CERTIFICATE`, `PROCESS_CERTIFICATE` | replaces the strap's device certificate |
| 159 | `LOCK_DEVICE` | locks the strap; effect and reversal unknown |

155–159 are named in the official app 5.473.0 (found via [wearable5.0](https://github.com/LeonardSEO/wearable5.0));
they are in the schema for log legibility only and absent from the send allowlist on both platforms.

The 142–144 family is the high-opcode-space counterpart of 36/37/38, in the same style as the clock
family answering at 145–147 on MAVERICK. It is named by the schema and absent from the sender enum on
Expand Down