Skip to content

Commit 1820dcc

Browse files
committed
feat: add support for custom volume curves and GitHub build attestation
1 parent a0849c6 commit 1820dcc

3 files changed

Lines changed: 37 additions & 29 deletions

File tree

CHANGELOG.md

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,33 @@ level the commit history supports; from `v0.1.6` onward, entries are written as
1616

1717
## [Unreleased]
1818

19+
### Added
20+
21+
- **The `wm1a` and `w1` volume curves work from a table you bring.** *Launcher sandbox and host
22+
checks; device-unverified.* Put Sony's `ov_127x.tbl` (or `ov_1280.tbl`) at the top of the drive,
23+
or have Wampy installed, which already keeps the same files on the player. The installer takes a
24+
copy only if its SHA-256 is exactly Sony's, re-checks it after copying it into `/system`, and
25+
says in the install log which file it used or why it refused one. The setuid helper now looks in
26+
Sony's directory and then Cinder's, and reads nothing else. Uninstall removes Cinder's copy.
27+
`install.md`*The volume curve tables* says where to get them and why Cinder cannot include
28+
them: they are Sony's files, and Cinder's MIT licence cannot cover them. The v0.3.4 installer
29+
does not do this; on v0.3.4, `wm1a` and `w1` still need the table already in Sony's directory.
30+
- **Release downloads carry a GitHub build attestation.** *Workflow change; runs for the first time
31+
on the next tag.* `gh attestation verify <file> -R superwilso/Cinder` shows each installer and
32+
`.UPG` was built by this repository's release workflow from the tagged commit. The release notes
33+
and `SECURITY.md` explain how to check (`docs/SHORTCOMINGS.md` D7).
34+
35+
### Security and privacy
36+
37+
- **`SECURITY.md` said Cinder ships twelve setuid-root helpers. It ships eight**, and the list left
38+
out `cinder-battery`. It also still described the installer as driving Sony's updater, which it no
39+
longer does. `docs/SHORTCOMINGS.md` repeated the same wrong count.
40+
- **Two real Bluetooth addresses were still in the tree** after the 2026-08-24 redaction: 84 times
41+
inside the committed HCI capture, and in the retry-mode measurement quoted in `main.cpp`, the
42+
host harness and the 2026-08-26 Bluetooth audit. Both now use the documentation range, and the
43+
capture is `hci_reconnect_20260819_redacted.btsnoop`. The original capture is added to
44+
`tools/rewrite_history.sh`; the addresses stay in older commits until that rewrite is pushed.
45+
1946
## [0.3.4] — 2026-09-13
2047

2148
### Fixed
@@ -109,10 +136,11 @@ level the commit history supports; from `v0.1.6` onward, entries are written as
109136
confirm. The claim came from a reference device an earlier session had copied the files onto.
110137
Once they were gone, every boot logged `volume curve: cinder-voltable wm1a FAILED — stock curve
111138
stays` — to logcat, where nobody would see it — and the player quietly kept the stock curve.
112-
Cinder cannot ship Sony's files, so the two choices now work from a table the user brings (see
113-
Added) and say so when there is none: the install log warns, and at boot `cinderhome.log` says
114-
`volume curve: 'wm1a' needs Sony's ov_127x.tbl, which this player's firmware does not include and
115-
no install has supplied — stock curve stays` instead of a bare FAILED in logcat.
139+
Cinder does not ship Sony's files, so on a stock player those two choices still do nothing — but
140+
now visibly. The installer's description says so; the install log warns when the chosen table is
141+
missing; and at boot `cinderhome.log` says `volume curve: 'wm1a' needs …/ov_127x.tbl, which is not
142+
part of the stock firmware and is not on this player — stock curve stays` instead of a bare
143+
FAILED in logcat.
116144

