Goal
Turn the physically proven SM-R510 SppNew RFCOMM stream into a safe, independently implemented, read-only GalaxyBridge decoder without sending any Buds commands.
Accepted baseline
Physical owner evidence for GB-M0-R4-R1B is accepted.
- Branch:
feature/gb-m0-feasibility
- Baseline HEAD:
53bb959ba12fa44444ccd8b045e37ccd87ebd317
- Target: Galaxy Buds2 Pro / SM-R510
- RFCOMM UUID:
2e73a4ad-332d-41fc-90e2-16bef06523f2
- SDP-resolved RFCOMM channel observed:
27
- Connection established in ~1.6–1.9 s
- Stable for ~60 s
- 3363 bytes received
- commands sent:
0
- iPhone audio remained OK; no Watch audio takeover; audio remained OK after disconnect
Architecture candidate accepted for Buds M0: WATCH_RFCOMM_BRIDGE.
Offline evidence finding
The recoverable portion of the R1B raw stream contains multiple complete modern SPP frames. Independent offline parsing found complete frames with valid framing/CRC, including:
0x61 EXTENDED_STATUS_UPDATED
0xC2 SPATIAL_AUDIO_DATA
0x63 VERSION_INFO
0x41 METERING_REPORT
0x47 USAGE_REPORT_V2
- diagnostic/debug families
The first 0x61 frame is sufficient to justify a minimum read-only status decoder candidate. Do not add a status request unless unsolicited status proves insufficient.
Privacy gate
The captured stream also contains a serial-number-bearing message. Raw captures therefore contain private device identifiers.
Requirements:
- raw capture stays local/private by default
- do not commit raw capture or serial-bearing payloads
- do not upload raw private capture to public GitHub
- shared/exported summaries must redact serial/device identifiers
Implementation
- Implement an independent streaming decoder for modern SPP frames:
- SOM
0xFD
- 2-byte little-endian header
- size bounds
- request/response + fragment metadata
- message ID
- payload
- CRC16-CCITT validation
- EOM
0xDD
- arbitrary RFCOMM chunk boundaries / multiple frames per read
- malformed/truncated frame recovery with strict bounds
- Add frame summaries: timestamp/offset, ID, size, CRC validity, redacted type name when known.
- Decode minimum
0x61 EXTENDED_STATUS_UPDATED read-only fields needed for M0, beginning with revision, L/R battery, placement/coupling and noise-control mode. Clearly label uncertain/unsupported fields.
- Add durable binary capture to app-private/local test storage so evidence is not truncated by Logcat. Bound each M0 session (e.g. 64 KiB) and never auto-upload it.
- Produce a redacted share/export summary that never emits serial-bearing payloads.
- Use synthetic/sanitized test vectors in repository tests. Do not commit the owner's raw capture.
Hard safety constraints
- RFCOMM writes remain exactly zero.
- No status query yet.
- No ANC/control writes.
- No FOTA/reset/debug/unknown writes.
- No alternate UUID probing needed in this task.
- No GPL/AGPL implementation copying; external projects are protocol/reference evidence only unless source is permissively licensed and attribution is preserved.
Physical validation
On real Watch6 + SM-R510 with iPhone audio active:
- connect exactly once to
SppNew
- capture <= 90 s read-only
- decoder reports frames with CRC statistics
0x61 status appears and is decoded if received
- iPhone audio remains uninterrupted
- commands sent remains 0
Evidence bundle
Create a PM ZIP after the run containing redacted summary, parser/test output, screenshots, commit patch/diff, build results and SHA256 manifest. Do not include the private raw serial-bearing binary by default; report its local path + hash only.
Acceptance
Maximum initial status: PARTIAL — READ_ONLY_DECODE_VERIFIED until PM reviews parser implementation and physical evidence.
Keep PR #3 draft/unmerged. Do not start Buds controls or head tracking.
Goal
Turn the physically proven SM-R510
SppNewRFCOMM stream into a safe, independently implemented, read-only GalaxyBridge decoder without sending any Buds commands.Accepted baseline
Physical owner evidence for
GB-M0-R4-R1Bis accepted.feature/gb-m0-feasibility53bb959ba12fa44444ccd8b045e37ccd87ebd3172e73a4ad-332d-41fc-90e2-16bef06523f2270Architecture candidate accepted for Buds M0:
WATCH_RFCOMM_BRIDGE.Offline evidence finding
The recoverable portion of the R1B raw stream contains multiple complete modern SPP frames. Independent offline parsing found complete frames with valid framing/CRC, including:
0x61 EXTENDED_STATUS_UPDATED0xC2 SPATIAL_AUDIO_DATA0x63 VERSION_INFO0x41 METERING_REPORT0x47 USAGE_REPORT_V2The first
0x61frame is sufficient to justify a minimum read-only status decoder candidate. Do not add a status request unless unsolicited status proves insufficient.Privacy gate
The captured stream also contains a serial-number-bearing message. Raw captures therefore contain private device identifiers.
Requirements:
Implementation
0xFD0xDD0x61 EXTENDED_STATUS_UPDATEDread-only fields needed for M0, beginning with revision, L/R battery, placement/coupling and noise-control mode. Clearly label uncertain/unsupported fields.Hard safety constraints
Physical validation
On real Watch6 + SM-R510 with iPhone audio active:
SppNew0x61status appears and is decoded if receivedEvidence bundle
Create a PM ZIP after the run containing redacted summary, parser/test output, screenshots, commit patch/diff, build results and SHA256 manifest. Do not include the private raw serial-bearing binary by default; report its local path + hash only.
Acceptance
Maximum initial status:
PARTIAL — READ_ONLY_DECODE_VERIFIEDuntil PM reviews parser implementation and physical evidence.Keep PR #3 draft/unmerged. Do not start Buds controls or head tracking.