- core: 9档枚举(顺序=降级链, DOLBY映射保留不进UI/链) + level_key(sky/sky_c51)
+ level_gate(CVIP/SVIP门槛) + song_url surround档附加immerseType=c51
+ song_url_auto全档表降级(out_level回填/响应level静默降档采信/try_fn可注入)
+ vip_info(weapi v2优先v1兜底) + parse_vip_info离线可测 + NCM_ERR_VIP(-15)
- app/logic/account.c(新): account.json会员态缓存(uid/nick/vip/双expire/checked_at)
刷新=登录后/超1天/到期后各一次不轮询; account_vip本地到期降档视图
- player_manager: 用户档按会员钳顶后逐级降级(不硬拒,缓存键仍用户档),
fee∈{1,4}且非会员→NCM_ERR_VIP零请求(缓存命中优先), eff_level回填
- UI: 设置页八档(规格+门槛+未解锁标注,允许选定), 播放页时间行中央
生效档/已降级至xx小字, VIP专享文案; 默认档Hi-Res→极高HQ(存量设置保留)
- 验证(0真实请求): degrade_sim 90例矩阵全PASS; player_flow_sim P1-P8全PASS;
test_ncm_core vip解析9例宿主+qemu全PASS; 窗口/分页/缓存/封面/audiod sim全PASS;
mipsel -Wall -Wextra 0 warning; 6页离屏rc=0。未部署真机(留主会话)
95 lines
2.7 KiB
Plaintext
95 lines
2.7 KiB
Plaintext
# === 大文件 / 可再生产物(不入库) ===
|
|
# 固件镜像(可由 build_*.sh 从 rootfs 树重新打包)
|
|
*.upt
|
|
# TF 卡/NAND 全量备份
|
|
backups/
|
|
# 固件组装的 rootfs 树(可重新打包,勿入库;.upt 已排除)
|
|
fw_apps/
|
|
fw_ssh/
|
|
fw_ssh*/
|
|
# repack/round-trip 测试产物
|
|
repack_test/
|
|
# Rust 交叉编译工程(target/ 等体积大;如需保留源码可手动最小化)
|
|
ncm_mips_smoke/
|
|
# 旧 patch 演示/遗留超大树
|
|
patch_demo/
|
|
# 解包的 squashfs / rootfs
|
|
unpacked/
|
|
unpacked_v14/
|
|
# QEMU 全系统仿真(含 qemu-src、rootfs 镜像)
|
|
qemu_env/
|
|
# 交叉工具链(zig/musl.cc 大件,从 .tools 下的小脚本引用,重装可复原)
|
|
.tools/
|
|
# 设备 fb 原始帧 dump
|
|
*.raw
|
|
# 外部克隆的社区仓库(各自独立 git)
|
|
hiby_os_crack/
|
|
hiby-mods/
|
|
CNMPlayer/
|
|
# 旧 patch 实验/遗留(含大量 5.4MB hiby_player 变体二进制,可重新生成)
|
|
patch_v2_me/
|
|
patch_demo/
|
|
# 播放器二进制变体(stock/patched,可由 apply_patch 脚本+stock 重生成;勿入库)
|
|
patch_v2/hiby_player_*
|
|
patch_v2/cave_4b_*
|
|
# 临时/编译中间物
|
|
__pycache__/
|
|
*.pyc
|
|
*.o
|
|
*.a
|
|
# 大图(字库 atlas 生成物,可从 font/gen 重新生成)
|
|
font/atlas/
|
|
# SSH 私钥/认证(绝不入库;.pub 公钥可留但这里一并忽略,按需手动 add)
|
|
ssh_keys/
|
|
# .mpk 签名私钥(Ed25519,离线维护者侧;绝不入库)
|
|
.keys/
|
|
# 二进制备份(*.bak 由 build/升级流程生成,勿入库)
|
|
*.bak
|
|
*.orig
|
|
*.rej
|
|
|
|
# === 编译中间物 / 临时文件(不入库) ===
|
|
*.new
|
|
*.tmp
|
|
*.o
|
|
*.a
|
|
# 宿主测试产物 / 真机截图(device_test 下可再生产物)
|
|
device_test/*.png
|
|
device_test/*.rgb565_*.png
|
|
device_test/host_*.c
|
|
device_test/gesture_host_test.c
|
|
device_test/meow_ui_demo.c
|
|
device_test/meow_ime_demo.c
|
|
# SSH 密钥/认证(绝不入库)
|
|
ssh_keys/
|
|
|
|
# 本地开发文档(Analysis/Notes/Test/device_test/docs-plan,仅本地保留,不入库)
|
|
devdocs/
|
|
scripts/build/
|
|
fonts_lib/
|
|
|
|
# 字体源文件(体积大,不进库;产物在 TF 卡)
|
|
font/src/**/*.otf
|
|
font/src/**/*.ttf
|
|
font/src/**/*.ttc
|
|
patch_v2/sdk/test_p1p2p3_repro
|
|
|
|
# ncm_app vendor 源码与构建产物(体积大;版本/获取方式见 VENDOR_NOTES.md,构建脚本可复现)
|
|
# 例外:dr_flac 单头文件入库(§19 FLAC 解码依赖,532KB 单文件可入库)
|
|
patch_v2/ncm_app/vendor/*
|
|
!patch_v2/ncm_app/vendor/dr_flac/
|
|
patch_v2/ncm_app/out/
|
|
patch_v2/sdk/test_sdk_fixes
|
|
|
|
# 诊断工具构建产物(源码入库,二进制免)
|
|
patch_v2/tools/sndprobe
|
|
patch_v2/tools/tonepcm
|
|
patch_v2/tools/tonepcm2
|
|
patch_v2/ncm_app/cache_evict_sim
|
|
patch_v2/ncm_app/pagination_sim
|
|
patch_v2/ncm_app/audiod_chain_sim
|
|
patch_v2/ncm_app/window_sim
|
|
patch_v2/ncm_app/cover_chain_sim
|
|
patch_v2/ncm_app/player_flow_sim
|
|
patch_v2/ncm_app/degrade_sim
|