Commit Graph

3260 Commits

Author SHA1 Message Date
openharmony_ci 63938a7f3c !19723 merge fix/config-moduleName-missing into master
fix: backfill moduleName for Config intents missing the field

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!19723
2026-07-01 16:35:10 +08:00
openharmony_ci 8e6b9d7bab !19708 merge FixAgentDebugTimeOut into master
修复Agent调试超时问题

Created-by: SKY2001
Commit-by: SKY2001
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15537?ref=&did=4121673#tid-4121673
**Description**:

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

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

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


See merge request: openharmony/ability_ability_runtime!19708
2026-06-30 14:41:53 +08:00
RuiChen_01 e559d510d2 refactor: drop userId and displayId from exposed options schema
These two parameters are system-internal and should not be part of
the function calling contract. Remove them from the registered
options schema so LLM agents don't see them. Parser no longer reads
them from options: userId defaults to INVALID_USER_ID (-1) filled
by CheckAndUpdateParam, displayId defaults to INVALID_DISPLAY_ID
filled by SCB. ResolveUserId/ResolveDisplayId methods and their
constants are deleted.

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-29 22:33:37 +08:00
SKY2001 7a2accc6ad 修复Agent调试超时问题
Signed-off-by: SKY2001 <songtianyu10@huawei.com>
2026-06-29 14:24:21 +08:00
openharmony_ci f338187077 !19709 merge optimize/insight-intent-cleanup into master
perf: move per-bundle filtering into DbCache GetAllInsightIntentInfoForRegister

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!19709
2026-06-28 22:30:18 +08:00
RuiChen_01 332c28c09f refactor: merge Profile path into Generic, drop template Filters
Unify on Generic (ExtractInsightIntentInfo) as the sole data format
for registration. Drop ConvertFromExtractProfile, FilterProfile, the
PrepareForRegister template, and the three ExtractFrom* helpers. Each
remaining Filter (Config/Generic) now inlines rule-1 filtering and
(moduleName, abilityName) sort directly.

event_mgr now converts Profile→Generic via ProfileInfoFormat before
filtering and registering, matching the sys_event_receiver path.
ConvertFromExtractIntentInfo is completed to emit the same full
FunctionInfo (options schema, inputSchema, outputSchema) that the old
Profile path produced, so both registration paths yield identical
KVStore entries.

Net effect: ~50 lines removed, one conversion path, two self-contained
filters, and consistent FunctionInfo output across all callers.

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-28 16:38:36 +08:00
RuiChen_01 287abddace revert: disable distributed intent support for ExecuteIntentByFunctionCall
Remove deviceId from the registered options schema, drop the
ResolveDeviceId parser step (deviceId stays at its default empty
string), and delete the DispatchDistributedIntent helper plus the
distributed branch in ExecuteIntentByFunctionCall. ignoreAbilityName
no longer considers deviceId. The intent now always dispatches
locally via ExecuteIntentCommon.

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-28 16:20:51 +08:00
RuiChen_01 2cc8724c78 refactor: extract PrepareFunctionCallParam to keep entry under 50 lines
ExecuteIntentByFunctionCall grew past 50 lines after adding the want
param cleanup. Pull wantParam cleanup + multi-candidate match +
paramParser.Build into PrepareFunctionCallParam so the entry function
stays focused on permission checks, dispatch routing, and common
handoff. Both functions are now under the 50-line cap.

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-28 12:36:20 +08:00
RuiChen_01 8c8e950e5e feat: align ExecuteIntentByFunctionCall userId/deviceId with ExecuteIntent
ResolveUserId now defaults to -1 (INVALID_USER_ID) instead of
callerUserId, so InsightIntentExecuteManager::CheckAndUpdateParam can
fall back to calling-UID-derived userId exactly like the ExecuteIntent
path. options.userId still overrides.

