mirror of
https://github.com/hectorqin/reader.git
synced 2026-11-10 21:11:08 +08:00
Support local and OpenList libraries, metadata, independent media navigation, themes, and audio/video playback. Preserve approved v2 prototypes and current documentation; archive superseded review artifacts and keep generated validation output outside version control.
1.8 KiB
1.8 KiB
Android 影音后台授权与恢复
有限后台授权
WebView 登录身份可为当前队列申请后台播放授权,每次 1–2000 个 partId,固定有效期 24 小时,每用户最多 20 个有效授权。使用 X-Media-Background 头访问专用后台播放、进度和续期接口,不能用于阅读或媒体管理接口。
超出授权列表、跨账号、过期、注销、禁用、改密或媒体库撤权时拒绝请求。撤销后台授权会删除关联播放会话,旧流票据立即失效。授权接口禁用响应缓存及请求日志;令牌只在创建时展示。
进度和播放恢复
进度以播放会话和 revision 防止旧请求覆盖新设备的位置。暂停、恢复和切章使用已有队列与服务端会话;真正失效的会话需要重新开始播放,不能用本地状态绕过权限校验。
Android 在切章、倍率变化及正常销毁时保存白名单快照:账号、服务器、旧会话、队列、索引、倍率、视频类型和时间。不保存登录/后台令牌、流地址或本地进度。快照以 AndroidKeyStore AES-GCM 加密,使用 AtomicFile 写入 noBackupFilesDir,限长并校验七天期限;损坏、过期或不可解密时清除。
重新连接时以当前登录身份调用 playback/recover。仅当旧会话仍属于该章节当前进度且未完成时,才创建新会话并使用服务端位置。恢复保持暂停;后台授权重新申请。明确停止、退出及账号切换清除快照,不恢复睡眠定时或未同步的最后数秒。
验证边界
服务端测试覆盖授权范围、失效、撤权和条件恢复,Android JVM 测试覆盖协议与快照结构。AndroidKeyStore、系统强杀、锁屏、PiP 和厂商后台限制需要对应构建的设备验证,不能用旧 APK 的测试结果替代。