778 Commits

Author SHA1 Message Date
openharmony_ci 470347d005 !3385 merge fix-session-element-spoof-lyc into master
修复AVSession伪造ElementName导致任意指向WantAgent的安全问题

Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: ## 问题

三方应用可通过 NDK 接口(OH_AVSession_Create,bundleName/abilityName 为直接字符串参数)或裸 IPC,向 AVSessionServiceStub::HandleCreateSessionInner 传入指向其他应用的 ElementName,入口及 IsParamInvalid 均无归属校验。SA 据此创建指向受害应用的 WantAgent(PendingWant),触发时以 SA 系统身份执行,形成身份冒用/跳转劫持。

详见 #2779

## 修复内容(按 TMG 评审意见:创建时纠正 elementName,划入兼容范畴,仅影响恶意应用)

**AVSessionService::CreateSessionInner** 新增 CorrectElementForThirdPartyCaller:

1. 系统应用/SA 调用方(thirdPartyApp=false)不处理
2. SA 进程内直调(如投播镜像会话)token 为 native,跳过——保护 cast 镜像等合法场景
3. 三方应用(hap)调用方:用调用方 uid 经 BMS 反查真实包名,与传入 elementName 比对;不一致则将 descriptor 的 bundleName 纠正为真实包名、abilityName 纠正为默认入口 ability(GetLaunchWantForBundle);反查失败保留原值(fail-open)
4. **BundleStatusAdapter** 新增 GetDefaultAbilityName,封装 BMS 默认入口 ability 解析

descriptor 在创建时即被纠正,下游展示/跳转/遥测归因全部基于真实身份,无需逐出口修补。

## UT

新增 CreateSessionInnerCorrectElement001/002:覆盖系统调用方不纠正、非 hap 调用方不纠正两条路径。

## 兼容性

- 合法应用 element 本就等于真实包名,纠正为 no-op,零行为变化
- anco/投播/系统组件场景不受影响
- 唯一行为变化:传入他人包名的异常/恶意调用,其会话归属被纠正为真实身份(TMG 评审已裁定划入兼容范畴)

Close #2779

See merge request: openharmony/multimedia_av_session!3385
2026-08-22 15:56:31 +08:00
红袍小恶魔 df9bdecb6d 修复AVSession伪造ElementName导致任意指向WantAgent的安全问题
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-08-21 13:27:08 +08:00
xuhy2 53529563ce update: 更新文件 avsession_service.cpp
Signed-off-by: xuhy2 <xuhuanyu2@huawei.com>
2026-08-20 16:36:50 +08:00
xuhy ddd02c4740 revised notifyremotedistributessessioncontrollerschanged
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-20 15:47:02 +08:00
红袍小恶魔 45bd7d8012 修复 getDistributedSessionController 权限校验并补充相关日志
- HandleGetDistributedSessionControllersInner 权限校验由 CHECK_SYSTEM_PERMISSION
  改为 CHECK_MEDIA_RESOURCES_PERMISSION,与接口声明的
  @permission ohos.permission.MANAGE_MEDIA_RESOURCES 对齐,并补充
  HISYSEVENT_SECURITY 审计日志。
- GetSessionDescriptorsBySessionId 的 HISYSEVENT_SECURITY 改用本地 uid/pid。
- 调整 STATE_DISCONNECTED 缩进格式。

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-08-19 10:27:37 +08:00
xuhy 078c423e38 xiufu ut
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-14 19:01:34 +08:00
openharmony_ci 2b9e29994d !3356 merge master1 into master
chejiaudiozone812

