Commit Graph

25687 Commits

Author SHA1 Message Date
openharmony_ci 56a7eabdfe !19670 merge fix into master
fix mem leak of obs manager

Created-by: zqz979
Commit-by: zqz979
Merged-by: openharmony_ci
Description: **IssueNo**:

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:
![image.png](https://raw.gitcode.com/user-images/assets/4421702/27e481e2-1f6b-473a-a7a9-f87802ffa8be/image.png 'image.png')
**XTS Result**:

### 是否已执行L0用例
- [x] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19670
2026-06-23 21:13:13 +08:00
openharmony_ci 2bbd3b7bf7 !19664 merge master into master
add sendToData

Created-by: SoftSquirrel
Commit-by: SoftSquirrel
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/interface_sdk-js/issues/24938

**Description**:add sendToData

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |    OK      |
| 成员变量进行赋值或创建需要排查并发                               |     OK     |
| 谨慎在lambda表达式中使用引用捕获                                |      OK    |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |    OK      |
| map\vector\list\set等stl模板类使用时需要排查并发                |     OK     |
| 谨慎考虑加锁范围                                               |     OK     |
| 在IPC通信中谨慎使用同步通信方式                                 |     OK     |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |    OK      |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |    OK      |
| 禁止多个独立创建的智能指针管理同一地址                           |     OK     |
| 禁止在析构函数中抛异步任务                                      |     OK     |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |     OK     |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |     OK     |
| 禁止接口返回局部变量引用                                        |      OK    |
| 禁止在信号函数中加锁                                            |      OK    |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |     OK     |
| 禁止将同一个cpp编译在不同的so中                                 |     OK     |





**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |     OK     |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |    OK      |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |   OK       |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |     OK     |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |   OK       |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |    OK      |
| readParcelable获取的对象使用前需要判空                            |     OK     |
| 分配和释放内存的函数需要成对出现                                   |     OK     |
| 申请内存后异常退出前需要及时进行内存释放                            |    OK      |
| 内存申请前必须对内存大小进行合法性校验                              |    OK      |
| 内存分配后必须判断是否成功                                         |     OK     |
| 禁止使用realloc、alloca函数                                       |      OK    |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |   OK       |
| 禁止打印内存地址                                                  |      OK    |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |     OK     |
| 禁止对有符号整数进行位操作符运算                                    |     OK     |
| 禁止对指针进行逻辑或位运算                                         |    OK      |
| 循环次数如果收外部数据控制,需要检验其合法性                         |     OK     |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |     OK     |
| 谨慎使用不可重入函数                                               |      OK    |
| 必须检查安全函数的返回值,并进行正确处理                             |    OK      |
| 禁止仅通过TokenType类型判断绕过权限校验                             |     OK     |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [x] 已验证
- [ ] 不涉及。如不涉及,请写明理由

See merge request: openharmony/ability_ability_runtime!19664
2026-06-23 20:57:45 +08:00
openharmony_ci d76ec9772b !19593 merge feat/nativemodule-load-errinfo into master
feat: 补全NativeModule加载失败的errInfo传递

Created-by: zhang_hao_zheng
Commit-by: zhang_hao_zheng
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15447
**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |    √     |
| 成员变量进行赋值或创建需要排查并发                               |      √   |
| 谨慎在lambda表达式中使用引用捕获                                |        √ |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |       √  |
| map\vector\list\set等stl模板类使用时需要排查并发                |        √ |
| 谨慎考虑加锁范围                                               |       √  |
| 在IPC通信中谨慎使用同步通信方式                                 |       √  |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |       √  |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |        √ |
| 禁止多个独立创建的智能指针管理同一地址                           |        √ |
| 禁止在析构函数中抛异步任务                                      |       √  |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |        √ |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |       √  |
| 禁止接口返回局部变量引用                                        |       √  |
| 禁止在信号函数中加锁                                            |       √  |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |        √ |
| 禁止将同一个cpp编译在不同的so中                                 |       √  |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |        √ |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |       √  |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |   √      |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |      √   |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |       √  |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |       √  |
| readParcelable获取的对象使用前需要判空                            |        √ |
| 分配和释放内存的函数需要成对出现                                   |       √  |
| 申请内存后异常退出前需要及时进行内存释放                            | √        |
| 内存申请前必须对内存大小进行合法性校验                              |      √   |
| 内存分配后必须判断是否成功                                         |        √ |
| 禁止使用realloc、alloca函数                                       |        √ |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |       √  |
| 禁止打印内存地址                                                  |        √ |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |        √ |
| 禁止对有符号整数进行位操作符运算                                    |       √  |
| 禁止对指针进行逻辑或位运算                                         |       √  |
| 循环次数如果收外部数据控制,需要检验其合法性                         |       √  |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |       √  |
| 谨慎使用不可重入函数                                               |        √ |
| 必须检查安全函数的返回值,并进行正确处理                             |        √ |
| 禁止仅通过TokenType类型判断绕过权限校验                             |        √ |

**TDD Result**:
pass
**XTS Result**:
pass
### 是否已执行L0用例
- [√] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19593
2026-06-23 20:32:10 +08:00
openharmony_ci 827621754a !19667 merge fix/skill_perm_skip into master
fix(skill): skip permission check when caller holds START_INVISIBLE_ABILITY

Created-by: RuiChen_01
Commit-by: RuiChen_01
Merged-by: openharmony_ci
Description: **IssueNo**:

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19667
2026-06-23 19:54:43 +08:00
openharmony_ci a75ab3f874 !19657 merge bugfix/free-install-agent into master
bugfix: free-install agent permissions

Created-by: yangxuguang-huawei
Commit-by: yangxuguang-huawei
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15504

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |      ok    |
| 成员变量进行赋值或创建需要排查并发                               |          ok|
| 谨慎在lambda表达式中使用引用捕获                                |          ok|
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          ok|
| map\vector\list\set等stl模板类使用时需要排查并发                |          ok|
| 谨慎考虑加锁范围                                               |          ok|
| 在IPC通信中谨慎使用同步通信方式                                 |          ok|
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          ok|
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          ok|
| 禁止多个独立创建的智能指针管理同一地址                           |          ok|
| 禁止在析构函数中抛异步任务                                      |          ok|
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          ok|
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          ok|
| 禁止接口返回局部变量引用                                        |          ok|
| 禁止在信号函数中加锁                                            |          ok|
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          ok|
| 禁止将同一个cpp编译在不同的so中                                 |          ok|

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          ok|
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          ok|
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |       ok   |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          ok|
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 | ok         |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          ok|
| readParcelable获取的对象使用前需要判空                            |          ok|
| 分配和释放内存的函数需要成对出现                                   |          ok|
| 申请内存后异常退出前需要及时进行内存释放                            |    ok      |
| 内存申请前必须对内存大小进行合法性校验                              |          ok|
| 内存分配后必须判断是否成功                                         |          ok|
| 禁止使用realloc、alloca函数                                       |          ok|
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          ok|
| 禁止打印内存地址                                                  |          ok|
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          ok|
| 禁止对有符号整数进行位操作符运算                                    |          ok|
| 禁止对指针进行逻辑或位运算                                         |          ok|
| 循环次数如果收外部数据控制,需要检验其合法性                         |          ok|
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          ok|
| 谨慎使用不可重入函数                                               |          ok|
| 必须检查安全函数的返回值,并进行正确处理                             |          ok|
| 禁止仅通过TokenType类型判断绕过权限校验                             |          ok|

**TDD Result**:
已验证OK

**XTS Result**:
已验证OK

### 是否已执行L0用例
- [x] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19657
2026-06-23 19:29:57 +08:00
xuzheheng 33fdab821a fix edm
Signed-off-by: xuzheheng <xuzheheng2@h-partners.com>

🤖‍ AI[0%] 👌 AI Adopted[0%] 🧑 Human[100%]

Change-Id: Iee3549eb9108037f5e5be7443d851c41af32118c
2026-06-23 18:51:41 +08:00
zqz979 911203bb86 fix
Signed-off-by: zqz979 <zhouqingze@h-partners.com>
2026-06-23 16:41:11 +08:00
wangzhen 2f6639c8fc add startAbilityByCall fail event
Co-Authored-By: Agent

Signed-off-by: wangzhen <wangzhen416@huawei.com>

🤖‍ AI[97%] 👌 AI Adopted[97%] 🧑 Human[3%]
Co-authored-by: claude (glm-5.2) <ai@local>

Change-Id: If93987309f0191cdfbd2bc5216ab1a6c1c8d4276
2026-06-23 16:34:40 +08:00
openharmony_ci bf60f0455b !19666 merge master into master
Message:告警修复

Created-by: zhengdongdong12
Commit-by: zhengdongdong12
Merged-by: openharmony_ci
Description: **IssueNo**: https://gitcode.com/openharmony/ability_ability_runtime/issues/15508

**Description**: 告警修复

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |     OK     |
| 成员变量进行赋值或创建需要排查并发                               |    OK      |
| 谨慎在lambda表达式中使用引用捕获                                |     OK     |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |    OK      |
| map\vector\list\set等stl模板类使用时需要排查并发                |   OK       |
| 谨慎考虑加锁范围                                               |    OK      |
| 在IPC通信中谨慎使用同步通信方式                                 |   OK       |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |     OK     |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |   OK       |
| 禁止多个独立创建的智能指针管理同一地址                           |   OK       |
| 禁止在析构函数中抛异步任务                                      |    OK      |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |    OK      |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |     OK     |
| 禁止接口返回局部变量引用                                        | OK         |
| 禁止在信号函数中加锁                                            |    OK      |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |     OK     |
| 禁止将同一个cpp编译在不同的so中                                 |    OK      |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |    OK      |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |    OK      |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |     OK     |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |     OK     |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |    OK      |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |     OK     |
| readParcelable获取的对象使用前需要判空                            |    OK      |
| 分配和释放内存的函数需要成对出现                                   |     OK     |
| 申请内存后异常退出前需要及时进行内存释放                            |    OK      |
| 内存申请前必须对内存大小进行合法性校验                              |      OK    |
| 内存分配后必须判断是否成功                                         |    OK      |
| 禁止使用realloc、alloca函数                                       |  OK        |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |    OK      |
| 禁止打印内存地址                                                  |  OK        |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |     OK     |
| 禁止对有符号整数进行位操作符运算                                    |   OK       |
| 禁止对指针进行逻辑或位运算                                         |   OK       |
| 循环次数如果收外部数据控制,需要检验其合法性                         |     OK     |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |     OK     |
| 谨慎使用不可重入函数                                               |  OK        |
| 必须检查安全函数的返回值,并进行正确处理                             |      OK    |
| 禁止仅通过TokenType类型判断绕过权限校验                             |    OK      |

**TDD Result**: OK

**XTS Result**: OK

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19666
2026-06-23 16:17:41 +08:00
zhang_hao_zheng 683ca4c25a fix: sync mock LoadNativeModule signature with loadErrInfo
同步 frameworks_kits_appkit_native_test 的 LoadNativeModule mock
签名到 arkui_napi issue-15447 新增的 loadErrInfo 参数(含 relativePath
重命名),避免 tdd 编译时"LoadNativeModule does not match any
declaration in NativeModuleManager" 报错。

Signed-off-by: zhang_hao_zheng <zhanghaozheng2@h-partners.com>
Co-Authored-By: Agent
Change-Id: I75ae1878b1aa4f08a188f9fc3f767189401e5148
2026-06-23 14:58:18 +08:00
xhz-sz ca687ccb8e fix terminating
Signed-off-by: xhz-sz <xiehuandong@huawei.com>
2026-06-23 11:43:18 +08:00
shu-xin0115 402d739cb0 obs uri check
Signed-off-by: shu-xin0115 <shuxin15@h-partners.com>
Co-Authored-By: Agent
2026-06-23 10:57:12 +08:00
acdemicJava 476e4c2620 优化appfreeze代码
Co-Authored-By: Agent
Signed-off-by: acdemicJava <yinhuiling@h-partners.com>
2026-06-23 10:36:18 +08:00
RuiChen_01 6911cd1c55 fix(skill): skip permission check when caller holds START_INVISIBLE_ABILITY
Mirror the package-startup visibility gate in SkillExecuteManager::CheckSkillPermission:
if the caller already holds ohos.permission.START_INVISIBLE_ABILITY, skip the per-skill
permission loop. This aligns skill execution with the existing ability-start policy
and avoids denying a privileged caller that legitimately can start invisible abilities.

The skip is placed after the SA-caller gate so non-SA callers are still rejected.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-23 09:51:09 +08:00
zhengdongdong12 601339216d Message:告警修复
Signed-off-by: zhengdongdong12 <zhengchengkai@huawei.com>
2026-06-23 09:25:59 +08:00
SoftSquirrel 00aa918cb4 Issue:#24938
Description:add sendToData
Sig: SIG_ApplicaitonFramework
Feature or Bugfix:Bugfix
Binary Source: No

Signed-off-by: SoftSquirrel <1690027871@qq.com>
2026-06-22 18:12:07 -07:00
denganliang 382f8fe2e7 feat: support languageEnv for jsheap snapshot dump with UT coverage
Add languageEnv parameter (dynamic/static/hybrid) for JsHeap snapshot dump,
enabling ETS runtime to also dump heap snapshots. Remove JS-only restriction
on snapshot dump path. Add UT coverage for all branches.

Co-Authored-By: Agent
Signed-off-by: denganliang <denganliang3@h-partners.com>
Change-Id: I9784465f1def0d74165d3d1804a36a9b489fe0e0
2026-06-22 19:50:31 +08:00
yangxuguang-huawei 02aaf6b63b bugfix: free-install agent permissions
Co-Authored-By: Agent

Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com>
Change-Id: I24c15803dc5464c1e70bf2aca6a711dcfc90a7ff
2026-06-22 18:38:56 +08:00
xhz-sz e787774b6f fix terminating
Signed-off-by: xhz-sz <xiehuandong@huawei.com>
2026-06-22 17:33:18 +08:00
openharmony_ci 02cfc9ac58 !19635 merge feature-0618 into master
优化appfreeze屏蔽

Created-by: acdemicJava
Commit-by: acdemicJava
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15490
**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19635
2026-06-22 17:26:22 +08:00
openharmony_ci 270703946c !19647 merge 0622_fix into master
0622_蓝黄一致性修改

Created-by: Luobniz21
Commit-by: Luobniz21
Merged-by: openharmony_ci
Description: **IssueNo**:

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |    √      |
| 成员变量进行赋值或创建需要排查并发                               |   √       |
| 谨慎在lambda表达式中使用引用捕获                                |   √       |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |  √        |
| map\vector\list\set等stl模板类使用时需要排查并发                |     √     |
| 谨慎考虑加锁范围                                               |   √       |
| 在IPC通信中谨慎使用同步通信方式                                 |     √     |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |    √      |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |   √       |
| 禁止多个独立创建的智能指针管理同一地址                           |     √     |
| 禁止在析构函数中抛异步任务                                      |    √      |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |  √        |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |    √      |
| 禁止接口返回局部变量引用                                        |     √     |
| 禁止在信号函数中加锁                                            |    √      |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |   √       |
| 禁止将同一个cpp编译在不同的so中                                 |  √        |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |      √    |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |    √      |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              | √         |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |  √        |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |  √        |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |   √       |
| readParcelable获取的对象使用前需要判空                            |     √     |
| 分配和释放内存的函数需要成对出现                                   |      √    |
| 申请内存后异常退出前需要及时进行内存释放                            |      √    |
| 内存申请前必须对内存大小进行合法性校验                              |     √     |
| 内存分配后必须判断是否成功                                         |     √     |
| 禁止使用realloc、alloca函数                                       |      √    |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |   √       |
| 禁止打印内存地址                                                  |     √     |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |   √       |
| 禁止对有符号整数进行位操作符运算                                    |   √      |
| 禁止对指针进行逻辑或位运算                                         |      √    |
| 循环次数如果收外部数据控制,需要检验其合法性                         |       √   |
| 禁止使用内存操作类危险函数,需要使用安全函数                         | √         |
| 谨慎使用不可重入函数                                               |    √      |
| 必须检查安全函数的返回值,并进行正确处理                             |     √     |
| 禁止仅通过TokenType类型判断绕过权限校验                             |    √      |

**TDD Result**:
不涉及
**XTS Result**:
不涉及
### 是否已执行L0用例
- [x] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19647
2026-06-22 15:47:15 +08:00
RuiChen_01 77429990bc fix(insight_intent): fix rdbStore_ data race in BackupRdb
InsightIntentRdbDataMgr::BackupRdb was the only public method that did not
acquire rdbStoreMutex_ before writing the rdbStore_ shared_ptr member.
Concurrent calls from other methods (InsertData / UpdateData / DeleteData* /
QueryDataBeginWithKey) could race on the shared_ptr assignment, causing
undefined behavior. Add the missing lock_guard.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>
2026-06-22 15:31:26 +08:00
openharmony_ci 2fcd76d7b6 !19634 merge master into master
修改GC时间区间判断

Created-by: acdemicJava
Commit-by: acdemicJava
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15489
**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19634
2026-06-22 15:23:31 +08:00
hhd227 55fdf6d498 update: 更新文件 ability_manager_service.cpp
Signed-off-by: hhd227 <huanghaodong9@h-partners.com>
2026-06-22 14:57:29 +08:00
weixin_38774524 a0a9dc73cf refactor: remove renderSession parameter passing
Simplify Window::Create and WindowScene::Init by removing renderSession
parameter. RenderSession is now obtained through Session interface.

Co-Authored-By: yuanwenjun
Signed-off-by: weixin_38774524 <1903700887@qq.com>


revert merge request: refactor: remove renderSession parameter passing

5eb3846216

This revert merge request !19132

revert merge request: refactor: remove renderSession parameter passing

67c7415082

This revert merge request !19643
2026-06-22 14:02:38 +08:00
acdemicJava 3739a97673 优化appfreeze屏蔽
Co-Authored-By: Agent
Signed-off-by: acdemicJava <yinhuiling@h-partners.com>
2026-06-22 13:01:19 +08:00
Luobniz21 8c9e927cf7 0622_fix
Signed-off-by: Luobniz21 <luoyicong@h-partners.com>

# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
#
# Date:      Mon Jun 22 09:07:22 2026 +0800
#
# On branch 0622_fix
# Your branch is up to date with 'origin/0622_fix'.
#
# Changes to be committed:
#	modified:   services/abilitymgr/src/ability_manager_service.cpp
#
2026-06-22 12:41:18 +08:00
openharmony_ci a07d589204 !19643 merge revert-mr-19132-1782010864950-auto into master
refactor: remove renderSession parameter passing

Created-by: weixin_38774524
Commit-by: weixin_38774524
Merged-by: openharmony_ci
Description: **IssueNo**: https://gitcode.com/openharmony/window_window_manager/issues/14889

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19643
2026-06-21 19:47:45 +08:00
RuiChen_01 ed225712eb revert(test): drop skill_execute_manager_test
TDD cannot meaningfully simulate the cross-process IPC re-entrancy that
caused the original deadlock; in-process mocks of the callback never
exercise the actual deadlock path. Meanwhile the test pulls in private
singletons (DECLARE_DELAYED_SINGLETON) whose symbols are not exported
from libabilityms.so, turning the build setup into a maintenance burden.

Lock-ordering correctness is verified by code review of the production
fix (commit e98cc18686) and runtime validation, not by this unit test.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[0%] 👌 AI Adopted[0%] 🧑 Human[0%]
2026-06-21 17:31:34 +08:00
RuiChen_01 434a65b3e4 fix(skill): blacklist Object.prototype member names as skill keys
napi_has_own_property does not catch toString/valueOf/etc. when the
ArkTS class instance already owns those names (injected by the Stage
model base class or by ArkTS compilation). Add an explicit blacklist of
Object.prototype member names plus __proto__ and the legacy dunder
accessors, and reject them in TryLoadSkillEntry and BuildSkillCallArgs
for both JsUIAbility and JsServiceExtension before the own-property
check.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-21 17:14:26 +08:00
openharmony_ci aa478b7bed !19631 merge master0618 into master
AI告警修复

Created-by: dsz2025
Commit-by: duansizhao
Merged-by: openharmony_ci
Description: **IssueNo**:

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由

![image.png](https://raw.gitcode.com/user-images/assets/4421702/7a945420-7e5e-493a-94b0-ab9c8f9e7fb4/image.png 'image.png')


See merge request: openharmony/ability_ability_runtime!19631
2026-06-21 16:38:15 +08:00
openharmony_ci 0c004256f0 !19637 merge fix/skill_param_safe_parse into master
fix: replace std::stoi with strtol to prevent AMS crash

Created-by: RuiChen_01
Commit-by: RuiChen_01
Merged-by: openharmony_ci
Description: **IssueNo**:

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19637
2026-06-21 15:36:10 +08:00
openharmony_ci 228caa934d !19598 merge log into master
fix log

Created-by: xuzheheng
Commit-by: xuzheheng
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15454
**Description**:
fix log
**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |     ok     |
| 成员变量进行赋值或创建需要排查并发                               |   ok       |
| 谨慎在lambda表达式中使用引用捕获                                |   ok       |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |  ok        |
| map\vector\list\set等stl模板类使用时需要排查并发                |    ok      |
| 谨慎考虑加锁范围                                               |       ok   |
| 在IPC通信中谨慎使用同步通信方式                                 |   ok       |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |      ok    |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |      ok    |
| 禁止多个独立创建的智能指针管理同一地址                           |   ok       |
| 禁止在析构函数中抛异步任务                                      |     ok     |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |     ok     |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |    ok      |
| 禁止接口返回局部变量引用                                        |    ok      |
| 禁止在信号函数中加锁                                            |      ok    |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |    ok      |
| 禁止将同一个cpp编译在不同的so中                                 |    ok      |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |     ok     |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |   ok       |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |   ok       |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |     ok     |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |     ok     |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |    ok      |
| readParcelable获取的对象使用前需要判空                            |   ok       |
| 分配和释放内存的函数需要成对出现                                   |    ok      |
| 申请内存后异常退出前需要及时进行内存释放                            |     ok     |
| 内存申请前必须对内存大小进行合法性校验                              |       ok   |
| 内存分配后必须判断是否成功                                         |       ok   |
| 禁止使用realloc、alloca函数                                       |     ok     |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |   ok       |
| 禁止打印内存地址                                                  |   ok       |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |  ok        |
| 禁止对有符号整数进行位操作符运算                                    |     ok     |
| 禁止对指针进行逻辑或位运算                                         |     ok     |
| 循环次数如果收外部数据控制,需要检验其合法性                         |      ok    |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |     ok     |
| 谨慎使用不可重入函数                                               |       ok   |
| 必须检查安全函数的返回值,并进行正确处理                             |     ok     |
| 禁止仅通过TokenType类型判断绕过权限校验                             |    ok      |

**TDD Result**:ok

**XTS Result**:ok

### 是否已执行L0用例
- [ok ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19598
2026-06-21 15:06:56 +08:00
RuiChen_01 b80ed55df4 refactor(skill): extract TryLoadSkillEntry to slim LoadSkillFunction
LoadSkillFunction grew past the 50-line cap after adding the own-property
check. Lift the TryLoadEntry lambda out into a private TryLoadSkillEntry
member on JsUIAbility and JsServiceExtension so both stay under the limit.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-21 14:29:42 +08:00
RuiChen_01 f11ed67261 fix(skill): pass napi_value key to napi_has_own_property
Previous fix incorrectly passed const char* as the key argument of
napi_has_own_property, whose signature requires napi_value. Build the
string napi_value via napi_create_string_utf8 before the check so the
own-property lookup compiles and behaves as intended.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-21 12:20:57 +08:00
weixin_38774524 ad705afe23 refactor: remove renderSession parameter passing
Simplify Window::Create and WindowScene::Init by removing renderSession
parameter. RenderSession is now obtained through Session interface.

Co-Authored-By: yuanwenjun
Signed-off-by: weixin_38774524 <1903700887@qq.com>


revert merge request: refactor: remove renderSession parameter passing

5eb3846216

This revert merge request !19132
2026-06-21 11:01:05 +08:00
wanghaha1204 47d4aa01e3 so加载异常信息增强
Issue:https://gitcode.com/openharmony/arkcompiler_ets_runtime/issues/13180

Signed-off-by: wanghaha1204 <wangxiaojia5@h-partners.com>

Co-Authored-By: Agent
2026-06-21 09:13:39 +08:00
RuiChen_01 fbc3a3e871 fix(skill): restrict skill function lookup to own properties
Add napi_has_own_property checks in LoadSkillFunction and
BuildSkillCallArgs for both JsUIAbility and JsServiceExtension
to prevent caller-controlled functionName/skillArg keys from
resolving to Object.prototype members (e.g. constructor, toString,
__proto__) via the prototype chain.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-20 17:33:01 +08:00
openharmony_ci 728e863750 !19639 merge fix_vector into master
fix JSUtils::Convert2Value

Created-by: ProfaneAria
Commit-by: 任国军
Merged-by: openharmony_ci
Description: **IssueNo**:

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19639
2026-06-20 17:15:46 +08:00
RuiChen_01 04f9a656e3 fix(test): compile skill_execute_manager.cpp into test binary
SkillExecuteManager uses DECLARE_DELAYED_SINGLETON, which makes its
default constructor private. The symbol is hidden in libabilityms.so,
so linking the test against the shared library fails with
"undefined symbol SkillExecuteManager::SkillExecuteManager()".

Add the production source to the test's sources so the constructor is
defined locally, mirroring the ability_auto_startup_data_manager_test
pattern. Pull in the mock bundle/app-manager libs and perm_verification
dep that the source file transitively needs.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-20 16:10:51 +08:00
RuiChen_01 e98cc18686 fix(skill): release lock before invoking execute-done callback
ExecuteSkillDone and OnTimeout previously invoked callback->OnExecuteDone
under mutex_. Since ffrt::mutex is non-recursive, a synchronous re-entry
from the remote side back into SkillExecuteManager deadlocked the event
handler thread. Even without re-entry, holding the lock across an outbound
IPC while the business process is unresponsive stalls every other
SkillExecuteManager operation.

Move the callback invocation outside the critical section: flip the record
state, run cleanup (RemoveSkillExecuteTimeoutLocked, RemoveRecord) under
the lock, then drop the lock before issuing OnExecuteDone. Collapse
OnTimeout's two-phase critical section into one to remove the TOCTOU
window.

Add skill_execute_manager_test covering happy paths, missing-record and
state-mismatch failures, duplicate seq, post-done timeout, and the two
re-entrancy scenarios that would have deadlocked pre-fix.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-20 14:39:31 +08:00
任国军 d2f510cb75 fix JSUtils::Convert2Value
Co-Authored-By: Agent
Signed-off-by: 任国军 <renguojun1@h-partners.com>
2026-06-20 11:24:13 +08:00
openharmony_ci 5164d842f9 !19638 merge fix/skill_permission_transfer into master
fix(skill): enforce SA caller and skill permission checks

Created-by: RuiChen_01
Commit-by: RuiChen_01
Merged-by: openharmony_ci
Description: **IssueNo**:

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19638
2026-06-19 19:39:15 +08:00
RuiChen_01 0791b8eef0 refactor(skill): carry callerTokenId via AbilityRequest instead of Want
Permission checks (CheckStaticCfgPermission,
CheckCallServiceExtensionPermission, CheckStartByCallPermission) used to
read SKILL_EXECUTE_PARAM_CALLER_TOKEN_ID straight out of the Want that
flows through GenerateAbilityRequest. Because Want is attacker
controlled on the public StartAbility paths, a forged callerTokenId
could route the skill-specific permission branches in
PermissionVerification (CheckSkillStartByCallPermission,
JudgeInvisibleAndBackground) and borrow another app's identity.

Add a dedicated AbilityRequest::skillCallerTokenId field populated
solely by the trusted skill entrypoints:
- ExecuteInAppSkill / ExecuteInAppSkillWithTokenId drop the
  want.SetParam calls and pass callerTokenId through to
  StartAbilityByCallWithSkill / StartExtensionAbilityWithSkill.
- Those two helpers (and StartExtensionAbilityInner via a new optional
  parameter) set the AbilityRequest field after the request is
  generated.
- The three permission checks now read abilityRequest.skillCallerTokenId
  instead of the Want.

Forged Want params no longer influence permission decisions. Existing
callers of StartExtensionAbilityInner are unaffected via the default
parameter value.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-19 18:40:52 +08:00
duansizhao 2a61e68703 AI告警修复
Signed-off-by: duansizhao <duansizhao@huawei.com>
Change-Id: I777539a98e617dd8675d341edc332484628abb22
2026-06-19 10:33:44 +08:00
acdemicJava a9d84cd946 修改GC时间区间判断
Co-Authored-By: Agent
Signed-off-by: acdemicJava <yinhuiling@h-partners.com>
2026-06-18 16:54:16 +08:00
RuiChen_01 9e718f59d3 fix(skill): enforce SA caller and skill permission checks
CheckSkillPermission previously only verified system-app status when
callerTokenId was 0, leaving the CliToolMgr-proxied path (non-zero
callerTokenId) without any verification. Add two layers of checks:

- Direct IPC caller must be a system ability (IsSACall)
- Indirect caller must hold every permission declared by the skill
  (AccessTokenKit::VerifyAccessToken)

Also drop the callerTokenId=0 default and thread callerTokenId through
the ExecuteInAppSkill path so the direct-call variant is also covered.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-18 16:33:36 +08:00
RuiChen_01 87a61229ae fix: replace std::stoi with strtol to prevent AMS crash
std::stoi throws std::invalid_argument / std::out_of_range on malformed
input, and the srcCount value comes from untrusted cross-process Want
data. Replace it with a ParseSrcCount helper built on strtol, which
covers ERANGE / no-digit / trailing-char / negative / over-limit cases
without exceptions.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: claude (glm-5.2) <ai@local>
2026-06-18 15:54:48 +08:00
openharmony_ci 83bb60fa69 !19629 merge revert/agent-connection into master
Revert "bugfix: agent connection not reused"

Created-by: yangxuguang-huawei
Commit-by: yangxuguang-huawei
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15487

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |   ok       |
| 成员变量进行赋值或创建需要排查并发                               |          ok|
| 谨慎在lambda表达式中使用引用捕获                                |          ok|
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          ok|
| map\vector\list\set等stl模板类使用时需要排查并发                |          ok|
| 谨慎考虑加锁范围                                               |          ok|
| 在IPC通信中谨慎使用同步通信方式                                 |          ok|
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          ok|
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          ok|
| 禁止多个独立创建的智能指针管理同一地址                           |          ok|
| 禁止在析构函数中抛异步任务                                      |          ok|
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          ok|
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          ok|
| 禁止接口返回局部变量引用                                        |          ok|
| 禁止在信号函数中加锁                                            |          ok|
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          ok|
| 禁止将同一个cpp编译在不同的so中                                 |          ok|

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          ok|
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          ok|
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |       ok   |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          ok|
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 | ok         |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          ok|
| readParcelable获取的对象使用前需要判空                            |          ok|
| 分配和释放内存的函数需要成对出现                                   |          ok|
| 申请内存后异常退出前需要及时进行内存释放                            |    ok      |
| 内存申请前必须对内存大小进行合法性校验                              |          ok|
| 内存分配后必须判断是否成功                                         |          ok|
| 禁止使用realloc、alloca函数                                       |          ok|
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          ok|
| 禁止打印内存地址                                                  |          ok|
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          ok|
| 禁止对有符号整数进行位操作符运算                                    |          ok|
| 禁止对指针进行逻辑或位运算                                         |          ok|
| 循环次数如果收外部数据控制,需要检验其合法性                         |          ok|
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          ok|
| 谨慎使用不可重入函数                                               |          ok|
| 必须检查安全函数的返回值,并进行正确处理                             |          ok|
| 禁止仅通过TokenType类型判断绕过权限校验                             |          ok|

**TDD Result**:
已验证OK

**XTS Result**:
已验证OK

### 是否已执行L0用例
- [x] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19629
2026-06-18 14:25:20 +08:00
openharmony_ci 3daaad47e2 !19628 merge master into master
fix errCode

Created-by: jsjzju
Commit-by: jsjzju
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15486

**Description**:

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |          |
| 成员变量进行赋值或创建需要排查并发                               |          |
| 谨慎在lambda表达式中使用引用捕获                                |          |
| 谨慎在未经拷贝的情况下使用外部传入的string、C字符串               |          |
| map\vector\list\set等stl模板类使用时需要排查并发                |          |
| 谨慎考虑加锁范围                                               |          |
| 在IPC通信中谨慎使用同步通信方式                                 |          |
| 禁止传递this指针至其他模块或线程(特别是eventhandler任务)        |          |
| 禁止将外部传入的裸指针在内部直接构造智能指针                      |          |
| 禁止多个独立创建的智能指针管理同一地址                           |          |
| 禁止在析构函数中抛异步任务                                      |          |
| 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁             |          |
| 禁止在对外接口中未经判空直接使用外部传入的指针                    |          |
| 禁止接口返回局部变量引用                                        |          |
| 禁止在信号函数中加锁                                            |          |
| 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作           |          |
| 禁止将同一个cpp编译在不同的so中                                 |          |

**安全编码自检:**
| 自检项                                                          | 自检结果 |
| -------------------------------------------------------------- | -------- |
| 裸指针避免通过隐式转换构造为sptr                                 |          |
| json对象在取值之前必须先判断类型,避免类型不匹配                   |          |
| 序列化时必须对传入的数组大小进行校验,避免出现超大数组              |          |
| 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型            |          |
| 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 |          |
| 指针变量、表示资源描述符的变量、bool变量必须赋初值                  |          |
| readParcelable获取的对象使用前需要判空                            |          |
| 分配和释放内存的函数需要成对出现                                   |          |
| 申请内存后异常退出前需要及时进行内存释放                            |          |
| 内存申请前必须对内存大小进行合法性校验                              |          |
| 内存分配后必须判断是否成功                                         |          |
| 禁止使用realloc、alloca函数                                       |          |
| 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰          |          |
| 禁止打印内存地址                                                  |          |
| 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0               |          |
| 禁止对有符号整数进行位操作符运算                                    |          |
| 禁止对指针进行逻辑或位运算                                         |          |
| 循环次数如果收外部数据控制,需要检验其合法性                         |          |
| 禁止使用内存操作类危险函数,需要使用安全函数                         |          |
| 谨慎使用不可重入函数                                               |          |
| 必须检查安全函数的返回值,并进行正确处理                             |          |
| 禁止仅通过TokenType类型判断绕过权限校验                             |          |

**TDD Result**:

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19628
2026-06-18 13:17:07 +08:00