ExecuteIntentByFunctionCall now honors param->deviceId_: when non-empty
the function dispatches via DispatchDistributedIntent (flood attack
check, PERMISSION_EXECUTE_DISTRIBUTED_INTENT, GenerateWant,
dmsClient.StartRemoteIntent, SetRemoteIntentTimeout) instead of falling
through to ExecuteIntentCommon. ignoreAbilityName also becomes true when
deviceId is set, matching ExecuteIntent's existing behavior.

DispatchDistributedIntent is a new private helper so the distributed
dispatch body stays under the 50-line function cap.

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

🤖‍ AI[0%] 👌 AI Adopted[0%] 🧑 Human[100%]
2026-06-28 10:32:49 +08:00
openharmony_ci c62dd2ba5d !19690 merge cliClonge-1 into master
pc claw支持拉起分身应用

Created-by: lidongrui
Commit-by: DESKTOP-UGVMD4B\DawnComing
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!19690
2026-06-28 01:07:01 +08:00
RuiChen_01 2d16cefab1 perf: use BatchRegisterFunctions on boot path
sys_event_receiver's RegisterAllFunctions now collects every bundle's
FunctionInfo into one vector and calls CliToolMGRClient::BatchRegisterFunctions
in a single IPC instead of looping RegisterInsightIntentFunctions per
bundle. Cuts N bundle IPCs down to 1 on the boot/shutdown registration
path. New helper BatchRegisterInsightIntentFunctions in function_call_convert
covers convert + version stamping + batch call.

event_mgr path (per-module install) is untouched and still uses
RegisterInsightIntentFunctions. This commit depends on the pending
BatchRegisterFunctions API in cli_tool_framework.

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-28 00:03:16 +08:00
RuiChen_01 0156b9b49c refactor: rename ParseResult.representative to matchedInfo
The field holds the candidate picked by the executor after rule-1
filtering and sort. 'matchedInfo' describes that purpose more directly
than 'representative' (which read as if the candidate were a spokesperson
for some group). Caller in ExecuteIntentByFunctionCall updated.

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-27 23:54:13 +08:00
RuiChen_01 ef663d3751 refactor: align executor with registrar via filter+sort+last-wins
IntentParamParser::Build now applies the same rule-1 filter and
(moduleName, abilityName) sort as IntentFilterUtil::FilterGeneric, then
picks the sorted vector's last element as the single representative.
All param fields come from that one representative (moduleName,
abilityName, executeMode, decoratorType), so registration and execution
end up choosing the same candidate for a given (bundleName, intentName).

wantParam.options overridess still apply on top of representative
fields. PickActiveCandidates and per-field Resolve* helpers are removed
since representative selection replaces them. FilterGeneric is reused
rather than duplicating rule-1 logic in the executor.

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-27 23:50:53 +08:00
RuiChen_01 86b6692497 refactor: split filter responsibility back to data source
Re-introduce GetAllInsightIntentInfoForRegister on DbCache that returns
rule-1 filtered and (moduleName, abilityName) sorted data. sys_event_receiver
now calls this ForRegister variant and gets ready-to-register data.
RegisterInsightIntentFunctions drops its inline IntentFilterUtil call
back to pure convert+register semantics.

event_mgr (whose data comes from profile file parsing, not DbCache)
does explicit IntentFilterUtil.FilterProfile/FilterConfig before
Register, since it cannot use the ForRegister shortcut. Net effect:
each caller filters at its own data source instead of Register doing
all work, and the original GetAllInsightIntentInfo stays untouched.

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-27 22:38:46 +08:00
RuiChen_01 9d1fd3dd3c refactor: inline filter+sort into RegisterInsightIntentFunctions
Drop GetAllInsightIntentInfoForRegister and ApplyFilterPerBundle from
DbCache; rule 1 filter and (moduleName, abilityName) sort now live
inside RegisterInsightIntentFunctions where they belong as registration
business logic. DbCache reverts to pure CRUD.