Created-by: xuhy2
Commit-by: xuhy2;xuhy
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/multimedia_av_session!3356
2026-08-13 18:56:40 +08:00
xuhy2 63ce3769b6 update: 更新文件 avsession_service.cpp
Signed-off-by: xuhy2 <xuhuanyu2@huawei.com>
2026-08-13 16:08:40 +08:00
xuhy 3624c8309a r
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-13 15:15:36 +08:00
xuhy d9ade4eb87 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-13 14:33:33 +08:00
xuhy b7ec57c786 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-12 20:03:45 +08:00
xiyingxin be49eaafdb fix avsession设置关键进程
o-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
2026-08-12 14:18:14 +08:00
xuhy 8c3821b98d revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-10 19:51:49 +08:00
xuhy f8e96211d6 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-10 18:13:18 +08:00
xuhy 5d0398e79e revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-10 17:48:47 +08:00
xuhy d762f61611 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-10 16:43:14 +08:00
xuhy 0fc996fb20 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-08-08 15:14:14 +08:00
openharmony_ci 75cb61e9cf !3326 merge security-fix-lyc into master
修复avsession模块多项并发安全问题(issue #2578部分项)

Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: ## 关联 Issue

fix #2728

本 PR 修复 issue #2728 所列全部 13 个并发缺陷项(含第 7 项既有 ABBA 死锁),合并后请关闭该 issue。

## 修改内容

**services/session/server/ 服务核心层**
- **AVRouterImpl**:`castHandleToInfoMap_`/`providerManagerMap_` 全路径加锁;抽取 `GetCastProvider`/`GetHwProvider` 两个私有帮助函数,统一"锁内取 shared_ptr 快照、锁外调用"(14+3 处调用点收敛);`Init`/`Release` 的 SDK 调用全部移出锁外,仅赋值/置空在锁内;listener 回调锁外或 EventHandler 异步执行,消除锁序反转;修复 `OnCastStateChange` 持 `servicePtrLock_` 调 `checkEnableCast` 的 ABBA 死锁(快照后锁外调用)
- **HwCastProvider**:监听器列表遍历改"锁内取快照、锁外回调";`QueryCastSessionId` 补 `mutexLock_`
- **SoftbusSessionManager**:`ObtainPeerDeviceId` 补 `socketLock_`,`operator[]` 改 `find`(避免隐式插入默认项)
- **AVSessionUsersManager**:`GetContainerFromAll` 补 `userLock_`,消除惰性初始化竞争导致的会话丢失
- **AVSessionService**:`UpdateTopSession` 锁内取 `topSession_` 的 sptr 副本,消除锁外读 UAF
- **MigrateAVSessionProxy**:心跳/检查 worker 锁内取 `deviceId_` 快照

**services/session/adapter/**
- **AppManagerAdapter**:新增 `appStateChangeObserverLock_`,observer 快照后锁外调用

**frameworks/js/napi(ArkTS 绑定)**
- **NapiAVSession(握手按调用私有化)**:`SetAVPlaybackState` 改用 `PlaybackStateSyncContext{mtx,cv,ready,ret}`,删除 5 个进程级 static,根治跨会话返回码串扰;原生调用保持锁内执行(慢 IPC 不误超时),async 侧谓词等待 1s 有界预算;postTask 失败立即定死结果
- **NapiAVSession(静态暂存指针)**:新增 `napiAVSessionLock_` 保护 `napiAVSession_`,`NewInstance`/`ReCreateInstance` 锁内仅做指针赋值/快照,JS/IPC 调用全部锁外,无死锁风险

**interfaces + frameworks/common**
- **AVSessionPixelMap**:`bufferLock_` 改 `mutable`,`Marshalling` 加锁

**utils/**
- **HashCalculator**:全局 `g_context` 改 `static thread_local`,消除跨线程摘要互相破坏
- **AVSessionRadar**:新增 `deviceInfoLock_` 保护设备 id 惰性初始化与清空

## 自测

- 全部修改均为锁保护/快照/发布顺序类小步改动,已逐文件复查 diff 并做锁序审计(与现状代码组合无死锁)
- 建议在构建环境执行:avsession 相关 UT/FUZZ,以及 `CASTPLUS_CAST_ENGINE_ENABLE`、`DSOFTBUS_ENABLE` 两种开关组合编译

See merge request: openharmony/multimedia_av_session!3326
2026-08-07 18:20:25 +08:00
xiyingxin 0eb8c1b7ec fix notifysystemui checkenable before
Co-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
2026-08-05 15:47:50 +08:00
红袍小恶魔 c43e48f721 修复avsession模块多项并发安全问题(issue #2578部分项)
针对issue #2578中services/napi/interfaces/utils层的并发缺陷进行修复:
- No.07/08 AVRouterImpl: castHandleToInfoMap_/providerManagerMap_全路径加锁,抽取
  GetCastProvider/GetHwProvider统一锁内取shared_ptr快照;Init/Release的SDK调用
  全部移出锁外,仅赋值/置空在锁内;修复OnCastStateChange持servicePtrLock_调用
  checkEnableCast形成的既有ABBA死锁(快照后锁外调用)
- No.09 HwCastProvider: 监听器遍历改锁内取快照+锁外回调,QueryCastSessionId加锁
- No.10 SoftbusSessionManager: ObtainPeerDeviceId加socketLock_,operator[]改find
- No.11 AVSessionUsersManager::GetContainerFromAll补userLock_,消除惰性初始化竞争
- No.13 UpdateTopSession锁内取topSession_的sptr副本,消除锁外读UAF
- No.16 MigrateAVSessionProxy心跳worker锁内取deviceId_快照
- No.17 AppManagerAdapter新增appStateChangeObserverLock_,快照+锁外调用
- No.20 NapiAVSession的SetAVPlaybackState握手按调用私有化(PlaybackStateSyncContext
  含mtx/cv/ready/ret),删除5个进程级static,消除跨会话返回码串扰;原生调用保持锁内
  执行,async侧谓词等待1s有界预算;postTask失败立即定死结果
- No.21 新增napiAVSessionLock_保护napiAVSession_,NewInstance/ReCreateInstance
  锁内仅做指针赋值/快照,JS/IPC调用全部锁外
- No.24 AVSessionPixelMap::Marshalling加锁(bufferLock_改mutable)
- No.25 HashCalculator全局g_context改static thread_local,消除跨线程摘要破坏
- No.26 AVSessionRadar新增deviceInfoLock_保护设备id惰性初始化与清空

注: issue中No.01-06(PcmCastSession castLock_组)及pcmCastSession_附加项不在本次
提交范围,将后续单独提交;No.12/14/15/18/19/22/23经核实当前代码已修复,无需变更。

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-08-02 18:39:28 +08:00
openharmony_ci 4c3488d008 !3301 merge 0728ddd into master
add security warnings fix 0728

Created-by: zhang-minmin-jason
Commit-by: zhang-minmin-jason
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/multimedia_av_session!3301
2026-07-31 20:13:33 +08:00
zhang-minmin-jason f682f56c4b add security warnings fix 0728
Signed-off-by: zhang-minmin-jason <zhangminmin9@h-partners.com>
2026-07-31 11:40:36 +08:00
zhang-minmin-jason 56d2abe83b add security warnings 0729 to 0730
Signed-off-by: zhang-minmin-jason <zhangminmin9@h-partners.com>
2026-07-30 16:59:09 +08:00
zhang-minmin-jason 07cc21798f add car feature head guards
Signed-off-by: zhang-minmin-jason <zhangminmin9@h-partners.com>
2026-07-24 17:43:54 +08:00
openharmony_ci 4de64847f7 !3281 merge 信息泄露 into master
fix 信息告警

Created-by: xiyingxin
Commit-by: xiyingxin
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/multimedia_av_session!3281
2026-07-24 14:06:52 +08:00
openharmony_ci 03fed977fa !3276 merge 空指针解引用 into master
fix 空指针解引用

Created-by: xiyingxin
Commit-by: xiyingxin
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/multimedia_av_session!3276
2026-07-24 14:06:03 +08:00
xiyingxin d43c6695ee fix 信息告警
Co-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
2026-07-23 21:44:24 +08:00
openharmony_ci 448e87856c !3271 merge 内存安全 into master
fix 资源泄露

Created-by: xiyingxin
Commit-by: xiyingxin
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/multimedia_av_session!3271
2026-07-23 21:19:44 +08:00
openharmony_ci b34c4719e5 !3264 merge 悬空指针 into master
fix 并发告警

Created-by: xiyingxin
Commit-by: xiyingxin
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/multimedia_av_session!3264
2026-07-23 21:19:12 +08:00
xiyingxin 6559e31a09 fix 空指针解引用
Co-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
2026-07-23 20:36:08 +08:00
xiyingxin 246ea9dcc7 fix 资源泄露
Co-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
2026-07-23 14:21:10 +08:00
xiyingxin 44e06a6fed fix 内存安全
Co-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
2026-07-23 14:09:51 +08:00
xiyingxin 4815eaa49f fix 并发告警
Co-Authored-By: AgentCo-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
2026-07-22 22:23:56 +08:00
xuhy 9181441362 revised
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-07-22 15:17:43 +08:00
xuhy ad3de75c8a xiufu nullptr
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-07-21 20:34:35 +08:00
xuhy 2cd3467c56 default image size
Co-Authored-By: Agent
Signed-off-by: xuhy <xuhuanyu2@huawei.com>
2026-07-16 19:14:46 +08:00
openharmony_ci 6db681576f !3200 merge 0702check into master
add userId for super laucher proxy

Created-by: zhang-minmin-jason
Commit-by: 张敏敏
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/multimedia_av_session!3200
2026-07-10 17:21:52 +08:00
张敏敏 81a5cef305 add userId for super laucher proxy
Signed-off-by: 张敏敏 <zhangminmin9@huawei.com>
2026-07-10 15:22:38 +08:00
zhang-minmin-jason efba1e8116 reduce log 0708
Signed-off-by: zhang-minmin-jason <zhangminmin9@h-partners.com>
2026-07-08 17:32:56 +08:00
红袍小恶魔 9420b7c45f 文件读取保护
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-07-06 18:14:28 +08:00
红袍小恶魔 5be8826b43 优化重启后第一次解锁清理时机
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-07-06 10:53:20 +08:00
红袍小恶魔 4ef62b5a42 重构AVSessionSysEvent与AVSessionStorageEvent共享Timer实例
新增AVSessionTimerHolder单例,持有单个Utils::Timer实例(EventStatisticTimer),
让AVSessionSysEvent与AVSessionStorageEvent的周期任务复用同一后台线程,
避免每个周期任务各起一个线程。

Utils::Timer::Register基于进程级单调递增计数器返回唯一timerId,
Unregister按id精确删除互不影响,共享单例方案可行。

主要改动:
- 新增AVSessionTimerHolder(utils/include、utils/src),Register失败时
  将正数错误码TIMER_ERR_DEAL_FAILED与0统一映射为0返回,修正原先
  static_cast<int32_t>(timerId)<0永远不成立导致假成功的bug。
- AVSessionSysEvent/AVSessionStorageEvent改为通过holder注册任务,
  不再各自创建Utils::Timer实例;Unregister/Shutdown用CHECK_AND_RETURN_LOG
  提前返回降低圈复杂度。
- STORAGE_EVENT_INIT/UNINIT、HISYSEVENT_UNREGISTER去掉调用括号,
  与已有HISYSEVENT_REGITER风格保持一致。
- 补充TimerHolder相关UT,覆盖懒加载Setup、复用、Unregister/Shutdown
  早返回与幂等等分支;修正avsession_storage_event_test.cpp末尾重复#endif
  的编译错误。

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-07-01 17:31:09 +08:00
openharmony_ci fd1aad2e77 !3175 merge master into master
[新需求]: 锁屏后首次解锁清理av_session缓存目录优化磁盘存储

Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: closes openharmony/multimedia_av_session#2601

磁盘存储优化:在 COMMON_EVENT_USER_UNLOCKED(用户el2凭据存储解锁、每用户每重启仅触发一次)时按userid区分清理av_session/cache下image.dat文件,存活session的本地/cast图片按sessionId保留。补充全分支覆盖UT。

See merge request: openharmony/multimedia_av_session!3175
2026-06-28 16:31:17 +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
xiyingxin 2ee47644e2 fix hanlesessionrelease通过userid查询keyeventsessionlist
Co-Authored-By: Agent
Signed-off-by: xiyingxin <xiyingxin@h-partners.com>
2026-06-27 11:46:33 +08:00
openharmony_ci 2a615c08e3 !3169 merge storage-event-report into master
新增AVSession磁盘缓存文件统计上报能力

Created-by: devil_red
Commit-by: 红袍小恶魔
Merged-by: openharmony_ci
Description: 关联Issue
close #2583

变更说明
新增 AVSessionStorageEvent 单例,统计 AVSession 写入/删除的缓存文件(专辑封面、投屏图标、队列封面等),通过 HiSysEvent 定期上报磁盘占用情况,用于监控和定位磁盘泄露问题。

主要功能
新增 AVSessionStorageEvent 类(utils/),按 userId 分桶管理文件记录
RecordFileWrite/RecordFileDelete 在 6 个接入点埋点,记录文件写入/删除
24h 定时上报 + 单用户满 100 条触发立即上报
上报格式为 JSON 数组:首元素为磁盘扫描汇总(TOTAL/LOCAL/CAST/HISTORY/RECORD 共 12 字段),后续每元素为单文件明细(路径/大小/包名)
汇总数据来自磁盘扫描,覆盖升级遗留和服务重启场景
明细数据来自内存记账,便于结合日志定位磁盘泄露源
检视意见修复
修复空指针解引用和UAF风险(BuildJsonParam/ReportStorageStatisticsForUser)
AddFileInfo/RemoveFileInfo 简化为纯map操作,去除冗余聚合字段
容器改用 unordered_map,去除 fileName_ 冗余字段
宏改用 inline 函数转发,避免多次求值风险
修复 STORAGE_PROFITE 拼写错误为 STORAGE_PROFILE
GetTotalFileCount/GetCacheFileCount 返回类型改为 size_t
修复重复调用 size() 和 GetBundleNameFromUid 的性能问题
移除未使用的 bundleName 变量,移除暴露内部map的 GetFileInfoMap
满100条触发上报时不再重置全局定时器
定时器callback先重排再上报,避免上报异常导致定时器永久停止
BUILD.gn 注册新增的 avsession_storage_event.cpp 源文件

See merge request: openharmony/multimedia_av_session!3169
2026-06-27 10:15:35 +08:00
openharmony_ci da31831e2c !3137 merge 0615log into master
reduce log 0615

Created-by: zhang-minmin-jason
Commit-by: zhang-minmin-jason
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/multimedia_av_session!3137
2026-06-26 18:18:40 +08:00
zhangzijie1007 5e6cd95a07 commit hiplay大屏投播后,低概率出现对端黑屏
Signed-off-by: zhangzijie1007 <zhangzijie25@huawei.com>
2026-06-23 20:47:20 +08:00
红袍小恶魔 0ae38c653a 新增AVSession磁盘缓存文件统计上报能力
新增AVSessionStorageEvent单例,统计AVSession写入/删除的缓存文件(专辑封面、投屏图标、队列封面等),通过HiSysEvent定期上报磁盘占用情况,用于监控和定位磁盘泄露问题。

主要功能:
- 新增AVSessionStorageEvent类(utils/),按userId分桶管理文件记录
- RecordFileWrite/RecordFileDelete在6个接入点埋点,记录文件写入/删除
- 24h定时上报 + 单用户满100条触发立即上报
- 上报格式为JSON数组:首元素为磁盘扫描汇总(TOTAL/LOCAL/CAST/HISTORY/RECORD共12字段),后续每元素为单文件明细(路径/大小/包名)
- 汇总数据来自磁盘扫描,覆盖升级遗留和服务重启场景
- 明细数据来自内存记账,便于结合日志定位磁盘泄露源

检视意见修复:
- 修复空指针解引用和UAF风险(BuildJsonParam/ReportStorageStatisticsForUser)
- AddFileInfo/RemoveFileInfo简化为纯map操作,去除冗余聚合字段
- 容器改用unordered_map,去除fileName_冗余字段(与map key重复)
- 宏改用inline函数转发,避免多次求值风险
- 修复STORAGE_PROFITE拼写错误为STORAGE_PROFILE
- GetTotalFileCount/GetCacheFileCount返回类型改为size_t
- 修复重复调用size()和GetBundleNameFromUid的性能问题
- 移除未使用的bundleName变量,移除暴露内部map的GetFileInfoMap
- 满100条触发上报时不再重置全局定时器(避免影响其他用户的24h周期)
- 定时器callback先重排再上报,避免上报异常导致定时器永久停止
- BUILD.gn注册新增的avsession_storage_event.cpp源文件

Co-Authored-By: Agent
Signed-off-by: 红袍小恶魔 <luyuchen3@huawei.com>
2026-06-23 11:13:10 +08:00
gcw_39kJqSlM b5d41cd342 Merge branch 'wwccyy' of git@gitcode.com:gcw_39kJqSlM/multimedia_av_session.git into 'master'
# Conflicts:
#   conflict services/session/server/avsession_item.cpp
#   conflict services/session/server/avsession_service.h

Signed-off-by: wanchuangye <wanchuangye@huawei.com>
2026-06-18 14:32:57 +08:00