- One build per Android level, as in Tenda and Plexamp Lite: build/Podlite.apk (Android 2.2+, versionCode 1308) and
build/Podlite-api16.apk (Android 4.1+, 1316), from shared src/ plus platform/api8 or platform/api16; build.sh now
runs on the local toolchain (aapt2, dx or R8, signapk.py; the JKS key converted for the run).
- Android 4.1 build: ExoPlayer 2.18.7 behind an Engine interface, with playback speed (player header) and skipping
silences (Settings), a 3-minute buffer and MediaPlayer as fallback for audio it can't decode; a notification and
lock screen with the cover and buttons; Holo; a menu button on phones without a Menu key; metered networks for
"download on Wi-Fi only".
- Both builds: tlskit's Http.abort fix (a finished response's pooled connection is no longer closed under a later
request); the lock screen's and newer headsets' play/pause keys.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Renames the app (label, texts, Audiobookshelf client name, User-Agent, APK). The package name,
preferences and signing key stay, so it installs over MiniABS and keeps its settings.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All requests (API, covers, downloads, the streaming proxy) go through Minamp's own
HTTP/TLS client (Bouncy Castle TLS 1.2, Mozilla roots, keep-alive, session
resumption) via NetConnection, a drop-in HttpURLConnection, as the iPod version does
with BearSSL. The phone reaches the normal https:// address directly; nothing changes
on the server.
- Trust: Mozilla roots + the user's pinned CAs/certificates feed the new verifier; the
trust prompt, renew-safe CA pinning and forged-chain protection behave as before
- PATCH is a normal request now (no raw-socket path)
- Job, covers, player, downloads and proxy threads get big stacks for the handshake
- embedded Roots.java and gen_roots.py replaced by assets/roots
- tests: desktop shims read assets; all 104 checks pass (HTTP and HTTPS)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>