117145
- **Withdrawn: "there is no EU volume cap".** `analysis/RE_volume_tables.md` (2026-09-04) compared
118146
the two region tables by sweeping the codec's analogue attenuator and found identical curves.
@@ -153,29 +181,6 @@ level the commit history supports; from `v0.1.6` onward, entries are written as
153181
and SensMe. The README and the installer no longer call the `signature` component the whole of
154182
Walkman One's sound signature: it reproduces the plus modes, and the external tunings are another
155183
model's firmware.
156-
- **The `wm1a` and `w1` volume curves work from a table you bring.** *Launcher sandbox and host
157-
checks; device-unverified.* Put Sony's `ov_127x.tbl` (or `ov_1280.tbl`) at the top of the drive,
158-
or have Wampy installed, which already keeps the same files on the player. The installer takes a
159-
copy only if its SHA-256 is exactly Sony's, re-checks it after copying it into `/system`, and
160-
says in the install log which file it used or why it refused one. The setuid helper now looks in
161-
Sony's directory and then Cinder's, and reads nothing else. Uninstall removes Cinder's copy.
162-
`install.md`*The volume curve tables* says where to get them and why Cinder cannot include
163-
them: they are Sony's files, and Cinder's MIT licence cannot cover them.
164-
- **Release downloads carry a GitHub build attestation.** *Workflow change; runs for the first time
165-
on the next tag.* `gh attestation verify <file> -R superwilso/Cinder` shows each installer and
166-
`.UPG` was built by this repository's release workflow from the tagged commit. The release notes
167-
and `SECURITY.md` explain how to check (`docs/SHORTCOMINGS.md` D7).
168-
169-
### Security and privacy
170-
171-
- **`SECURITY.md` said Cinder ships twelve setuid-root helpers. It ships eight**, and the list left
172-
out `cinder-battery`. It also still described the installer as driving Sony's updater, which it no
173-
longer does. `docs/SHORTCOMINGS.md` repeated the same wrong count.
174-
- **Two real Bluetooth addresses were still in the tree** after the 2026-08-24 redaction: 84 times
175-
inside the committed HCI capture, and in the retry-mode measurement quoted in `main.cpp`, the
176-
host harness and the 2026-08-26 Bluetooth audit. Both now use the documentation range, and the
177-
capture is `hci_reconnect_20260819_redacted.btsnoop`. The original capture is added to
178-
`tools/rewrite_history.sh`; the addresses stay in older commits until that rewrite is pushed.
179184

180185
## [0.3.3] — 2026-09-12
181186

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,8 @@ repository:
380380
Three settings changed the signal: regions CEW2 and KR3, which load Sony's quieter volume table,
381381
and gain mode 1. The plus modes, the sound signatures and DAC mode measured the same as stock.
382382
- **Can Cinder do the same without flashing?** The plus modes, yes — the
383-
[`signature` component](install.md#the-sound-signature). The NW-WM1A's volume curve, yes, once you
384-
bring the table: it is not part of the NW-A50's firmware and Cinder cannot include Sony's files,
383+
[`signature` component](install.md#the-sound-signature). The NW-WM1A's volume curve, yes, from the release
384+
after v0.3.4 and once you bring the table: it is not part of the NW-A50's firmware and Cinder cannot include Sony's files,
385385
so the installer uses a copy you put on the player's drive, or the one Wampy already installed,
386386
and only if it is byte-for-byte Sony's — see
387387
[The volume curve tables](install.md#the-volume-curve-tables). The external tunings, no.

install.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,9 @@ The `voltable` choice picks the table that maps each volume step to the headphon
256256
`stock` is the one your player already uses. `wm1a` and `w1` are Sony's curves from other models,
257257
and **their files are not part of the NW-A50's firmware** — so for those two, you bring the table.
258258

259+
> **Needs the release after v0.3.4.** The v0.3.4 installer does not look for your copy; with it,
260+
> `wm1a` and `w1` still leave the stock curve in place and say so in the log.
261+
259262
| choice | file you need | SHA-256 the installer checks |
260263
|---|---|---|
261264
| `wm1a` | `ov_127x.tbl` (and `ov_dsd_127x.tbl` for DSD) | `b5dd878b0484c43312f3a93c6675d40d546f78ef7494684991eea0aef8651320` (DSD: `b777b7e2786f952797e82830d5d17565d03a4758555436a376bf6daff5e50ac7`) |

0 commit comments

Comments
 (0)