源列表只保留 zk.ktv1.top:6677, 删除其余全部源
实测(同一出口 IP, 编号 7009126, 三节点同时刻对照): zk.ktv1.top:6677 → i.php 200(与 e.ac19.cn 逐字段一致) + do.php 真源 7009126.ts / 7303235.ts ✅ e.ac19.cn → 同款 i.php + 真源 7009126.ts ✅ 124.223.20.123:58→ 同款 i.php, 但 do.php 返回 0021.ts(非本曲) ❌ 三者同一后台; 昨日 e.ac19.cn/124.223.20.123:58 的 HTTP 403 空响应为临时额度/风控, 今日已恢复 改动: - SongUrlResolver.DEFAULT_HOSTS 与 ktv_api.js CONFIG.HOSTS(含 HOST) 均只留 http://zk.ktv1.top:6677 - KTV_BRIDGE_API 11 → 12 (ktv_api.js 两处 + KtvJsBridge.kt 两处校验) - ensureConfig(): api.php 失败也写负缓存(该节点无 api.php, 否则每首歌白请求一次) - MainActivity 日志不再写死旧源名, 改用 SongUrlResolver.lastHost - AdVideoFilter.AD_HOSTS 不变(管"返回地址"的 host, 与"取址入口"无关) 版本号按规则 3: 1.5.9(41) → 1.5.10(42); 本地打包(未发布) 验证: assembleRelease + 单元测试(9 例全过); 解包确认 APK 内 ktv_api.js 只含新源且标记为 12
This commit is contained in:
@@ -195,8 +195,8 @@ $BT/apksigner verify 目标名.apk
|
||||
|
||||
### 版本号
|
||||
|
||||
- `app/build.gradle`:`versionName "1.5.9"` / `versionCode 41`
|
||||
(`1.5.5`/`37` 已发布;`1.5.6` = 更新源加 Gitee、`1.5.7` = 删除「歌曲源临时受限」弹窗、`1.5.8` = 精简远程日志、`1.5.9` = 按 HAR 对齐原版协议,均尚未发布。18~21 曾被本机临时诊断包占用)
|
||||
- `app/build.gradle`:`versionName "1.5.10"` / `versionCode 42`
|
||||
(`1.5.5`/`37` 已发布;`1.5.6` = 更新源加 Gitee、`1.5.7` = 删除「歌曲源临时受限」弹窗、`1.5.8` = 精简远程日志、`1.5.9` = 按 HAR 对齐原版协议、`1.5.10` = 源列表只留 zk.ktv1.top:6677,均尚未发布。18~21 曾被本机临时诊断包占用)
|
||||
- App 内显示统一用纯版本号(不加 `(versionCode)` 括号)
|
||||
- ⚠️ **发布构建已开启 NewApi 闸门**(`lint { checkReleaseBuilds true; fatal += ['NewApi'] }`):
|
||||
任何「调用了高于 `minSdk 21` 且未做版本守卫的 API」都会让 `assembleRelease` 直接失败。
|
||||
@@ -309,6 +309,19 @@ $BT/apksigner verify 目标名.apk
|
||||
⚠️ 其 `do.php` 取址行为**尚未定性**(测试时本机出口 IP 配额已被消耗殆尽),
|
||||
因此置于次位、由运行时自动升降序。
|
||||
- 该条改动把 `KTV_BRIDGE_API` 由 10 提升到 **11**(同样四处)。
|
||||
- **⚠️ 源列表只保留 `zk.ktv1.top:6677`(2026-10-09,按用户要求)**:
|
||||
实测该入口与 `e.ac19.cn` **同一个后台** —— `i.php` 响应逐字段一致
|
||||
(`{"code":200,"end_date":"2026-10-05 14:58:21",...,"retry":5}`)、`do.php` 同款
|
||||
`code=200/msg=SUCCESS` + 同一条真源 CDN 路径(`txog.ktvsky.com/.../<编号>.ts`),
|
||||
且能连续两首返回**文件名=编号**的真源;其余入口要么只发广告/测试资源、要么整体 403。
|
||||
- 两处同步:`ktv_api.js` 的 `CONFIG.HOSTS`(含 `HOST` 默认值)与 `SongUrlResolver.DEFAULT_HOSTS`,
|
||||
**都只留 `http://zk.ktv1.top:6677` 一个**;`KTV_BRIDGE_API` 由 11 → **12**(同样四处)。
|
||||
- ⚠️ 该源**没有 `api.php`**(404):`ensureConfig()` 现在**失败也写负缓存**(`configAt`),
|
||||
否则每首歌取址前都会白请求一次。
|
||||
- ⚠️ 它返回的是**裸 IP:端口**形式(`zk.ktv1.top` 在开发机解析到网关 fake-IP `198.18.18.178`),
|
||||
裸 socket 会正确使用 `uri.port`(6677)—— 以前只有域名源,改这块要注意别丢端口。
|
||||
- `AdVideoFilter.AD_HOSTS`(媒体层广告域名黑名单)**不变**:它管的是"返回地址"的 host,
|
||||
与"取址入口"无关(见上文判定原则)。
|
||||
- **⚠️ 原版协议对齐(2026-10-08,依据 HAR 抓包实测)**:抓包(Reqable,`e.ac19.cn`)显示原版客户端是**三步**:
|
||||
1. **`POST /api.php`**:`Content-Type: application/x-www-form-urlencoded`,
|
||||
body `action=get_config&device_id=<mac>`,UA
|
||||
|
||||
Reference in New Issue
Block a user