Callers simplified: BackupAndScheduleRegister uses raw
GetAllInsightIntentInfo; event_mgr no longer constructs IntentFilterUtil
explicitly. Both paths converge on a single filter point inside
RegisterInsightIntentFunctions, ensuring consistent rule application.

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-27 22:14:40 +08:00
RuiChen_01 d33a1cadca refactor: drop entryModule concept from IntentFilterUtil
Simplify rule 2 to "moduleName alphabetical first" without entry
preference. Removes entryModuleNames parameter from IntentFilterUtil
ctor, FilterCandidate.isEntryModule field, CandidateOrdering entry
dimension, DbCache GetAllInsightIntentInfoForRegister signature, and
bundleToEntryModules plumbing in sys_event_receiver/event_mgr. Callers
no longer need to extract entry modules from BundleInfo.

Also rename FilterAndDedup overloads to FilterProfile/FilterConfig/
FilterGeneric for explicit data-source semantics.

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-27 21:59:12 +08:00
RuiChen_01 847c7216a2 perf: move per-bundle filtering into DbCache GetAllInsightIntentInfoForRegister
Wrap GetAllInsightIntentInfo + per-bundle IntentFilterUtil into a single
DbCache entry. sys_event_receiver's BackupAndScheduleRegister now reads
already-filtered data, removing the FilterAndDedup call from
RegisterAllFunctions. event_mgr still uses IntentFilterUtil directly
(its data comes from profile files, not DbCache).

Co-Authored-By: Agent

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

Signed-off-by: RuiChen_01 <chenrui193@huawei.com>
2026-06-27 21:10:13 +08:00
RuiChen_01 d64b087e4c refactor: extract InsightIntentParamParser, add IntentFilterUtil
Move parameter parsing/assembly for ExecuteIntentByFunctionCall out of
AbilityManagerService anonymous helpers into a dedicated
InsightIntentParamParser class with explicit, unit-testable rules.
Expose multi-candidate matcher API (GetMatchedIntentInfos).
Drop SA-only check on ExecuteIntentByFunctionCall entry so function
calling agents can invoke intents directly.

Add IntentFilterUtil for CliTool registration path: callers preprocess
intent lists before RegisterInsightIntentFunctions to (1) drop intents
not bound to background UIAbility or ServiceExtension, (2) pick entry
module first when same intentName spans modules, (3) prefer UIAbility
over ServiceExtension when same module has multiple abilities.

Co-Authored-By: Agent
Signed-off-by: RuiChen_01 <chenrui193@huawei.com>
2026-06-27 20:18:08 +08:00
DESKTOP-UGVMD4B\DawnComing 455151f902 pc claw支持拉起分身应用
Signed-off-by: lidongrui <lidongrui3@huawei.com>
Co-Authored-By: Agent
2026-06-27 19:48:15 +08:00
openharmony_ci 9d316e8c22 !19681 merge cr into master
refactor: move versionCode into FunctionInfo, drop bundle-level cache

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!19681
2026-06-26 00:07:00 +08:00
RuiChen_01 d0dc3d003c refactor: move versionCode into FunctionInfo, drop bundle-level cache
- Add uint32_t versionCode field to CliTool::FunctionInfo with full
  Parcel/JSON serialization
- Pass versionCode through RegisterInsightIntentFunctions and assign
  to each FunctionInfo before IPC registration
- Remove redundant bundle-level versionCode cache in InsightIntentDbCache
  (HasFunctionByName/SaveFunctionVersion/DeleteFunctionVersion/
  LoadFunctionVersionMap, functionVersionMap_, functionVersionMutex_,
  and related RDB helpers)
- Simplify LoadInsightIntentInfos dedup to single rdbHas check
- Update function_info_test and thirteenth_test mock accordingly

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-25 21:26:33 +08:00
openharmony_ci 0770918f04 !19649 merge FixConnectAgentPermission into master
修复连接agent的权限校验安全问题

Created-by: SKY2001
Commit-by: SKY2001
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15500?ref=&did=4107738#tid-4107738
**Description**:

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

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

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


