- Transcoding: send client identities Plex has a profile for (unknown ones get
400 "unable to find a matching profile"), with a fresh session id per variant
- Stream proxy: fetch transcodes once into a temp file and serve every player
request from it, so reconnects no longer restart the transcode (503s, tracks
cut short); original files still pass Range requests through
- Sign-in: remember the pending link code so it survives Minamp being closed
while the code is entered elsewhere; add "I've entered it - check now"
- Diagnostics: in-app connection log (DiagLog) with a streaming test and save
to SD card; tokens are never logged
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Run network/TLS work on 256 KB-stack threads (net/Threads.java): Android 2.x's
~16 KB default stack overflowed during the bundled TLS handshake
- Close pooled TLS connections off the caller thread
- Try several Plex music-transcoder URL variants until the server accepts one,
and remember the one that worked
- Accept pasted server URLs with paths; default to 443 for https
- Catch fatal errors and save a crash report (shown on next launch and written
to Minamp-error.txt on the SD card)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace jarsigner + zipalign.py with tools/signapk.py, which writes the v1
signature the way old JarUtils expects and aligns the APK.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>