Skip to content

MeloX Android 0.7.1

Latest

Choose a tag to compare

@lladlam lladlam released this 27 Oct 14:13
· 2 commits to main since this release

MeloX Android 0.7.1 — 2026-10-27

  • 版本号:0.7.1,versionCode 26;产物:MeloX-Android-0.7.1-arm64-v8a.apk、MeloX-Android-0.7.1-armeabi-v7a.apk。
  • 签名证书:CN=MeloX, OU=Development, O=lladlam, C=CN(SHA-256 dfcca9865b87a402d341985a48eb132bd8679dfa6d9d502f365dd16210a5ebe9)。

中文

音源与播放

  • 修复第三方音源使用 HTTP 导入地址、HTTP 接口或播放链接时被系统明文策略拦截的问题:脚本导入、脚本请求与媒体播放改走隔离的 HTTP 通道,支持动态域名、跳转与媒体 Range 请求,不继承应用账号 Cookie;默认网络安全策略仍禁止普通明文访问。
  • 修复 LX 音源脚本复用时跨线程调用 QuickJS 导致解析失败:每个脚本的创建、调用、回调与销毁均串行运行在所属线程,等待网络结果的时间覆盖默认 HTTP 超时,超时后丢弃旧脚本会话。
  • 跨平台聚合搜索按音质择优:同一歌手、同一曲名且时长接近(10 秒容差)的结果只保留可播放且音质最高的来源,不同版本仍并列展示。
  • 修复汽水音乐扫码登录:保留抖音 Passport 下发的完整 Cookie,兼容扫码确认后的 3xx 响应,修复扫码后 404。
  • 修复系统歌词、悬浮窗歌词、HyperOS 超级岛、vivo 原子岛、ColorOS 锁屏歌词与 SuperLyric 只识别网易云歌曲的问题,统一改用与歌词页相同的 Provider 歌词加载链。

USB 与设备输出

  • 实验性 USB 独占扩展到全速与高速 UAC1:接受自适应/同步等时 OUT 端点,按端点间隔(125µs~1ms)以 USB 微帧计算包长,并支持每采样 2/3/4 字节(16~32 有效位)的 PCM 描述符;24/32 位容器由 PCM16 左对齐补零转换,不宣称高位深直通。UAC2、异步反馈、多事务端点与 DSD 暂未支持。
  • 暂停时保留尚未提交的环形缓冲、恢复播放接着输出;拖动进度时清理旧缓冲,避免恢复后回放旧音频;首个 URB 实际完成回环后才报告就绪。
  • USB 独占与自动混音互斥:混音交叉淡化不会静音或断流 DAC 输出,交接后也不会留下静默的 USB 会话;LAN 投放恢复本机输出时不会误解除 USB 持有的静音,避免本机喇叭与 DAC 同时出声。
  • 每次 USB 尝试都会记录 VID:PID、速度查询结果与来源、音频接口描述符(十六进制,含 UAC 协议版本)、解码格式、选中的接口/端点/最大包长与失败原因;可在「设置 → 关于 → 导出 MeloX 全部日志」中附带导出,不含 USB 序列号字符串。

启动与稳定性

  • 修复启动时账号加密迁移失败仍抛出异常的问题:磁盘写入/旧数据清理失败时保留数据并允许重试,加密存储降级到内存时不再清除唯一的持久化旧会话。
  • 加固首屏播放控制器连接与系统音量监听:捕获异步绑定异常、正确释放延迟完成的连接,系统音频服务暂时可用性波动不再中断启动轮询。
  • 补齐启动时 Lyricon 外部歌词桥接的异常隔离,并加固可选小米兼容链路(超级岛、Shizuku、妙播并发竞态),可选服务异常不再传到应用主线程。
  • 修复旧系统冷启动兼容性:Android 10 / EMUI 等旧系统使用兼容输出面板与系统蓝牙设置,Android 14+ 路由与前台服务类型按版本判断;修正 Android 12+ 画中画缩放。
  • 汽水音乐会话存储改用统一的可恢复加密存储,密钥库异常时自动降级为未登录状态,不再阻塞启动。

设置、歌词与界面

  • 新增弥乐内「我喜欢」:跨平台内容设置首次启用时可选择要迁移的音乐源,自动生成弥乐本地收藏歌单并导入所选音源收藏,之后任意音源的爱心操作都写入这个本地歌单。
  • 新增「测试功能尝鲜 → CLI 模式」:通过 ADB 查询播放状态与队列、控制播放/暂停/切歌/进度/音量/循环,并按指定音源搜索或搜索播放;提供 tools/melox_cli.py 与 docs/CLI.md。
  • 自动混音期间流光背景合并两首歌曲封面取色,交接结束后平滑恢复单封面配色。
  • 构建产物按 CPU 架构拆分为 arm64-v8a 与 armeabi-v7a 两个 APK,不再发布同时包含两套原生库的通用包。

