Repository navigation
Add sanitized M1 AirPods evidence from two capture runs - #4
Merged
mstampfli merged 1 commit intoOct 23, 2026
Merged
Conversation
Signed-off-by: Davide Berweger Gaillard <davide@davideb.ch>
mstampfli
added a commit
that referenced
this pull request
Oct 23, 2026
…ecords rather than quote them PR #4 preserved two sanitized capture records under evidence/, and only the first of the two runs was in the documents. The second one answers a question this project had been asking out loud: it spans a reconnection, so a capture "across a connection setup" on a Broadcom Mac now exists, and it still holds no 0xFE50. ulla.md section 8 records it with its own limits: the Connection Complete it contains, the inventory with 0xFD4E in place of 0xFDC1, 0xFD02's five parameter bytes and first byte 0x00 arriving 10.7 seconds after the connection, the nearest 0xFD4B 142 ms before it, the six BandSwitchManager messages that are all configuration, and no ULLA message of any kind. What the reconnection does not settle is now said plainly instead of being left to the old "the decisive capture is one spanning connection setup": what is untested on that host is a first connection after a controller reset or a fresh pairing, and a provoked band switch, and the N1 host has never been captured over HCI at all. README and testing.md asked contributors for the capture that has now been taken, so both now ask for the ones that have not. Three copies of one superseded sentence are gone. README and testing.md still said the capture holds "none of the eighteen vendor opcodes this project documents", which ulla.md itself calls the wrong table to ask, and which is false as written because 0xFD02 is mapped here and is in both runs. All of them now enumerate what is actually absent: 0xFE50, the session commands of 6.6, the feature-bit commands of 5.8, the band commands of 6.1. testing.md also still counted thirty-four groups of claims; there are thirty-five. tests/test_evidence.py makes the records data the suite reads rather than prose it trusts. Each summary has to add up to its own totals, each run's phases have to account for every synchronous record in its file, each run's record count has to appear in a document, and the union of the opcodes the captures contain has to be exactly what 6.8 accounts for as present or absent, so an opcode in a new capture cannot be filed without being looked up in the firmware. Five mutations of those inputs were shown red first, one of them the whole reason the check exists: 0xFD4E dropped from the table. Signed-off-by: mstampfli <marc.kurt.stampfli@icloud.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Preserves the two M1/Broadcom AirPods capture runs reported in #3 under
evidence/, with an index, a short report and a sanitized JSON summary for each run:The records include setup versions, raw-source hashes, record/opcode counts, selected
0xFD02fields and responses,0xFD4Btiming, synchronized log observations and interpretation limits. They distinguish observed bytes from unverified Broadcom/H2 command semantics, and document capture errors and the transient microphone change during reconnection.Adds a README entry and ignores local
captures/and.pklgfiles. Raw traces, system logs, device addresses, keys, voice recordings and firmware are excluded. No analyzer or runtime implementation changes are included. The raw files remain private, so public readers cannot reproduce their extraction from the summaries alone.Validation:
git diff --checkpasses. Runtime tests were not run because this changes documentation and recorded data only.Refs #3; the issue remains open.