Safe testing

Capture, verify, restore

Change one reversible setting at a time. Record the old value, check the result, then restore it.

Before any write

Protect the hardware

Do not test unknown setters. Use the typed developer CLI for one reversible change at a time.

Stop immediately Stop if the device, power state, response, readback, or saved value becomes unclear.
  1. Record the current value, target value, expected result, and restore value. Use a separate capture for each setting or power state.
  2. Confirm the model, VID/PID, BIOS, EC, MCU, HID usage, and feature-report length. Record a safely unreadable version as unavailable rather than guessing. A display name is not enough.
  3. Close unrelated activity and set the required AC, battery, USB-C, HDR, or display state.
  4. Run USBPcapCMD in its own console process group and stop it with a targeted CTRL_BREAK_EVENT. Never broadcast a console control event to process-group ID 0.
  5. Change one setting and mark the action in the capture. Do not open other pages in the vendor app while recording.
  6. Confirm the new state, restore the saved value, and confirm it again before ending the session.
  7. Compare the smallest useful packet window. Keep the model, action, bounded payload, response shape, and evidence checks. Remove serials, paths, session data, and unrelated packets.
  8. Use a typed command that names the action, saves the old value, asks for confirmation, applies and checks one value, then restores it.
  9. Add support only after decoder tests, negative tests, application, confirmation, and restoration pass. Never expose raw class, ID, or payload inputs.

Capture matrix

EvidenceRequired questionPass condition
Setter deltaWhich request changed when one UI value changed?The change repeats in another capture and is absent from a no-op window.
ResponseDid firmware acknowledge the same transaction and payload contract?The envelope, status, checksum, class, ID, length, and payload all pass validation.
GetterCan firmware independently report the effect?Known states decode to different values. Otherwise, document setter-only or generic readback.
ApplicationDid the physical behavior change as intended?What happened on the laptop matches the typed target.
RestorationCan the exact prior state be recovered?The restore command succeeds, and readback or observation matches the saved state.
Negative casesWhat must be rejected?A wrong PID, model, or interface fails closed. So do malformed responses, invalid values, unsupported combinations, and cancellation.

Decoding rules

From capture to production

Move on only after the current stage passes.

  1. Decode a private capture from a sanitized byte window while no device handle is open.
  2. Add a typed read-only query with an exact response contract. Reject unknown statuses, lengths, selectors, reserved bytes, and values.
  3. Repeat the same vendor UI state and prove the candidate setter is absent or stable when nothing changes.
  4. Save the prior state, require confirmation for the exact target, apply one admitted value, read or observe it, then restore it.
  5. Link the sanitized fixture and validation result to reviewed source before production use. Expose only the named capability.

Response evidence record

Add this record to the core change. Keep raw captures and local logs private.

Model / VID:PID:
BIOS / EC / MCU:
HID usage page / usage / feature-report length:
Question and single UI action:
Power source and required preconditions:
Request class/ID and sanitized payload shape:
Expected status, class/ID, payload length and response shape:
Unknown or malformed values rejected:
Independent getter, generic readback, or one-shot-only:
Saved prior state and restoration result:
Negative controls and repeat count:
Core tests and sanitized fixture paths:
Remaining inference or unsupported variants:

Private evidence handling

Keep private

PCAP files, HID paths, serials, transaction streams, user or machine names, local paths, diagnostic exports, screenshots with account data, and unreviewed payload collections.

Publish after review

Model and observed BIOS, EC, and MCU versions, usage and report length, action name, class/ID, bounded payload shape, accepted response, readback limits, tests, and restoration result.

Stop conditions

Review checklist

[ ] Exact model, VID/PID, BIOS, EC, MCU and HID interface documented
[ ] One action per capture and a no-op comparison available
[ ] Prior state saved and restoration verified
[ ] Request and response envelope validation implemented
[ ] Payload bounds and enum/value validation implemented
[ ] Timeout, cancellation and malformed-response tests included
[ ] Fixture contains no serial, HID path, user path or raw PCAP
[ ] Capability remains hidden when evidence is absent
[ ] No raw-command IPC or production CLI option introduced