下载与安装

  • 正式安装包:MeloX-Android-0.7.1-arm64-v8a.apk 与 MeloX-Android-0.7.1-armeabi-v7a.apk,按手机 CPU 架构二选一。
  • 包名:com.lladlam.melox.android;版本号:0.7.1;versionCode:26。保持正式包名与签名不变,可直接覆盖升级 0.7.0 及更早的正式安装包。
  • 使用 MeloX 正式签名;证书 SHA-256:
    DF:CC:A9:86:5B:87:A4:02:D3:41:98:5A:48:EB:13:2B:D8:67:9D:FA:6D:9D:50:2F:36:5D:D1:62:10:A5:EB:E9。
  • APK 校验值见随包发布的 SHA256SUMS.txt。
  • dev-latest 滚动开发版使用 Android 默认 debug 签名,不能覆盖安装正式包。

English

Sources and playback

  • Fixed third-party sources being blocked by the system cleartext policy when using HTTP import URLs, endpoints or play links: script imports, script requests and media playback now use an isolated HTTP channel with dynamic domains, redirects and media Range requests, without inheriting account cookies. Normal cleartext access remains blocked by default.
  • Fixed LX Music scripts failing when QuickJS was called across threads during reuse: each script's creation, calls, callbacks and destruction now run serially on its owning thread, network waits cover the default HTTP timeout, and timed-out sessions are discarded.
  • Cross-provider search now keeps only the highest playable quality when the same artist, title and duration (within 10 seconds) match; distinct versions remain listed side by side.
  • Fixed Qishui QR sign-in: the full Douyin Passport cookie is retained, 3xx confirmations are handled, and the post-scan 404 is gone.
  • Fixed system lyrics, floating lyrics, HyperOS Super Island, vivo atomic island, ColorOS lockscreen lyrics and SuperLyric recognizing only NetEase songs; they now share the player page's Provider lyric loader.

USB and device output

  • Experimental USB exclusive output now covers full-speed and high-speed UAC1: adaptive/synchronous isochronous OUT endpoints are accepted, packet sizes are scheduled per USB microframe from the endpoint interval (125µs–1ms), and PCM descriptors with 2/3/4 bytes per sample (16–32 significant bits) are supported. 24/32-bit containers are widened from PCM16 with zero padding; no high-resolution pass-through is claimed. UAC2, asynchronous feedback, multi-transaction endpoints and DSD remain unsupported.
  • Pausing keeps the unsubmitted ring buffer so playback resumes where it stopped; seeking flushes stale audio so old samples are never replayed; readiness is reported only after the first URB completes a round trip.
  • USB exclusive output is mutually exclusive with AutoMix: a crossfade can no longer silence or strand the DAC, and LAN cast restoring local output cannot clear a mute owned by USB, which would play the speaker and DAC together.
  • Every USB attempt records VID:PID, the speed result and its source, audio interface descriptors (hex, including the UAC protocol version), the decoded format, the selected interface/endpoint/max packet size and the failure reason. Attach them via Settings → About → Export all MeloX logs; USB serial strings are not collected.

Startup and stability

  • Startup no longer throws when account encryption migration fails: failed disk writes/cleanup keep the data for retry, and an in-memory downgrade no longer wipes the only persisted session.
  • Hardened first-screen playback-controller binding and system volume listening: async binding errors are captured, delayed connections are released correctly, and temporary audio-service unavailability no longer interrupts startup polling.
  • Completed exception isolation for the optional Lyricon external lyric bridge and hardened the optional Xiaomi stack (Super Island, Shizuku, MiPlay races); optional service failures no longer reach the app's main thread.
  • Fixed legacy-device cold starts: Android 10/EMUI use the compatible output panel and system Bluetooth settings, Android 14+ routing and foreground-service types are version-gated, and Android 12+ picture-in-picture scaling is corrected.
  • Qishui session storage now uses unified recoverable encrypted storage; keystore failures degrade to signed-out instead of blocking startup.

Settings, lyrics and UI

  • Added in-app "Liked": the first time cross-provider content settings are enabled you can choose which sources to migrate, generating a MeloX-only local favourites playlist; love actions from any source then write into it.
  • Added Settings → Experimental → CLI mode: query playback state and the queue over ADB, control play/pause/skip/seek/volume/repeat, and search or play from a chosen source; see tools/melox_cli.py and docs/CLI.md.
  • During AutoMix the flowing background blends the colours of both covers and settles back to the single cover afterwards.
  • Build artifacts are split per CPU architecture into arm64-v8a and armeabi-v7a APKs; no universal package with both native-library sets is published.

Download and installation

  • Release APKs: MeloX-Android-0.7.1-arm64-v8a.apk and MeloX-Android-0.7.1-armeabi-v7a.apk; choose the one matching your phone's CPU.
  • Package: com.lladlam.melox.android; version: 0.7.1; versionCode: 26. The official package id and signing key are unchanged, so it updates 0.7.0 and earlier releases in place.
  • Signed with the MeloX release key; certificate SHA-256:
    DF:CC:A9:86:5B:87:A4:02:D3:41:98:5A:48:EB:13:2B:D8:67:9D:FA:6D:9D:50:2F:36:5D:D1:62:10:A5:EB:E9.
  • APK checksums are published in SHA256SUMS.txt.
  • The rolling dev-latest development builds use Android's default debug key and cannot update an official install in place.