See merge request: openharmony/ability_ability_runtime!19649
2026-06-24 21:37:51 +08:00
SKY2001 f1a265320d 修复连接agent的权限校验安全问题
Signed-off-by: SKY2001 <songtianyu10@huawei.com>
2026-06-24 19:05:06 +08:00
openharmony_ci f569311db2 !19571 merge edm into master
fix edm

Created-by: xuzheheng
Commit-by: xuzheheng
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15434
**Description**:
fix edm
**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |     √     |
| 成员变量进行赋值或创建需要排查并发                               |  √        |
| 谨慎在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!19571
2026-06-24 16:44:14 +08:00
RuiChen_01 ca545116f1 feat: sync FunctionCall KV store with intent lifecycle
- Add ExecuteIntentByFunctionCall with lightweight intent_client SO
- Pass caller bundleName as fallback when profile bundleName is empty
- Sort GetInsightIntentGenericInfoByName by moduleName then intentName
- Add UnregisterInsightIntentFunctions using UnregisterFunctionsByNamespace
- Add verify query after RegisterFunction with logging
- Wire FunctionCall cleanup into all three intent deletion paths

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

🤖‍ AI[68%] 👌 AI Adopted[68%] 🧑 Human[32%]
2026-06-24 11:43:23 +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
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
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
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
wangzhen 8ccc7535ec CloseUIAbility oe extension
Co-Authored-By: Agent

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

🤖‍ AI[34%] 👌 AI Adopted[34%] 🧑 Human[66%]
2026-06-09 10:18:07 +08:00
openharmony_ci 65678cf1cf !19410 merge wantAgentFix into master
fix wantAgent with userId

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

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

**TDD Result**: 
![image.png](https://raw.gitcode.com/user-images/assets/4421702/8a1899ba-d471-4fe2-a704-de69bb49f212/image.png 'image.png')
**XTS Result**:

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


See merge request: openharmony/ability_ability_runtime!19410
2026-06-08 22:11:54 +08:00
zzl12383 196eb54522 fix wantAgent with userId
Co-Authored-By: zzz
Signed-off-by: zzl12383 <zhengzhuolan@huawei-partners.com>
2026-06-08 16:19:50 +08:00
openharmony_ci 6d7d923411 !19526 merge car_appInde into master
extension分身场景使用

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

**Description**:

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

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

**TDD Result**:

**XTS Result**:

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


See merge request: openharmony/ability_ability_runtime!19526
2026-06-06 18:30:58 +08:00
openharmony_ci 9c75b59b3a !19461 merge 隐私弹窗拦截优化 into master
隐私弹窗拦截优化

Created-by: zhu-feimo
Commit-by: 朱菲墨
Merged-by: openharmony_ci
Description: **IssueNo**:
[#15357](https://gitcode.com/openharmony/ability_ability_runtime/issues/15357) 
**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!19461
2026-06-06 16:44:34 +08:00
yewei0794 44b91812de extension分身场景使用
Signed-off-by: yewei0794 <weiyejxnf@163.com>

🤖‍ AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%]
Co-authored-by: Agent

Change-Id: If4bc6b09c1804c5685610f81d47ebb7a1ed9904a
2026-06-06 16:23:03 +08:00
朱菲墨 4e888aa070 隐私弹窗拦截优化
Co-Authored-By: Agent
Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com>
2026-06-06 11:19:59 +08:00
openharmony_ci 78060da4ed !19370 merge fix_yitu_0511 into master
修复意图应用死亡监听导致意图概率返回50错误码

Created-by: renjh5496
Commit-by: renjh5496
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15283
**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!19370
2026-06-05 12:18:48 +08:00
openharmony_ci e25c4c0b67 !19511 merge lowMemoryKill into master
block process termination

Created-by: xhz-sz
Commit-by: xhz-sz
Merged-by: openharmony_ci
Description: **IssueNo**: https://gitcode.com/openharmony/ability_ability_runtime/issues/15396

**Description**:

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

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

**TDD Result**:

**XTS Result**:

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


See merge request: openharmony/ability_ability_runtime!19511
2026-06-04 22:12:20 +08:00
xhz-sz e6d3ddc165 block process termination
Signed-off-by: xhz-sz <xiehuandong@huawei.com>
Co-Authored-By: Agent
2026-06-03 17:11:03 +08:00
renjh5496 8cc019fa63 修复意图应用死亡监听导致意图概率返回50错误码
Co-Authored-By: yuhang-wang
Signed-off-by: renjh5496 <renjianhao@h-partners.com>
2026-06-03 14:11:44 +08:00
xhz-sz 191010bd74 block process termination
Signed-off-by: xhz-sz <xiehuandong@huawei.com>
Co-Authored-By: Agent
2026-06-02 10:42:32 +08:00
openharmony_ci 80ee31e317 !19500 merge carclone into master
Add index check error

Created-by: zivzhen
Commit-by: wangzhen
Merged-by: openharmony_ci
Description: **IssueNo**:

**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**:
pass
**XTS Result**:
pass

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


See merge request: openharmony/ability_ability_runtime!19500
2026-06-01 16:41:17 +08:00
openharmony_ci a8c65b9cfe !19419 merge fix_ChildProcess into master
fix ChildProcess

Created-by: zhongshield1
Commit-by: zhongshield1
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15325
**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/6b0cde23-dd75-4bd4-ab88-6247d6d9179f/image.png 'image.png')
**XTS Result**:
不涉及
### 是否已执行L0用例
- [√] 已验证
- [ ] 不涉及。如不涉及,请写明理由


