mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 22:21:36 -04:00
bed5560260d733698da170a4b40f6a0f44092252
3260 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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 |
||
|
|
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 |
||
|
|
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> |
||
|
|
7a2accc6ad |
修复Agent调试超时问题
Signed-off-by: SKY2001 <songtianyu10@huawei.com> |
||
|
|
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 |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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%] |
||
|
|
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 |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
455151f902 |
pc claw支持拉起分身应用
Signed-off-by: lidongrui <lidongrui3@huawei.com> Co-Authored-By: Agent |
||
|
|
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 |
||
|
|
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> |
||
|
|
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 |
||
|
|
f1a265320d |
修复连接agent的权限校验安全问题
Signed-off-by: SKY2001 <songtianyu10@huawei.com> |
||
|
|
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 |
||
|
|
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%] |
||
|
|
33fdab821a |
fix edm
Signed-off-by: xuzheheng <xuzheheng2@h-partners.com> 🤖 AI[0%] 👌 AI Adopted[0%] 🧑 Human[100%] Change-Id: Iee3549eb9108037f5e5be7443d851c41af32118c |
||
|
|
02aaf6b63b |
bugfix: free-install agent permissions
Co-Authored-By: Agent Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com> Change-Id: I24c15803dc5464c1e70bf2aca6a711dcfc90a7ff |
||
|
|
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 |
||
|
|
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> |
||
|
|
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> |
||
|
|
8ccc7535ec |
CloseUIAbility oe extension
Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[34%] 👌 AI Adopted[34%] 🧑 Human[66%] |
||
|
|
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**:  **XTS Result**: ### 是否已执行L0用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 See merge request: openharmony/ability_ability_runtime!19410 |
||
|
|
196eb54522 |
fix wantAgent with userId
Co-Authored-By: zzz Signed-off-by: zzl12383 <zhengzhuolan@huawei-partners.com> |
||
|
|
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 |
||
|
|
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 |
||
|
|
44b91812de |
extension分身场景使用
Signed-off-by: yewei0794 <weiyejxnf@163.com> 🤖 AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%] Co-authored-by: Agent Change-Id: If4bc6b09c1804c5685610f81d47ebb7a1ed9904a |
||
|
|
4e888aa070 |
隐私弹窗拦截优化
Co-Authored-By: Agent Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> |
||
|
|
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 |
||
|
|
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 |
||
|
|
e6d3ddc165 |
block process termination
Signed-off-by: xhz-sz <xiehuandong@huawei.com> Co-Authored-By: Agent |
||
|
|
8cc019fa63 |
修复意图应用死亡监听导致意图概率返回50错误码
Co-Authored-By: yuhang-wang Signed-off-by: renjh5496 <renjianhao@h-partners.com> |
||
|
|
191010bd74 |
block process termination
Signed-off-by: xhz-sz <xiehuandong@huawei.com> Co-Authored-By: Agent |
||
|
|
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 |
||
|
|
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**:  **XTS Result**: 不涉及 ### 是否已执行L0用例 - [√] 已验证 - [ ] 不涉及。如不涉及,请写明理由 See merge request: openharmony/ability_ability_runtime!19419 |
||
|
|
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 |
||
|
|
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 |
||
|
|
4dcf02b724 |
Distributed intent timeout
Co-Authored-By: ya Signed-off-by: renjh5496 <renjianhao@h-partners.com> |
||
|
|
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 |
||
|
|
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 |
||
|
|
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 |