Skip to content

Automatic Builds Workflow#6

Open
ryan-specter wants to merge 17 commits into
SeanathanVT:mainfrom
ryan-specter:main
Open

Automatic Builds Workflow#6
ryan-specter wants to merge 17 commits into
SeanathanVT:mainfrom
ryan-specter:main

Conversation

@ryan-specter
Copy link
Copy Markdown

Implemented automatic rom.zip patching > GitHub release workflow

Creates a rom.zip release for each compatible firmware version hosted at https://github.com/y1-community/y1-stock-rom with the patches from the latest koensayr commit applied.

ryan-specter and others added 17 commits May 22, 2026 23:20
### Fixed
- Broader head-unit coverage for live metadata. Continuous notifications across track, play-state, position, and repeat/shuffle edges; head units detect each new track even when titles repeat; clean subscription state on every fresh connection.
- Metadata + play / pause indicators now work on the broad class of head units and speakers that strictly require their AVRCP transaction IDs be echoed back. Previously, those head units silently rejected every response Y1 sent and fell back to key-press-only mode — metadata panes stayed blank and play-state indicators drifted out of sync.
- Head units that gate metadata on AVRCP browse capability now enter full metadata mode. Restored the public-browse-group SDP attribute that some head units use as a "this peer supports full AVRCP" discriminator.
- Metadata no longer freezes on head units that close the audio stream between tracks. The AVRCP control channel now survives audio open/close cycles, so the metadata view stays in sync without re-handshaking after every skip.
- Head-unit play / pause glyphs flip reliably after a head-unit-initiated PAUSE. The music-player Activity was seeding a PLAYING announcement immediately after its own startup-reset PAUSE, racing out to the AVRCP wire as PAUSED → PLAYING; head units saw the trailing PLAYING and refused to flip.
- Discrete PAUSE on head units with separate Play and Pause buttons pauses idempotently instead of toggling.
- Spurious paused-state blips during track changes no longer interrupt head-unit playback indicators.

### Changed
- Lower-latency metadata responses under sustained head-unit polling. Track-info exchange between the music app and the Bluetooth stack now uses shared memory (single-digit-ms reads vs ~25 ms before) with no torn reads at track edges.

### Added
- `apply.bash --debug` build emits per-emit wire-side markers (`Y1T :` logcat tag) for diagnosing head-unit-specific AVRCP issues. Pair `tools/avrcp-wire-trace.py` with `tools/btlog-parse.py --avrcp` on a simultaneously-captured `btlog.bin` for the matching mtkbt-internal view.
…stream stock and Rockbox ROMs.

Co-authored-by: Cursor <cursoragent@cursor.com>
…-gcc.

Co-authored-by: Cursor <cursoragent@cursor.com>
Only build y1-stock-rom tags 3.0.2 and Latest-3.0.7 (published as @3.0.7)
and rockbox stable-v0.5+. Fix patched APK and devel image path resolution
for CI matrix builds.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Rockbox releases are removed from discover-inputs.sh because the stock patcher requires com.innioasis.y1 in system/app. Docs updated to match.

Co-authored-by: Cursor <cursoragent@cursor.com>
BasePlayerActivity dispatchKeyEvent patches used v3 while declaring
.locals 2, which makes apktool smali assembly fail. Bump to .locals 4,
prefer JDK 17 in find_java, pin JAVA_HOME in the workflow, and surface
apktool build logs when DEX output is missing.

Co-authored-by: Cursor <cursoragent@cursor.com>
Exact-match replacements were dropping getAction/getKeyCode and the
:cond_0 label, breaking apktool DEX assembly. Only splice the AVRCP
block after move-result from getKeyCode.

Co-authored-by: Cursor <cursoragent@cursor.com>
Refuse byte-identical or smaller repacks, publish rom.zip plus build-manifest.json, update 3.0.7 rom.zip MD5 in KNOWN_FIRMWARES, and add release size/hash table in README.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant