# 更新日志 [English](../README.md) ## 未发布 - LX 音源运行时逐项对照官方 `lx-music-mobile` v1.9.1 与 `lx-music-source` 审计修复:按官方 `toOldMusicInfo` 扁平契约补齐脚本可见的顶层 musicInfo 字段(tx 的 `strMediaMid`/`albumMid`/数值 `songId`、kg 的 `hash`/`albumId`、`img`、`types`/`_types`、`typeUrl`,修复官方 QQ 源必然失败的问题);`lx.request` 响应头改为小写键与逗号拼接字符串,错误参数包装为 `Error`;响应体对齐 `JSON.parse` 尽力解析且不再覆盖真实顶层键;`send`/`on` 对齐官方一次性守卫与事件校验,`updateAlert` 记录进日志;AES 未知模式改为抛错;`inited` 声明按宿主白名单过滤;脚本 console 输出脱敏后进入导出日志;补 `Function.prototype.toString` 伪装与测试。 ## 0.7.1 — 2026-10-27 - 版本号升级为 `0.7.1`,`versionCode` 提升至 **26**;发布标签 `0.7.1`,正式产物为 `MeloX-Android-0.7.1-arm64-v8a.apk` 与 `MeloX-Android-0.7.1-armeabi-v7a.apk`。 - 完善实验性 USB 独占:增加全速/高速 UAC1 自适应或同步端点及 24/32 位容器兼容,按 USB 微帧计算包长;暂停时保留缓冲、拖动进度时清理旧缓冲,并在用户导出日志时附上最近一次 USB 音频描述符与速度诊断。实际解码仍为 PCM16,UAC2 和异步反馈暂未支持,尚待真机 DAC 验收。 - USB 独占与自动混音互斥:混音交叉淡化不会静音或断流 DAC 输出;LAN 投放恢复本机输出时不会误解除 USB 持有的静音,避免本机喇叭与 DAC 同时出声。 - 为 USB 调度器新增宿主 C++ 回归测试(全速/高速 × 16/24/32 位 × 44.1/48kHz 帧数守恒、暂停与 seek),并接入 CI。 - 修复第三方音源使用 HTTP 导入地址、HTTP 接口或播放链接时被系统拦截的问题:脚本导入、请求及媒体播放使用隔离的 HTTP 通道,支持动态域名及跳转,不继承应用账号 Cookie。 - 修复 LX 音源脚本复用时跨线程调用 QuickJS 导致解析失败:每个脚本的创建、调用、回调与销毁均串行运行在所属线程;等待网络结果的时间覆盖默认 HTTP 超时,并在超时后丢弃旧脚本会话。 - 自动混音期间,流光背景合并正在混音的两首歌曲封面取色;混音交接结束后平滑恢复当前歌曲的单封面配色,缺失或加载失败的封面不参与混色。 - 修复启动时账号加密迁移失败仍抛出异常的问题:磁盘写入/旧数据清理失败时保留数据并允许重试;加密存储降级到内存时不再清除唯一的持久化旧会话。 - 加固首屏播放控制器连接与系统音量监听:捕获异步绑定异常、正确释放延迟完成的连接,使用兼容版广播注册并修复音量广播过滤条件;系统音频服务暂时不可用时不再中断启动轮询。 - 补齐启动时 Lyricon 外部歌词桥接的异常隔离:异步控制器回调、歌词发布与同步协程失败时停止本会话桥接并释放控制器,避免可选外部服务异常传到应用主线程。尚待三星 Android 12/华为受影响设备验证。 - 加固可选小米兼容链路:超级岛关闭时不初始化 Shizuku;隔离启动、歌词发布及异步系统服务异常,兼容失败时停用对应会话链路;修复妙播关闭与任务提交的并发竞态,并避免为停止超级岛而启动服务。本项为代码级防崩修复,尚待受影响设备验证。 - 修复旧系统冷启动兼容性:未打开的音频输出弹窗不再初始化路由组件,将 Android 14+ 路由类型/回调隔离到独立实现;Android 10 / EMUI 等旧系统使用兼容输出面板与系统蓝牙设置。同步修正画中画无缝缩放(Android 12+)和特殊用途前台服务类型(Android 14+)的版本判断。 - 汽水音乐会话存储改用统一的可恢复加密存储,密钥库异常时自动降级为未登录状态,不再阻塞启动。 - 跨平台聚合搜索改为按音质择优:同一歌手、同一曲名且时长接近(10 秒容差)的结果只保留可播放且音质最高的来源;不同歌曲、现场版/混音版及明显不同时长的版本继续并列展示,并在歌手前标注音乐来源。 - 新增弥乐内「我喜欢」:跨平台内容设置首次启用时可选择要迁移的音乐源,自动生成只在弥乐内存在的本地收藏歌单,并从所选音源导入收藏;之后任意音源的爱心操作都写入这个本地歌单,不依赖音源账号。GitHub 开发版同时提供 arm64-v8a 与 armeabi-v7a APK。 - 新增「测试功能尝鲜 → CLI 模式」:通过 ADB 查询播放状态与队列、控制播放/暂停/切歌/进度/音量/循环,并按指定音源搜索或搜索播放;提供 `tools/melox_cli.py` 与 `docs/CLI.md`。 - 构建产物按 CPU 架构拆分为 `arm64-v8a` 与 `armeabi-v7a` 两个 APK,不再发布同时包含两套原生库的通用包。 - 修复汽水音乐扫码登录:保留抖音 Passport 下发的完整 Cookie(不再按域名丢弃),兼容扫码确认后的 3xx 响应,并在登录后使用完整会话 Cookie 请求账号接口,修复扫码后 404。 - 修复系统歌词、悬浮窗歌词、HyperOS 超级岛、vivo 原子岛、ColorOS 锁屏歌词与 SuperLyric 只识别网易云歌曲的问题:统一使用与歌词页相同的 Provider 歌词加载链,支持 QQ音乐、酷狗概念版、汽水、酷我、Bilibili、Spotify、YouTube Music、Apple Music、Jellyfin 与本地歌曲。 ## 0.7.0 — 2026-10-25 - 版本号升级为 `0.7.0`,`versionCode` 提升至 **25**;正式产物名为 `MeloX-Android-0.7.0.apk`,发布标签 `0.7.0`。 - 更新弹窗限制在屏幕安全区内并设置最大高度:标题与操作按钮固定可见,更新日志区域独立滚动,长日志不会再顶出屏幕或遮挡按钮;其他玻璃弹窗也统一避开状态栏与导航栏。 - 通知栏左侧播放模式按钮改为「列表循环 → 单曲循环 → 随机播放」三态循环,并为三种状态分别提供循环、单曲循环与随机图标,任意次数点击都在三态之间切换。 - 歌词设置暂时只保留 Apple Music 样式选项;EVA 与文字 PV 的渲染代码仍保留。若此前选过隐藏样式,进入歌词设置时会切回 Apple Music,避免选择器显示与实际渲染不一致。 - 修复罗马音显示:原文始终使用同一套逐字动画;罗马音按视觉行固定在原文正下方,并按每个发音单元覆盖的字符范围横向居中。某个罗马音长度会进入相邻罗马音区域时,单独缩小该条直到放得下;跨行单元按比例拆分到对应行。 - 酷狗概念版签到新增「自动签到会员」:登录后每天首次启动 MeloX 自动领取畅听 VIP,并同时申请概念版 VIP 升级;手动签到也改为一次完成两项操作。当天已成功不再请求,失败 10 分钟后才重试,保留 `131001`(已领取)与 `20028`(账号受限)提示。 - 修复播放回退顺序:当前音源 → 其他内置音源严格匹配(需开启“不可用资源从其他平台获取”)→ 已配置的第三方解析源(需开启第三方音乐源)。CHKSZ 不再只停留在配置页,接入该最后阶段并保持 LX 自有选源逻辑;跨平台默认顺序调整为网易云、QQ、酷狗概念版、汽水,并跳过刚失败的当前音源。 - 旧版云控回退顺序只包含 QQ、酷狗、Bilibili 时自动回退到新的完整顺序;第三方开关关闭时不会发起 CHKSZ/LX 请求。 - 首次启动改为欢迎、账号、隐私协议与免责声明、云控选择的连续全屏引导;后两步沿用欢迎页样式,登录选择保留至协议和云控选择完成后再执行。 - 隐私政策与免责声明更新至 1.3(2026-10-25):补充汽水/抖音扫码会话、酷狗概念版会员请求、局域网互联与媒体传输、DLNA/MiPlay 及实验性 USB 输出的数据处理和功能边界,同步应用内协议版本。 ### Bilibili 音乐库收藏夹修复 - 区分已收藏的普通收藏夹与视频合集:保留普通收藏夹完整 `media_id`,合集使用独立身份与合集详情接口,避免同号资源冲突和错误路由。 - 收藏夹详情改为每页 20 个资源、滚动续页;后续页失败可单独重试,保留已显示内容,避免大量内容必须全部请求成功后才能打开。 - 优先使用收藏列表已有的 `first_cid`/`cid`,减少单视频详情请求;单个失效/私有视频不再使整个收藏夹加载失败。 - 分页以服务端 `has_more` 为准,避免分 P 视频展开后误将“歌曲条数”当成“视频资源数”而提前停止。 ### 汽水音乐 - 依据 `guowenye/qishui-api`(MIT)增加独立汽水音乐音源,采用原生 Kotlin 直连接入,无需部署 Node 服务。 - 接入推荐歌单、歌曲搜索、歌单详情、原文歌词、账号歌单与扫码登录入口,复用公共 MeloX 页面与播放器。 - 账号独立加密保存;播放区分试听和完整资源,音质按实际码率反馈,CDN 不携带账号 Cookie。 - 匿名推荐与 H5 歌曲/歌词接口已在线核对;PC 搜索存在返回空响应的限制,登录态搜索与真实扫码仍待用户验收,详见 `docs/QISHUI.md`。 ### 酷狗概念版与音源设置 - 酷狗概念版使用独立的账号、设备身份与会员状态,接入搜索、播放、歌词、歌单与权益查询。 - 音源列表、Provider 注册、登录入口与跨源回退移除酷狗标准版,仅保留概念版;历史标准版选中项改为概念版,不迁移或混用账号凭据。 - 新增仅酷狗概念版可见的「设置 → 扩展 → 签到领会员」页面,沿用现有设置子页的分组列表、液态玻璃控件和系统转场。 - 支持手动确认领取今日畅听 VIP,以及签到成功/今日已签后的可选概念版 VIP 升级;区分今日已领取、账号受限及失败结果,领取后刷新会员状态。 - 非网易云音源隐藏「私信与站内分享」和网易云「一起听」,设置搜索结果同步过滤。 - 修复设置账号区的账号/音乐服务页进入与返回路径,使其与普通设置子页一致,避免返回结束时 Dock 和迷你播放器突然出现。 ### 歌词注音与界面细节 - 罗马音按原文发音单元分组居中对齐;日语组合假名保持整体,汉字词通过假名锚点匹配读音,无法可靠拆分时保留整组。 - 修复开启逐字歌词后仍把罗马音整句显示的渲染分支。 - 伴唱按实际开唱时间排列,并保留独立的逐字高亮时间线。 - 应用图标字形缩至原尺寸的 83%,保留原有占位与点击区域。 ### 设备互联与实验性 USB 输出 - 播放设备面板统一使用当前页面背景、共享液态玻璃与播放器进度条;连接由持久会话持有,关闭面板不结束连接,输出启动成功后收起面板。 - 局域网一起放新增修订 2 协调协议:会话/队列代际隔离、准备与提交屏障、时钟同步及歌曲结束等待;准备最多等待 3 秒,迟到设备不追赶,结束差不超过 5 秒时等待最后设备。保留旧端降级,跨平台修订 2 互通仍待验收。 - 新增 DLNA 设备发现、音频 HTTP 服务/代理、连接及播控接线;新增小米私有 MiPlay 发现、连接、音量与断开接入。 - 投放路径支持静音本机输出并在结束后恢复;系统 MiPlay 则由小米服务采集与路由本机音频。 - 新增实验性 USB 独占输出:使用 JNI 与 Linux usbfs 等时 URB,首版仅支持全速 UAC1、双声道 PCM16、自适应/同步 OUT、1ms 间隔,包含授权、软件音量、拔线恢复与输出互斥。 - USB 尚不支持 UAC2、异步反馈、24/32-bit 或 DSD,仍待真实 DAC 验收;支持范围与时钟限制见 `docs/USB-EXCLUSIVE.md`。 ### 致谢与文档 - README 与关于页新增捐赠者「中末」,金额为 8.88 元。 - 同步中英文 README 与关于页的项目名单,补充酷狗概念版的三个参考项目、AutoSync、ONNX Runtime、Square、QuickJS、ZXing、Shizuku 等依赖/参考来源及用途,移除过时的 Miuix 直接依赖说明。 ### 歌词样式重新迁移 - 重新移植 EVA 动态排版:按单字、短句、长句、拉丁文四种家族选择构图,恢复 solo/corner/vertical-lead/horizontal-lead/offset/stacked/banded/column/ latin/latin-centered/latin-poster 等布局与逐句确定性变体。 - 重新移植 Text PV:按 pv-tool 模板恢复 18 套配色、分层与效果列表,并重写画布 渲染器,覆盖背景块、纲格、扫描线、网点、故障条、文字卡片、打字机、蜡笔碎裂等效果。 - 重新移植全屏天际歌词:恢复当前/上一句/下一句的中央布局、行间预览比例与退场位移, 以及弥漫文字的分片、生长、模糊、倾斜和漂移。 - 三种样式继续共用 `MeloXProviderLyricsLoader`,保留翻译、罗马音、逐字歌词与歌词语言选择。 - 保留 pv-tool 非商业许可证与来源署名。 ### 网易云音乐网盘 - 按 iOS `CloudMusicView` 重做云盘页:首屏分页加载、滚动续页、下拉刷新、失败重试与空态上传入口。 - 搜索改为全量补齐后过滤:输入后自动继续读取剩余分页,并显示“正在搜索整个云盘”,避免只搜到已加载的部分。 - 增加“播放全部/播放搜索结果”、上传中的行内状态、额度与歌曲数展示。 - 删除改为左滑操作并保留确认弹窗,同时同步歌曲数、已用空间与分页偏移。 - 按 iOS `CloudUploadFile` / `uploadCloudSong` 重新迁移上传链路:文件校验、MD5、元数据读取、上传检查、NOS 令牌、对象键编码、音频上传、云盘信息提交与发布。 - 元数据读取失败不再中止上传,回退到文件名、未知艺术家与未知专辑;上传失败改为独立弹窗提示。 - NOS 对象键按 iOS 整体百分号编码,Content-Type 对齐 iOS 的 `audio/mpeg`。 ### 局域网妙播 - 新增 `docs/MELOX-LAN.md` 协议文档(v1 及一起放修订 2):UDP 发现、TCP 控制、PIN/常用设备、投放 PCM、传输、一起放。 - Android 实现设备扫描、控制端口、四类操作:远程上/下一首与暂停、投放、传输、一起放。 - 首次连接需输入 4 位 PIN;在「设置 → 局域网妙播 → 最近连接」把设备加入常用设备后免 PIN。 - 投放只采集弥乐自己的播放 PCM,不抓系统声音,也不需要录屏权限;一起放双方都能控制。 - 一起听支持「临时音频代理」:发起方用自己的账号/本地下载代理音频,被控方只拿到 10 秒内有效的临时 token,不会获得 Cookie;连接后按会话续期,结束即撤销。 - Windows/Linux/iOS 可按同一份协议实现,Android 侧不绑定平台私有接口。 ### 播放设备选择 - 播放器底部第二个按钮改为应用内「播放设备」面板:通过 `MediaRouter2` 列出手机扬声器、蓝牙、有线/USB 等系统输出并直接切换。 - 首次使用时按需申请蓝牙权限(仅用于读取设备名称);平台不支持时会回退到系统输出选择或蓝牙设置。 - 同一面板接入局域网妙播、DLNA、小米私有 MiPlay 与实验性 USB 独占输出。 ### 播放器标题菜单 - 播放器页点击曲名打开液态玻璃菜单,提供「前往艺人」「前往专辑」「前往播放列表」。 - 艺人和专辑使用网易云歌曲详情中的原始 ID 直接打开详情;播放列表打开当前播放队列。 - 菜单锚定在标题下方,空间不足时自动向上展开;非网易云音源仅保留可用的队列入口。 ### 播放器自定义背景 - 背景模式新增「自定义图片」:通过系统照片选择器导入,复制到应用私有目录后复用模糊/遮罩管线渲染。 - 导入上限 48MB 并做可解码校验;失败保留旧图,取消选择不会停留在无图模式。 - 自定义图片模式不再误开流光参数,歌词分享图会回退封面,启动时清理中断导入留下的孤儿文件。 ### 系统与下载增强 - 关于页新增**应用内日志查看**:直接展示最近崩溃记录与当前进程 logcat 尾部,配合原有“导出全部日志”。 - 播放设置新增**云端随机**(网易云歌单优先使用服务端随机顺序,失败回退本地随机)与**无音频源时播放下一首**开关。 - 通知栏左右按钮可自定义:随机/循环模式、收藏、悬浮歌词、无,实时作用于系统媒体卡片。 - 云盘上传显示**真实百分比进度**(NOS 上传请求体流式计数)。 - 下载管理支持**暂停 / 恢复**,下载页与存储设置中都有暂停分区;恢复会重新开始传输。 - 补上 **ColorOS 锁屏歌词**(`lyricInfo` 元数据)与 **SuperLyricApi** 发布,复用同一条系统歌词时间线。 - 补上**歌词画中画**:支持 Android PiP、16:9 与上一首/播放/下一首遥控按钮,悬浮歌词开关下按 Home 自动进入。 ### UI 字体与图标 - 引入可变字重 SF Pro,仅用于图标;正文继续使用 XiaomiLTPro / MiLanPro。 - UI 图标字体升级为完整 SF Pro 中的 SF Symbols 字形;旧子集仅保留给完整字体缺少的四个新符号。 - 字体授权与再分发说明见 `docs/SF-Pro-NOTICE.md`。 ### Issue 修复 - #87:修复退出登录弹窗中「退出」按钮红字与红色 tint 重叠导致不可见。 - #92:通知栏/MediaSession 的上一首现在与应用内一致,遵循「播放超过 5 秒才回到开头」设置。 - #94:底部导航栏、搜索键和迷你播放器之间的透明缝隙不再点击穿透到页面内容。 - #86:Bilibili 音乐库同时读取自建收藏夹与他人收藏夹,不再只显示 `created/list-all`。 - #89:歌曲菜单增加「减少推荐此类歌曲」,调用网易云日推不感兴趣接口。 - #91:系统媒体卡片的收藏按钮支持网易云歌曲;左右按钮改为用户可配置(模式/收藏/悬浮歌词)。 - #81:Release 增加 `ai.onnxruntime` 的 R8 keep 规则,避免 AutoSync 在 `convertToTensorInfo` 的 JNI `GetMethodID` 处闪退。 - #97:歌曲百科不再强制要求网易云登录;登录态请求失败时自动回退匿名 eapi,并补全 block 直接资源(相似歌曲、相关歌单、音乐记忆等)的解析。 ### 其余 iOS 功能补齐 - 音乐库歌曲、歌单、专辑、艺人和最近播放页新增统一搜索框。 - 关于页新增本版本更新日志弹窗与赞助者列表;不添加官网入口。 - 首次启动补齐欢迎页和账号页,保留网易云登录与“稍后再说”。 - 新增独立歌曲详情页,可从歌曲操作面板进入,展示歌曲信息、播放、收藏与百科入口。 - 睡眠定时器新增 90 分钟选项,并显示剩余时间与预计停止时间。 ## 0.6.5 — 2026-10-18(v0.6.5) - 应用版本为 `0.6.5`,`versionCode` 提升至 **24**,支持从此前同名版本覆盖升级。 - 本次发布标签为 `v0.6.5`,保留此前 `0.6.5` 标签;正式 APK 为 `MeloX-Android-0.6.5.apk`。 ### 分屏、Dock 与迷你播放器 - 补发修复:恢复音乐库歌单打开 / 关闭时的封面共享过渡,保留分屏详情退场期间的内容。 - 新增默认开启的分屏设置,可随时恢复单栏;大屏播放页双栏也遵循该开关。 - Dock 和迷你播放器可独立选择左下、右下、左上、右上、左侧竖向、右侧竖向,并持久化设置。 - 左右控件使用页面实际分界线,在各自半屏内测量和绘制;适配奇数窗口宽度与不对称安全区,页面为顶部与侧栏预留空间。 - 同位置横向组合复用竖屏间距与下沉收缩动画;同位置竖向组合联动收缩;分开放置时禁用滚动收缩并清除残留状态。 - 修复设置子页面的预测式返回:单栏使用原生 Activity 路径,横屏详情保留跟手返回、取消回弹与退出收尾。 ### 多音乐源公共功能 - 搜索长按、歌曲菜单、歌单 / 专辑菜单、歌手和排行详情接入公共 UI,保留原始音源 ID 与元数据。 - 下载入口按实际 DownloadCapability 显示,并路由至对应音乐源;专辑分享不再误用歌单管理操作。 - 收藏列表、可写歌单、专辑与歌手列表按 hasMore / total 分页,并处理空页、重复页及跨音源 ID 去重。 - 补齐排行榜加载错误与重试;移除迁移后失效的旧列表分支。 ### YouTube Music - 对照 Square 补齐会话、频道切换、音乐库、歌单编辑与公共播放 / 下载接线。 - 修复空地区、非法地区及 CN 地区参数导致的 browse 400;请求地区兜底 US,界面语言独立保留。 - 登录采集等待页面上下文,保存 Google 账号序号;完善 Cookie 签名、Origin 和账号 / 频道认证头。 - 音乐库不再把账号资料接口失败当成未登录;登录、退出与频道切换后自动刷新。 - 增加频道选择与刷新登录入口;频道验证失败恢复原会话,网络故障不清除登录凭据。 - 搜索、音乐库和歌单详情接入 continuation;首页内容不足时继续读取后续内容。 - 可写歌单只展示服务器标记可编辑的条目;移序使用成员 setVideoId,保留同一视频的不同歌单成员。 ### 歌词与语言 - 所有音乐源共用歌词获取入口,统一自动匹配、绑定、缓存与逐字歌词升级。 - 显式翻译语言优先,“跟随系统”采用当前应用语言;语言进入请求及缓存键,切换后当前歌曲重载,过期异步结果不再覆盖新语言。 - TTML 按目标语言选择翻译轨,无目标译文时保留原文;非中文偏好不再回退到音乐源仅提供的中文翻译,保留原文与罗马音。 - 修复纯歌词沉浸页底部点按穿透:点按只唤出控件,滑动仍可滚动歌词。 - Android 13 及以上增加应用语言选择,旧系统提供系统语言设置入口;补齐设置标题、分组与语言搜索关键词。 ### 多语言恢复 - 恢复 0.6.3 被移除的系统多语言机制:设置、音乐库、搜索、发现页、播客页等界面的文案重新走 `stringResource`,跟随系统语言切换(0.6.2 为 1048 处,恢复后 976 处)。 - 新增独立翻译目录 **`android/app/i18n/`**:每种语言一个 `values-/strings.xml`, 已通过 Gradle `res.srcDir` 注册,贡献语言**不需要改任何 Kotlin 代码**;说明见 `android/app/i18n/README.md`。 - 待补充:仍有约 70 处内联中文,分两类 —— ①与数据比较的 **id 类字符串**(歌单分类「华语」、 快捷入口「私信」等)**按设计保持字面量**,不参与本地化;②少数在非 Composable 上下文 (协程 / 点击回调)里直接写死的文案,需要先把字符串上提到 Composable 再资源化。 ## 0.6.5 — 2026-10-12 - 版本号升级为 `0.6.5`,`versionCode 23`;正式产物名为 `MeloX-Android-0.6.5.apk`。 - 新增签名热更新通道:**文案覆盖**与**受限脚本**,两者都随已签名的云控 payload 下发,不新增下载链路。 ### 热更新 · 文案覆盖(M1) - `textOverrides`:`localeTag -> key -> text`,客户端按「精确 locale → 语言 → default」回退,缺失即用内置文案。 - 只有「已授权云控 + 验签通过 + 版本区间命中」时生效;撤回授权、清缓存或配置回滚会立即失效。 - 边界:条目 ≤256、locale ≤24、key ≤120、value ≤400,超限条目直接丢弃。 - 已接入:关于页维护者/上游信息、彩蛋标题与正文(内联 key),AutoSync 开关标题与说明(资源 key)。 ### 热更新 · 受限脚本(M2) - `scripts`:hook → `{revision, source}`,脚本必须定义 `function run(input)` 并返回可序列化结果。 - 沙箱:每次调用全新 QuickJS context、8 MB 内存与 256 KB 栈上限、单线程 daemon、600ms 墙钟超时; 超时后**本进程内禁用脚本通道**;语法/异常/缺 hook 一律返回 `null`,调用方回落内置逻辑。 - 边界:单脚本 ≤16 KB、总量 ≤32 KB、最多 8 条。 - 首批接线:`search.keywords`(网易云搜索关键词清洗)。 ### 服务端与决策 - `MeloX-Remote-Config` 的 schema、模型、校验与测试同步支持 `textOverrides` / `scripts`。 - 决策:**暂不引入 DEX 热修复框架**(Tinker/Sophix),理由与重估条件见 `docs/HOT_UPDATE_RESEARCH.md`。 ## 0.6.4 — 2026-10-12 - 版本号升级为 `0.6.4`,`versionCode 22`;正式产物名为 `MeloX-Android-0.6.4.apk`。 - 修复 0.6.3 合并贡献者分支时被静默回退的主线修复。 ### 恢复被回退的主线修复 - 会话加密存储:恢复损坏 keystore / 密文不可用时的启动兜底,`EncryptedSharedPreferences` 创建失败不再让进程崩溃(`SecureSessionPreferences`、`YouTubeSessionStore`)。 - HyperOS 超级岛发布:恢复主线的 Shizuku 保活与隐藏 API 豁免实现,并补回 `org.lsposed.hiddenapibypass` 依赖。 - 歌词翻译对齐:`alignSecondary` 改为按时间合并两条轨,带头部无翻译行时不再整体错位。 - 歌手页与歌单:恢复歌手页直达专辑/歌手、歌单封面显示、排序与下拉搜索隐藏。 - 崩溃记录:恢复 `MeloXCrashStore` 的主线实现。 - 播放/网络:恢复队列与歌词时序相关修复、跨平台未知时长下的完整歌手匹配、 音质弹窗真实玻璃表面、Shizuku XMSF helper 与 ProGuard 规则。 - 恢复 `LrcLyricsParserTest`、`TtmlLyricsParserTest` 等被删测试。 ### 其它 - 移除贡献者分支重新引入的 Mei GPU Mesh 背景(该背景此前已由主线移除)。 ### 已知问题 - AutoSync 三个模型仍为 `NOT_ACCEPTED_FOR_WORD_LEVEL_ACCURACY`,逐字精度未人工验收。 - 日文 AutoSync 依赖未打包,暂不可用。 - `values-*` 系统多语言机制仍为 0.6.3 起的内联中文状态。 ## 0.6.3 — 2026-10-11 - 版本号升级为 `0.6.3`,`versionCode 21`;正式产物名为 `MeloX-Android-0.6.3.apk`。 - 合并贡献者分支(iOS 风格播放页、液态玻璃材质),并保留设备端 AutoSync 本地逐字歌词。 ### AutoSync 本地逐字歌词 - 在设备端用 ONNX Runtime 生成逐字时间轴:英文走 CTC,中文走独立的 CIF 单调对齐。 - 模型改为从云端下载并逐文件校验 SHA-256,索引版本固定为 `android-models-v0.1.0-beta.2`;已安装且哈希一致的旧包直接复用,不重复下载。 - 自动生成任务串行化,切歌或关闭开关即停止;每次任务结束后释放 ONNX 会话,同一时间只保留一个语言模型。 - 有人工逐字时间轴时不覆盖;无法对齐的行保留逐行时间,不用均分伪造逐字。 - 日文在设备端 G2P(OpenJTalk + NAIST 词典)就绪前保持不可用。 ### 播放页与视觉(来自贡献者分支) - 播放页重做:Compose 共享元素 / 共享边界一镜到底转场、横竖屏布局重建。 - 采用 Kyant0 Backdrop 液态玻璃材质、Liquid 底栏与变换背景;新增 Mei 网格背景、平滑圆角与展示角落。 - 新增触感反馈、可变刷新率帧率控制器、系统动画倍率桥接与音量键桥接。 - 新增网易云 WebView 扫码登录、听歌识曲浮层、独立设置详情页。 - 新增崩溃记录器 `MeloXCrashRecorder`、网络重试拦截器、播放不可用提示与播放通知。 - 加入 Baseline Profile,改善启动与滚动性能。 ### 变更与移除 - 移除 0.6.2 的系统多语言机制:界面文案内联,`values/strings.xml` 等翻译不再随系统语言切换。 - 对齐贡献者分支实现,回退了部分 0.6.1/0.6.2 改动(歌手页优化、跨平台匹配、会话加密存储修复、崩溃存储等)。 - 歌词与其它核心逻辑仍采用主线实现并保留 AutoSync 接入。 ### 已知问题 - 三个 AutoSync 模型仍标记为 `NOT_ACCEPTED_FOR_WORD_LEVEL_ACCURACY`,逐字精度尚未经人工真值验收。 - 日文逐字依赖未打包,暂不可用。 ## 0.6.2 — 2026-10-02 - 版本号升级为 `0.6.2`,`versionCode 20`;正式产物名为 `MeloX-Android-0.6.2.apk`。 ### 共享元素转场 - 首页/搜索的卡片打开详情时,封面从卡片位置一镜到底 morph 到详情 hero。 - 修复合入后卡片可见性与 hero 不在同一帧导致转场不播的问题:现在点击当帧卡片退出、返回当帧卡片进入。 - 手写 overlay 延时改为读取 Compose 动画倍率,`animator_duration_scale` 为 0/0.5/1/2 时节奏一致。 ### 多语言 - 跟随系统语言,补齐简体中文、繁体中文与日语;`values/strings.xml` 默认英文。 ### 音乐源 - YouTube Music:主页内容与同步歌词;Google 登录后保留会话 Cookie。 - Spotify:改用回环监听登录回调,修复「无效的 Spotify 登录回调」。 - Jellyfin:支持局域网明文 HTTP 与自签名证书,需在设置内允许不安全连接。 - 曲库与歌单编辑按 provider 能力开关。 ### 播放器与背景 - 流光背景:色块游走全屏、随播放暂停、去掉明暗脉冲、域扭曲连续流动。 - 设置滑条更换为液态玻璃滑条并按 16dp 对齐;拖动时实时显示数值;新增流光速度、色彩强度、明暗三条滑条。 - 播放器封面在控制栏上方居中,标题保持原来的间距。 - 迷你播放器展开态歌手行不再被裁切。 - 移除 Mei GPU Mesh 背景及相关设置项。 ### 稳定性与崩溃 - 修复液态玻璃采样位图被回收后仍写入导致的 `Can't call setPixels() on a recycled bitmap` 崩溃。 - 液态玻璃表面统一走硬件加速门控,不支持时回退不透明。 - 底部导航:选中高亮、方向弹簧、磨砂模式着色与点击索引修正。 - 队列持久化:空播放器不再清空已存队列;播放位置每 2 秒落盘,闪退也能恢复。 - 曲库 provider 歌手改用 provider 播放链路,修复偶发无法播放。 ### 返回动画 - 发现页:共享元素页面手势返回不再跟手滑动;快捷歌单退场期间保留内容,返回按钮与手势返回一致。 - 设置子页面:返回按钮现在播放退场动画,与手势返回一致。 ### 问题修复 - #44 播放器封面位置。 - #49 切歌闪退与歌手页只显示热门单曲。 - #53 超级岛左右两侧都显示歌词。 - #54 本地扫描递归嵌套目录。 - #56 Spotify 登录回调。 - #57 Jellyfin 局域网明文 / 自签名证书。 - #59 深色模式输入框文字颜色。 - #60 音质弹窗按钮与流光闪烁。 - #61 共享元素转场回归。 - #62 液态玻璃门控与底栏打磨。 ## 0.6.1 — 2026-09-26 - 版本号升级为 `0.6.1`,`versionCode 19`;正式产物名为 `MeloX-Android-0.6.1.apk`。 ### 播放 - 搜索播放从点中的歌曲开始,不再把更早的结果插到它前面。 - 播放失败会继续找下一首,或重新准备当前歌曲;音源解析等待有上限。 - 播放队列在暂停和切歌时保存,恢复时带上音源身份。 - 时长未知时,跨源回退只接受歌手名单完全一致的结果。 ### 歌词 - AMLL 优先使用官方接口,并按系统语言选择歌词脚本;缺少对应脚本时在本地简转繁。 - 提前出现的伴奏按各自音节点亮;同时结束的重叠行不再跳着滚动。 ### HyperOS 超级岛 - 歌词由独立前台服务发布。 - Shizuku 保活只在设置中授权,播放时不再弹出权限请求。 ### 底部导航与迷你播放器 - 底部胶囊、搜索键和选中指示使用独立的展开与收缩弹簧;过冲按当前窗口宽度计算。 - 玻璃模糊为 8dp;明暗按背景亮度采样,稳定后降低采样频率。 - 首页与设置使用自绘图标。 - 迷你播放器高度锁定为 48dp,封面保持正方形,歌名、歌手与封面垂直居中;底栏收缩后仍显示歌手。 ### 首页 - 每日推荐、热歌榜和私人雷达打开歌单页,背景与过渡和普通歌单详情一致。 - 歌单详情叠在当前页面上。返回手势先回到该页面,预见式返回时露出的也是该页面,而不是直接退出应用。 ## 0.6.0 — 2026-09-19 ### 新音乐源:Spotify - 接入 Spotify 作为独立音乐源,播放引擎使用 `librespot-java`,目录与 OAuth 使用 Spotify Web API。 - 支持 OAuth Authorization Code + PKCE 浏览器授权、token 刷新与离线缓存。 - Spotify Client ID 改为在应用内由用户自行填写,不再依赖构建期 Gradle property。 ### 新音乐源:YouTube Music - 接入 YouTube Music,InnerTube 模块 vendored 到 `android/innertube/`(源自 [Metrolist](https://github.com/mostafaalagamy/Metrolist),保留 `com.metrolist.innertube` 包名)。 - 支持匿名搜索与播放;登录使用 Google WebView,仅保存会话 Cookie、`VISITOR_DATA` 与 `DATASYNC_ID`。 - 支持歌单、专辑、艺人、账号库与歌单写入;播放地址由 NewPipeExtractor 解析。 ### 下载与离线 - 新增 provider-neutral 下载仓库 `MeloXProviderDownloadStore`,Spotify / YouTube Music 与网易云共用同一套下载、删除与本地优先播放链路。 ### 平台适配 - vivo OriginOS 原子岛:vivo 设备自动尝试接入,无单独开关,不支持时回退标准媒体通知;使用本地 `notification.superx.*` 扩展,不依赖远程推送。 ### 更新与构建 - 新增基于提交的开发版更新检查:构建时写入当前 commit,应用内对比远端 `main` 最新提交并展示提交说明,下载走 GitHub 镜像源自动选择。 - 新增 GitHub Actions:push 到 `main` 或开发分支时构建 debug APK,发布到滚动 release `dev-latest`,可免登录下载。 - debug APK 使用 `.dev` 后缀包名,可与正式签名包共存。 ### 问题修复 - #35 酷狗源:歌单改为连续分页读取,修复歌手/歌名/封面识别与播放。 - #36 部分 DPI 下播放页横屏 UI 显示异常。 - #39 搜索页面返回直接回退到桌面。 - #42 退出应用后队列未持久化 / 被清空。 - #44 播放器封面位置异常。 - #45 歌单界面:搜索框固定、排序移入“更多”菜单、歌曲行排版。 - #46 每日推荐改为进入歌曲列表页。 - #47 网易云日推 30 秒试听问题:识别试听音源并进入降级链路。 - #48 歌词翻译未跟随歌词模糊。 - #49 切歌闪退(队列重复 key)与歌手页只显示热门单曲(新增“全部歌曲”)。 - #50 歌词界面切歌时控制条底色停留在上一首、封面切换生硬。 ### 安全与稳定性 - 网易云、Spotify、酷狗会话迁移到 Keystore 加密存储,并保留旧明文数据的安全迁移。 - 关闭全局明文 HTTP 与 Android 应用备份。 - MediaSession 增加控制器白名单;播放解析增加超时;队列持久化改用同步提交并保证 key 唯一。 ### LX Music - 解析器按脚本声明的 `sources` 过滤,避免对未声明音源盲目请求;迁移规划见 `docs/lx-music-migration-plan.md`。 ### 版本 - 版本号升级为 `0.6.0`,`versionCode 18`;正式产物名为 `MeloX-Android-0.6.0.apk`。 - Release APK 使用 MeloX 发布证书签名。 ## 0.5.3 — 2026-09-08 ### Smart AutoMix 过渡规划 - Smart AutoMix 分析提前到当前歌曲开始播放后执行,不再等待进入 90 秒预加载窗口。 - 第二个实际播放播放器仍只在剩余 90 秒内创建和准备,控制内存与解码器占用。 - 第一首过渡起点不早于全曲可听区间的 75%,第二首降落点不晚于全曲可听区间的 25%。 - 第二首本次过渡实际消耗的音乐内容限制在 45 秒内。 - 速度变化上限默认放宽到 ±10%,设置页新增 10% 选项。 - 高能量/高潮候选点增加惩罚,优先选择非高潮 beat。 - 修复队列恢复、后台分析与播放器稳定性问题。 ### 版本 - 版本号升级为 `0.5.3`,`versionCode 17`;正式产物名为 `MeloX-Android-0.5.3.apk`。 - Release APK 使用 MeloX 发布证书签名。 ## 0.5.2 — 2026-08-29 ### 本地音乐与识曲 - 本地歌曲识别固定使用 9 秒音频片段,并按中段、开头和结尾依次尝试,提高前奏、间奏和静音场景下的识别成功率。 - 识别成功后持久化网易云歌曲 ID、标题、歌手、专辑、封面和 AMLL 歌词,后续打开本地歌曲时优先使用本地缓存。 - 修复本地歌曲识别结果写回当前 Media3 播放项后,播放器封面、歌曲信息和歌词未及时刷新的问题。 ### LX Music V5 音乐源 - 扩展受限 QuickJS 运行时,兼容 LX V5 的 `musicUrl`、`lyric` 和 `pic` 动作。 - V5 歌词返回对象会转换为宿主数据并解析 LRC、翻译和罗马音;播放项缺少封面时会异步调用 V5 `pic` 动作补全。 - 保留 V5 音质声明和音质降级逻辑,并增加脚本加载、HTTP 请求和播放解析诊断日志。 ### 稳定性与版本 - 改进本地识别和第三方播放链路的错误处理,区分脚本执行失败、上游 HTTP 错误和平台原生播放回退。 - 版本号升级为 `0.5.2`,`versionCode 16`;正式产物名为 `MeloX-Android-0.5.2.apk`。 - Release APK 使用 MeloX 发布证书签名。 ## 0.5.1 — 2026-08-28 ### 第三方音乐源与 CHKSZ - 重构 LX 用户源运行时,补齐标准请求事件、Promise、定时器、HTTP 回调、响应对象、加密与 Buffer 能力,并确保 QuickJS 操作在所属线程执行。 - LX JavaScript 运行在受限沙箱中;禁用动态代码执行和 Java/Android 桥接,只允许通过受控 `lx.request` 访问 HTTP(S)。 - 支持批量选择并导入本地 JavaScript 音源,兼容不同 MIME 类型、UTF-8 BOM 和无头注释脚本;单个导入失败不会中断其他文件。 - 支持读取音源声明的音质能力并自动降级,按顺序尝试多个 LX 音源;增加完整但脱敏的解析诊断日志。 - “网易云 SVIP 音乐解析”更名为“CHKSZ解析源”,明确支持网易云、QQ音乐和酷狗音乐。 - 新增“遇到会员歌曲时再调用”开关:关闭时维持第三方优先,开启时先调用平台官方播放,仅在会员受限后调用 LX/CHKSZ。 - 修复 QQ、酷狗 Provider 曲目未正确接入 CHKSZ 的问题。 ### 日志、安全与兼容性 - 日志导出改为当前 MeloX 进程可读取的全部日志,不再限制最近 10 分钟或只筛选部分标签,也不跳转外部日志页面。 - 仅在 LX 受限网络入口内兼容第三方源所需 HTTP 请求;第三方脚本无法访问 Java、Android API 或其他应用进程。 - 改进 QQ 音乐网页扫码登录、会话同步及播放错误诊断。 - 完善第三方页面拆分、设置与歌单详情预测性返回,以及液态玻璃组件的内容裁剪和宿主边界。 - 增加 MiSans 字体接入、粉色小猫彩蛋、歌词样式与播放界面细节调整。 ### 已知问题与反馈 - 发布前用于测试的第三方音乐源均出现接口 `404/403/429/503`、DNS/证书异常、超时或返回地址不可播放等情况;第三方源的持续可用性不由 MeloX 保证。 - 若第三方音乐源或播放功能出现问题,请前往“设置 → 关于”,拉到页面底部导出 MeloX 全部日志,并发送至 `lladlam114@gmail.com`。 - **导出日志可能包含账号状态、歌曲信息、请求地址及其他隐私数据,请务必在发送前自行检查。** ### 版本 - 版本号升级为 `0.5.1`,`versionCode 15`;正式产物名为 `MeloX-Android-0.5.1.apk`。 - Release APK 使用 MeloX 发布证书签名。 ## 0.5.0 — 2026-08-27 ### 第三方音乐源 - 新增第三方音乐源授权入口和独立使用协议;用户添加的音乐源完全由本地开关控制,不属于 MeloX 云控范围。 - 支持导入 LX Music 兼容的 JavaScript 音乐源,使用受限 QuickJS 运行时解析播放地址、歌词和封面。 - 支持多个 LX 音乐源按顺序尝试,首个返回有效结果的源优先使用,全部失败后才回退到平台原生播放。 - 新增 CHKSZ 第三方解析方法,支持网易云音乐、QQ音乐和酷狗音乐;配置 API Key 后作为第一播放路线,歌词仍使用 MeloX 自有歌词路线。 - CHKSZ 配置提示说明:需要前往 `api.chksz.com` 注册并获取个人密钥,目前仅支持 LinuxDo 用户注册。 ### 酷我音乐 - 按最新逆向文档更新手机号验证码请求:使用 GET、DES-ECB 自定义零填充、Base64 和 `q` 参数,并复用发送验证码时间戳。 - 新增酷我用户歌单、歌单详情和分页读取能力。 - **酷我手机号登录目前仍未修复好,0.5.0 不保证该功能可用。** ### 版本 - 版本号升级为 `0.5.0`,`versionCode 14`;正式产物名为 `MeloX-Android-0.5.0.apk`。 - Release APK 使用 MeloX 发布证书签名。 ## 0.4.5 — 2026-08-26 ### 新音乐源与账号 - 新增酷我音乐原生 Provider:支持搜索、播放链接解析、lyricx 歌词解码与手机号验证码登录。 - 酷我音乐走公共移动端接口,无需 Cookie;登录接口使用 MD5 签名鉴权,登录态本地持久化。 ### 歌词与播放体验 - 统一自动歌词源顺序:不管什么音乐源,均按 AMLL → QQ音乐 → 网易云音乐 → 当前源 依次尝试。 - 长音高光效果增强:范围扩大 50%、亮度提高 35%、放大动画增强 25%。 - 修复 lyricx 字级时间戳未剥离导致歌词显示异常的问题。 ### 播放器与界面 - 设置 → 外观新增「沉浸式播放」开关:全屏播放器打开后自动隐藏系统顶部状态栏,并保持封面与歌曲信息位置不变。 - 修复隐藏状态栏后播放器内容上跳的问题,使用稳定状态栏高度保留顶部内边距。 ### 修复与稳定性 - 修复酷狗音乐串台问题。 - 修复更新检测在部分标签格式下判断错误的问题。 - 酷我接口统一使用 HTTPS,解决 Android 明文流量限制;允许 `ar.i.kuwo.cn` 明文登录域名。 ### 构建与版本 - 版本号升级为 `0.4.5`,`versionCode 13`;正式产物名为 `MeloX-Android-0.4.5.apk`。 - Release APK 使用 MeloX 发布证书签名。 ## 0.4.4-Beta — 2026-08-25 ### 多音乐源、账号与更新链路 - 增加 Spotify OAuth 与账号入口,完善网易云、QQ音乐手机号登录以及多来源账号状态管理。 - 统一 GitHub DoH、GhFast、GhProxy 和 GhProxy.org 路由,自动并发测速并复用于静态更新清单、APK 下载和已授权云控配置。 - 不可用歌曲支持从已启用来源严格匹配完整音源;标题、主艺人和时长不满足条件时拒绝回退,不使用试听片段或绕过平台权限。 - 完善 QQ音乐、酷狗、Bilibili 等来源的播放身份、实际音质、歌词选择和缓存隔离。 ### 云控、隐私与安全 - 增加用户主动授权、ECDSA P-256 签名验证、防回滚、版本范围和白名单约束的音乐源远程兼容配置;拒绝或关闭后不请求、不缓存、不应用。 - 云控仅可调整 APK 已内置的音乐源能力、回退顺序、超时、熔断和单条公告,不能下发代码、任意 API、广告、遥测或账号数据访问逻辑。 - 协议升级至 1.2;授权后每次应用进入前台检查配置,前台持续运行期间每两小时检查一次,后台不执行定时轮询。 - 增加签名配置状态、手动检查、缓存清理、验签公告及 `once`/`daily` 展示频率。 ### 页面、搜索与深色模式 - 专辑详情复用歌单详情渲染器;搜索主结果和详情歌曲列表支持下一首播放、稍后播放、添加到资料库及长按操作。 - 迁移 Mei 风格的歌曲百科、个人中心、歌手和播客页面,统一固定标题、玻璃卡片、Hero、节目播放与横向专辑布局。 - 修复独立 Activity 未提供主题内容色导致的深色模式黑字,并补齐暗色 Surface Variant 令牌。 - 主页移除整体最大宽度和外层 gutter,改为全宽贯通视口,仅在各标题和横向列表内容上保留安全边距。 ### 歌词、播放与无尽模式 - AMLL 保持第一阶段优先级,有效歌词不再被后续 QQ 评分覆盖;网易搜索恢复时长,失败后并发回退其他来源,并保留 45 秒总等待上限。 - 修复歌词等待段上一句瞬间变暗,恢复平滑渐暗与多行过渡。 - 无尽播放支持单曲空队列结束后恢复播放、失败冷却重试和第三方歌曲严格映射;进入队尾歌曲时立即预取,兜底窗口扩大至 60 秒并并行搜索种子。 - 版本号升级为 `0.4.4-Beta`,`versionCode 12`;正式产物名为 `MeloX-Android-0.4.4-Beta.apk`。 ## 0.4.3-Dev — 2026-08-24 ### AutoMix 与播放 - 增加持久化音频分析索引、后台批量分析和媒体预取,改进 AutoMix 候选曲目匹配与过渡置信度。 - 修复交叉淡化期间暂停、上一首、下一首和进度跳转造成的双播放器状态错乱,并保持 MediaSession 与界面时间线同步。 - 同步持久化播放音质,清理切歌后的陈旧实际音质状态;网易云播放缓存按歌曲、账号、请求音质和解析版本隔离。 ### 歌词与界面 - 重构歌词时间线处理,支持任意数量的重叠活跃歌词,并保留逐行独立的弹性级联、焦点接位和离屏预布局。 - 修复逐字歌词切行突然压暗,长音增加低幅双轴动态并遵守系统“减少动态效果”设置。 - 移除共享玻璃组件外围边框,完善折叠标题、顶部渐隐模糊、安全存储清理和一起听页面。 ### 歌单交互与构建 - 歌单歌曲行移除更多按钮,改为长按打开操作菜单;双向滑动提供下一首播放、稍后播放、收藏和移除操作。 - 增加可配置的右滑满滑操作、阻尼停靠、胶囊拉伸、触觉反馈,并修复收藏后“我喜欢的音乐”缓存未同步。 - 更新应用启动器图标;版本号升级为 `0.4.3-Dev`,`versionCode 11`。 - Release APK 使用 MeloX 发布证书签名,正式产物名为 `MeloX-Android-0.4.3-Dev.apk`。 ## 0.4.2-Dev — 2026-08-23 ### 音乐源、搜索与播放 - 增加 Bilibili 音乐源与账号入口,完善多来源播放资源解析和运行时 Provider 状态。 - 改进统一搜索聚合、同曲去重、来源可用性与音质选择,减少同名结果长期偏向单一来源。 - 修复 AutoMix 前台/后台预载、队尾自动补充、双播放器时间线误清理和开关状态同步。 ### 私信与界面 - 将网易云私信迁移为 Mei 风格的 iOS Grouped List 会话列表与联系人选择页。 - 增加 Liquid Glass 顶部操作按钮、浮动输入栏、消息时间分组、歌曲/歌单/专辑资源卡片和长按复制。 - 私信继续位于“设置 → 扩展 → 私信与站内分享”,进入后隐藏底部 Dock。 - 搜索请求改为按下搜索键或停止输入 1.5 秒后触发,减少网易云 405 请求。 - 更新液态玻璃滑块、歌词、MiniPlayer 和多来源页面的交互与状态同步。 ### 更新与构建 - 更新检查增加 GitHub Release / jsDelivr CDN 下载源选择;自动模式在 CDN 不可用时回退 GitHub Release。 - 版本号升级为 `0.4.2-Dev`,`versionCode 10`。 - Release APK 使用 MeloX 发布证书签名,正式产物名为 `MeloX-Android-0.4.2-Dev.apk`。 ## 0.4.1-Beta — 2026-08-22 ### 歌词与播放器 - 增加 AMLL TTML、QQ Music QRC、网易云 YRC 的逐字、对唱和伴唱歌词支持,并自动选择更合适的歌词来源。 - 修复逐字歌词在均衡/低质量及罗马音、多行场景下退化为整行匀速高亮的问题,默认使用高质量完整渲染。 - 优化 MiniPlayer 尺寸、队列切歌手势、实时音频波形和页面切换动画。 ### 账号与音乐服务 - 增加网易云、QQ 音乐和酷狗的独立第二播放账号,只用于音频地址和可用音质探测。 - 网易云登录默认进入手机号登录页并保留二维码回退;QQ 音乐恢复稳定的网页登录流程。 - 修复第二账号登录页面层级、网易云主账号 Cookie 误识别和登录完成协程取消问题。 ### 界面与稳定性 - 使用 SF Symbols 子集字体统一图标,并重构歌曲、歌单操作弹层及提示弹窗样式。 - 修复 Kotlin 文件类未进入增量 DEX 导致的启动崩溃,并提高 Gradle/D8 构建内存上限。 - 第二账号说明改为无标题提示,清除操作改为带确认的按钮;提示弹窗面板保持完全不透明。 ### 构建 - 版本号升级为 `0.4.1-Beta`,`versionCode 9`。 - Release APK 使用既有 MeloX 发布证书签名,正式产物名为 `MeloX-Android-0.4.1-Beta.apk`。 ## 0.4.0-Beta — 2026-08-20 ### 业务闭环与多音乐源 - 增加公开/私密歌单创建、从自己的歌单移除歌曲,并把创建入口接入“添加到歌单”流程。 - 集合下载统一支持音质选择、多选、全选/取消;专辑、歌单和排行榜不再绕过批量下载确认。 - 下载保留 app-private 可靠副本,同时支持导出 MediaStore;本地音乐增加艺术家、专辑和文件夹分类以及缺失记录/孤立文件修复。 - 统一歌单、专辑、歌手、排行榜和播客节目详情;Provider 按 capability 暴露入口,不再显示不可用的自动来源回退占位设置。 - 恢复 31 Hz–16 kHz 十段均衡器和完整预设,补齐设置搜索、通知歌词模板、存储维护、更新日志、许可和诊断入口。 ### 界面、组件与歌词 - Home 增加混合尺寸内容与三行歌曲区块;Explore 增加 hero,并按宽度使用 2/3/4 列。 - Home、Explore、Search、Library 和集合详情采用统一窗口策略,覆盖手机、折叠屏、平板和横屏。 - 补齐 Slider、Stepper、Bottom Search Toolbar、Context/Popup Menu、ActionSheet、Alert、Modal Surface 和 Color Picker 等高层玻璃组件。 - 增加 Apple Music / Classic 播放器外壳选择;Classic 支持手机、平板和沉浸横屏布局。 - 18 套生产 TextPV 风格具有独立视觉签名,并用单元测试防止模板退化合并。 - 增加英文、简体中文和繁体中文基础资源,补充关键图标语义和未知图标的安全回退。 ### 性能、稳定性与构建 - 取消视觉背景的整曲重复解码;暂停、后台和非歌词页停止无效帧钟及高频轮询。 - 共享进程级 OkHttp/Provider Registry,增加有界 HTTP/Media3/动态取色/AutoMix 缓存和播放资源 single-flight。 - 将下载索引、Library 序列化与文件维护迁移到 IO,限制歌词重组和高成本玻璃/模糊路径。 - 启用 R8、资源收缩和 Material Symbols 子集化,纳入 Gradle wrapper、Baseline Profile 与 Macrobenchmark 旅程。 - 发布门禁通过 `testDebugUnitTest`、`lintDebug`、Debug/Release 构建和基准模块 assemble;真机 FPS、功耗、温升和启动耗时留给设备 Macrobenchmark/Perfetto,不使用推测数据。 ### 构建 - 版本号升级为 `0.4.0-Beta`,`versionCode 8`。 - Release APK 使用既有 MeloX 发布证书签名,正式产物名为 `MeloX-Android-0.4.0-Beta.apk`。 ## 0.3.4-Dev — 2026-08-17 ### 歌词与播放器 - 修复逐字歌词切换到下一句时先整句闪白、再从首字重新高亮的问题。 - 长间奏期间使用正常的未播放歌词状态,并清除上一句残留焦点,结束后直接激活下一句。 - 等待三点组件与歌词共用滚动、缩放和透明度动画,避免进入视口后突然弹出。 - 同时间点的多行歌词以首行作为固定焦点锚点,其余行保持连续显示与滚动。 - 切歌时歌词回到固定起始位置;拖动进度不再重置 Apple Music 三层旋转背景。 - 完善跨语种翻译显示及时间匹配,避免部分歌词行缺少翻译。 - 扩展歌词页底部全宽模糊与触控拦截,修复空白区域点击穿透。 ### 云盘、服务与界面 - 修复网易云音乐云盘分页、上传令牌、NOS 文件传输和歌曲信息提交兼容性。 - 云盘上传按音频格式发送正确 MIME,增加长文件超时、元数据清理及 EAPI/WEAPI 回退。 - 更多菜单和音质弹层随背景自适应颜色,并调整 Liquid Glass 位置和更多按钮图标。 - 精简音乐服务入口,设置页账号可直接进入音乐服务页面,并修复窄屏标题排版。 ### 构建 - 版本号升级为 `0.3.4-Dev`,`versionCode 7`。 - Release APK 使用 MeloX 发布证书签名。 ## 0.3.3-Dev — 2026-08-15 ### iOS 风格界面与 Liquid Glass - 对齐 MeloX / Mei 的首页、发现、音乐库、设置、搜索和服务页结构。 - 接入 AndroidLiquidGlass 公共 Demo 的按压高光、阻尼拖拽、折射、悬浮和速度形变效果。 - 修复 Dock 强调组件的拖拽、点击切换、边界裁切和动画卡顿问题。 - 修复标题与图标基线、Material Symbols 齿轮和箭头裁切问题。 - 将 MiniPlayer 改为真实采样背景的 Liquid Glass 表面。 ### 音乐库与服务 - 增加独立音乐服务页,支持音乐源、账号和跨平台搜索配置。 - 收紧音乐库标题和分段控件布局,移除歌曲行重复灰色卡片遮罩。 - 云盘嵌入音乐库时使用紧凑操作栏,避免重复的大标题。 ### 构建 - 版本号升级为 `0.3.3-Dev`,`versionCode 6`。 ## 0.3.2-Dev — 2026-08-14 ### 界面与 Liquid Glass - 按 MeloX iOS 与 Apple 的分层思路重构播放器、底栏、弹层和通用操作组件。 - 引入基于 AndroidLiquidGlass Backdrop 的原生玻璃模块,统一玻璃色调、边缘、折射、阴影和降级样式。 - 调整首页、发现、搜索、音乐库、设置、歌曲操作和音质选择界面的布局与图标。 - 使用 MeloX iOS 官方应用图标作为 Android 启动器图标,并提供传统及 Adaptive Icon 资源。 ### 播放器与歌词 - 重构全屏播放器、MiniPlayer、封面页、歌词页和播放队列之间的共享过渡。 - 统一低、中、高三档歌词的业务与动画逻辑;三档仅保留刷新率、模糊采样和背景质量等性能预算差异。 - 修复白色逐字歌词上浮时原位置残留灰色字形的问题。 - 修复视口底部歌词按整行渐隐后突然显现的问题;屏幕内内容由视口自然裁切。 - 对齐 MeloX iOS 的后续两行预加载,减少歌词进入底部边缘时的突显。 - 修复播放控制栏隐藏后,全屏透明触控层阻断歌词浏览的问题。 - 保留逐字高光、长音缩放、发光、回弹、焦点交接、翻译、罗马音和间奏倒计时。 ### 性能与稳定性 - 将动态流光背景的低分辨率网格计算移出 UI 主线程,并按歌词画质控制刷新预算。 - 减少非活动歌词行的逐帧重组、整行重复绘制和不可见行布局观察。 - 优化 AutoMix 音频分析、均衡器状态同步、播放服务维护任务和完整曲目分析策略。 - 修复下载状态、播放命令与部分缓存更新中的重复工作和竞态问题。 - 在 Snapdragon 4 Gen 2 与 Dimensity 9500s 设备上完成低端与高端档位回归;9500s High 档稳定歌词测试未出现 FrameTimeline 卡顿或应用级崩溃。 ### 兼容性 - 最低系统版本保持 Android 8.0(API 26)。 - HyperOS 焦点通知、超级岛、Lyricon、悬浮歌词和标准 Android MediaSession 路径保持可用。 > 这是开发版本。第三方音乐接口、OEM 私有能力和不同 GPU 合成器仍可能产生兼容性差异。