See merge request: openharmony/ability_ability_runtime!19419
2026-06-01 16:26:29 +08:00
openharmony_ci 17fbd5948d !19458 merge refactor/isRestored-wantagent-recovery into master
refactor: add isRestored_ flag for WantAgent FromString recovery

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!19458
2026-06-01 11:44:39 +08:00
RuiChen_01 08e051c5f4 refactor: add isRestored_ flag for WantAgent FromString recovery
Add a boolean isRestored_ flag to PendingWantRecord to indicate
recovery scenarios from WantAgent FromString. Only SEND_COMMON_EVENT
uses uid_ as publisherUid when isRestored_ is true, other operations
keep using callerUid_ unchanged. Extract ResolveWantSenderUid helper
to keep GetWantSenderByUserId under 50 lines.

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.1) <ai@local>

Change-Id: I8f313b5fde2b870e28c19127432c5ebb49de7d68
2026-05-31 18:39:36 +08:00
renjh5496 4dcf02b724 Distributed intent timeout
Co-Authored-By: ya
Signed-off-by: renjh5496 <renjianhao@h-partners.com>
2026-05-30 17:31:34 +08:00
wangzhen 34fa86335e Add index check error
Co-Authored-By: Agent

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

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

Change-Id: I0a8640bdf5e73812e3280b4ab676e319115038d8
2026-05-30 17:01:15 +08:00
openharmony_ci cb7434d239 !19433 merge dis into master
add for dispose

Created-by: xuzheheng
Commit-by: xuzheheng
Merged-by: openharmony_ci
Description: **IssueNo**:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15335
**Description**:
add for dispose
**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |    √      |
| 成员变量进行赋值或创建需要排查并发                               |     √      |
| 谨慎在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**:ok

**XTS Result**: ok

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


See merge request: openharmony/ability_ability_runtime!19433
2026-05-30 15:49:12 +08:00
openharmony_ci 96c5115c95 !19426 merge carclone into master
AppClone for multi account

Created-by: zivzhen
Commit-by: wangzhen
Merged-by: openharmony_ci
Description: **IssueNo**:

**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**:
pass
**XTS Result**:
pass

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


See merge request: openharmony/ability_ability_runtime!19426
2026-05-30 15:23:35 +08:00