4 Commits

Author SHA1 Message Date
红袍小恶魔 5460ab34f3 修复GetAnonyTitle处理全续字节非法UTF-8时的越界崩溃
当title全部由UTF-8续字节(0x80~0xBF)构成时(如"\x80\x81\x82"),
char_positions为空、char_count为0,旧代码会进入短文本分支访问
char_positions[0],对空vector越界读,在ASAN/容器断言下abort,
release下读到垃圾值传给substr触发std::out_of_range或SIGSEGV。

title源自第三方App经IPC上报的AVMetaData,属不可信输入,存在被
构造触发的风险。

修复:char_count==0时提前返回"***",与函数整体掩码语义一致。
补充2条针对全续字节输入的单元测试。

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-07-08 17:21:17 +08:00
红袍小恶魔 088dabec11 fix: 修复AVCastPicker和AVVolumePanel组件问题并增强缓存清理测试
- AVCastPicker: 将Class.from替换为Type.from以适配最新API
- AVVolumePanel: 将declare const TAG改为const常量定义,为volumeChange和build方法补充void返回类型
- bundle.json: 新增taihe_ffi_gen构建依赖
- avsession_utils: 新增GetCastPrefix方法统一cast_前缀获取,GetAnonySessionId参数改为const引用传递
- avsession_storage_event: 使用GetCastPrefix替代硬编码字符串
- 单元测试: 增强缓存清理相关用例,补充文件删除结果断言验证

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-06-28 17:47:23 +08:00
红袍小恶魔 18c47bb38d 增加锁屏后首次解锁清理av_session缓存目录的优化策略
在COMMON_EVENT_USER_UNLOCKED事件触发时(用户el2凭据加密存储解锁、
每用户每重启仅触发一次),按userid区分清理/data/service/el2/{userId}/
av_session/cache目录下的image.dat缓存文件,优化磁盘存储。
若当前有session存活,则根据sessionId保留对应的本地image.dat和
cast_image.dat文件不删。

- AVSessionUtils新增DeleteCacheFilesExcluding,保留存活session文件
- AVSessionUsersManager新增CleanupCacheOnUnlock,收集存活sessionId后清理
- AVSessionService处理USER_UNLOCKED事件分发及清理调用
- 补充全分支覆盖UT,写入与回收对等

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-06-27 12:10:24 +08:00
红袍小恶魔 ca0e262003 新增AVSessionUtils单元测试
为AVSessionUtils类补充单元测试用例,覆盖GetAnonyTitle方法的各种场景:
- 空字符串和边界值测试
- ASCII/中文/Emoji字符测试
- 短文本和长文本测试
- 不同ratio参数测试
- 性能测试(大文本处理)

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-02-14 14:09:16 +08:00