| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
ability record refactor Signed-off-by: wangzhen <wangzhen416@huawei.com> | 9 个月前 | |
want op for performance Signed-off-by: wangzhen <wangzhen416@huawei.com> Change-Id: Ib2d0d6df3bd87a2e17deae9165a802b556241a3f | 4 个月前 | |
代码优化 Signed-off-by: duansizhao <duansizhao@huawei.com> Change-Id: I7450ddca3f3577cf9d24ac10e2640cd523e4d664 | 2 个月前 | |
修复字段传递的bug Co-Authored-By: Agent Signed-off-by: hanchen45 <wanghanchen1@huawei.com> 🤖 AI[0%] 👌 AI Adopted[0%] 🧑 Human[100%] | 2 个月前 | |
免安装场景/隐式启动场景/MoveMissionToFront/应用选择框和分身选择框场景 支持传递startOptions Signed-off-by: lidongrui <lidongrui3@huawei.com> Co-Authored-By: Agent 🤖 AI[4%] 🔧 Human Fixed[0%] 🧑 Human[96%] 👌 AI Adopted[100%] | 1 个月前 | |
backFlag 优化 Signed-off-by: duansizhao <duansizhao@huawei.com> Change-Id: I7d02c268dd1702c9b62df3ea8c8301840bb1ec9f | 2 个月前 | |
!19742 merge agentdebug into master AgentUI extension debug Created-by: zexin_c Commit-by: zexin_c 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**: **XTS Result**: ### 是否已执行L0用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 See merge request: openharmony/ability_ability_runtime!19742 | 1 个月前 | |
IsForegroundAppConnection可读性增强 Co-Authored-By: Agent Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> | 6 个月前 | |
refactor(insight_intent): unify conditional delete into DbCache InsightIntentEventMgr::DeleteInsightIntent, the uninstall flow in DeleteInsightIntentEvent and InsightIntentSysEventReceiver::DeleteInsightIntent all carried their own delete logic with slight drift. Route them through the single guarded entry InsightIntentDbCache::DeleteInsightIntentTotalInfo, which now: - applies HasBundleCache (replaces CanSkipDelete, three-layer checks: user mismatch, failed cache load, then map lookup) - deletes in-memory entries and rdb rows only when the cache proves presence, returning whether the delete succeeded - drops the unused single-arg HasBundleCache overload Follow-up work (BackupRdb, function unregister) stays at the call sites. Co-Authored-By: Agent AI[100%] Human Fixed[0%] Human[0%] AI Adopted[100%] Co-authored-by: claude (glm-5.3) <ai@local> Change-Id: Iceea785c76cafe35f451a305c7da9a6c107b6d03 Signed-off-by: RuiChen_01 <chenrui193@huawei.com> | 27 天前 | |
拦截器修改适配东湖场景 Signed-off-by: lidongrui <lidongrui3@huawei.com> Co-Authored-By: Agent 🤖 AI[33%] 🔧 Human Fixed[0%] 🧑 Human[67%] 👌 AI Adopted[100%] | 24 天前 | |
加固保活延时任务 Signed-off-by: zhu-feimo <zhufeimo1@huawei.com> AI[100%] Human Fixed[0%] Human[0%] AI Adopted[100%] Co-authored-by: claude (glm-4.7) <ai@local> | 1 个月前 | |
Judeg Null Pointer Signed-off-by: Alang <gaoyulang@huawei.com> Change-Id: I4d1da4248cdf5aa6a64ad6f4552536c6770679ae Signed-off-by: Alang <gaoyulang@huawei.com> | 24 天前 | |
修复IPC写入数据失败没有异常处理问题 Signed-off-by: 段嗣钊 <duansizhao@huawei.com> Change-Id: I952bd48a839de7b4ae14c83a055b1bba31dbcb6f | 1 年前 | |
fix modular object review Co-Authored-By: ya Signed-off-by: renjh5496 <renjianhao@h-partners.com> | 1 个月前 | |
support deeplink hideFailureTipDialog Signed-off-by: wangbing <wangbing175@huawei-partners.com> | 1 年前 | |
数据库BOPD模式裁剪 Signed-off-by: zhangyuhang72 <zhangyuhang72@h-partners.com> AI[87%] Human Fixed[0%] Human[13%] AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> Change-Id: I5c1da1161ab9bb59aff8a9dd45284fed1ae602eb | 1 个月前 | |
modify Signed-off-by: wendel <yuwenze1@huawei.com> | 11 个月前 | |
Judeg Null Pointer Signed-off-by: Alang <gaoyulang@huawei.com> Change-Id: I4d1da4248cdf5aa6a64ad6f4552536c6770679ae Signed-off-by: Alang <gaoyulang@huawei.com> | 24 天前 | |
screenlock部件解耦 Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> | 1 年前 | |
fix OnLaunchCompleted callerToken Co-Authored-By: Agent Signed-off-by: 任国军 <renguojun1@h-partners.com> AI[0%] Human Fixed[0%] Human[100%] AI Adopted[0%] | 1 个月前 | |
fix bug Signed-off-by: xhz-sz <xiehuandong@h-partners.com> AI[91%] Human Fixed[0%] Human[9%] AI Adopted[100%] Co-authored-by: codex (gpt-5.6-sol) <ai@local> Co-authored-by: codex (unknown) <ai@local> Co-authored-by: opencode (glm-5.2) <ai@local> | 1 个月前 | |
new cross user embeddedUI Co-Authored-By: Agent Signed-off-by: wlh2624_DS <1968860844@qq.com> | 3 个月前 | |
!20288 merge da into master 隐式查询添加打点排查 Created-by: zhangyuhang72 Commit-by: zhangyuhang72 Merged-by: openharmony_ci Description: https://gitcode.com/openharmony/ability_ability_runtime/issues/16046 # 代码检视报告 — extension_query_event(HEAD 0dca1324)(Round 1 / 最新提交) > 统一报告由 codecheck 工作台生成,**用于门禁管控**。所有 codecheck 报告(含 orchestrator 合并出的统一报告、单 scanner 直接产出的统一报告)必须遵循本模板:章节顺序、字段名、报告元数据块、评分与门禁规则均为**固定格式**,跨报告保持一致,便于门禁脚本解析与历史对比。 --- ## 报告元数据 > **门禁脚本只读取本 YAML 块**。字段名与取值域为固定合约,禁止改名、增删或自定义取值。人工阅读部分从「1. 门禁结论」开始。 <!-- codecheck-report-metadata:start --> yaml codecheck_report: schema_version: "1.0" scope: "extension_query_event (HEAD 0dca1324)" round: 1 commit_id: "0dca1324cbaa2bcd78287e033651466582e676c1" change_id: "Ieda41fdb20998ebe91255c275e2233919068b9a5" report_id: "Ieda41fdb20998ebe91255c275e2233919068b9a5-R1" date: "2026-08-25" gate_decision: "conditional" risk_level: "medium" score: 80 dimensions_required: ["security-scanner", "logic-scanner"] dimensions_executed: ["security-scanner", "logic-scanner"] findings_total: 7 findings_by_severity: {P0: 0, P1: 0, P2: 2, P3: 5} gate_blockers: [] must_fix: [] followups: ["LOG-001", "LOG-002", "SEC-001", "SEC-002", "LOG-003", "LOG-004", "LOG-005"] <!-- codecheck-report-metadata:end --> --- ## 1. 门禁结论 | 项目 | 结论 | |---|---| | 决策 | **conditional** | | 风险等级 | 🟡 medium | | 评分 | **80/100** | | 阻塞项 | 无 | | 必须修复(P0/P1) | 0 项 | | 建议跟进(P2/P3) | 7 项 | **一句话结论**:本次提交为纯 DFX 打点能力新增(ExtensionQueryEventUtil + 4 处调用点 + ImplicitStartProcessor 异常分支打点),无 P0/P1 安全或功能正确性问题;发现 7 条 P2/P3 级 HiSysEvent 数据质量与逻辑一致性问题(筛选漏报、无界拼接超长、字段语义契约、重复上报、谓词内同步 IPC),建议修复 P2 后上库。 --- ## 3. 必须立即处理(P0/P1) **无。** --- ## 4. 建议本轮或下一补档处理(P2/P3) | ID | 优先级 | 问题 | 建议行动 | 排期 | |---|---|---|---|---| | LOG-001 | P2 | 筛选早退条件 extensionInfos[0].isSystemApp 检查"首个"而非"全部",混合场景漏报 | 改为先遍历判定 allSystem 再早退,或在 :34 注释说明设计意图 | 本轮 | | LOG-002 | P2 | bundleNames/abilityNames 无界拼接,可能超出 HiSysEvent STRING 长度上限导致截断/丢弃 | 对拼接条目数设上限 + 最终字符串长度截断(如前 900B + ...),或改用数组型参数 | 本轮 | | SEC-001 | P3 | HiSysEvent 字段语义被改为多值拼接(单值字段 BUNDLE_NAME/ABILITY_NAME 塞多值),破坏已发布事件字段契约 | 在 hisysevent.yaml 增加专用多值字段或 desc 标注"may contain multiple values separated by '-'",同步下游解析侧 | 下一补档 | | SEC-002 | P3 | CALLER_BUNDLE_NAME 在 BMS 查询失败时回退为数字 UID,与字段语义(bundle name)不符 | 失败时保留空串并标注,或新增独立 CALLER_UID INT32 字段承载 UID 回退 | 下一补档 | | LOG-003 | P3 | 分隔符判断以 bundleNames.empty() 为门,首条 bundleName 为空时拼接错位;abilityNames 分隔符以 bundleNames 而非自身为门 | 改用独立计数器 if (idx++ > 0) 或分别判定,跳过空条目 | 下一补档 | | LOG-004 | P3 | 同一 StartAbility 流程可能在 ScreenUnlockInterceptor 拦截器与主解析两处重复上报 | 拦截器路径复用主解析结果,或对同一请求标记已上报避免二次发送 | 下一补档 | | LOG-005 | P3 | IsImplicitStartAction 谓词内同步执行 BMS IPC + HiSysEvent 写入,偏离同文件 :63-68 的 ffrt::submit 异步模式;且 bundleName/extensionType 字段口径与 extension_query_event_util.cpp 不一致 | 改用 ffrt::submit 异步上报,或抽出统一接口填充字段后异步发送 | 下一补档 | --- ## 5. 分维度速览 | 维度 | 结果 | 关键说明 | |---|---|---| | security-scanner | ✅ 通过(2 条 P3) | 无 P0/P1/P2 安全问题。IPC 鉴权正确(GetCallingUid 仅用于打点归属、不参与鉴权决策、4 调用点均在已鉴权 Stub 路径、IN_PROCESS_CALL 宏 identity 还原正确);无 PII 泄漏;空指针/越界有守卫。2 条 P3 为 HiSysEvent 字段语义契约问题。 | | logic-scanner | ⚠️ 有条件通过(2 P2 + 3 P3) | 无 P0/P1。extensionInfos[0] 访问有 size()<=1 早退守卫;isSandbox 4 调用点取值正确;入参 const & 无修改;控制流未被新增打点改变。2 条 P2 为筛选漏报 + 无界拼接超长;3 条 P3 为分隔符错位、重复上报、谓词内同步 IPC。 | --- ## 6. 关键发现详情 ### [LOG-001] 筛选早退条件与"排除全系统应用"意图不符,可能漏报混合场景 (P2, scanner=logic-scanner) - **位置**:services/abilitymgr/src/extension_query_event_util.cpp:34 - **触发路径**:隐式/免安装查询返回 ≥2 条结果,且 extensionInfos[0] 为系统应用、后续至少一条为非系统应用 → :34 早退 → 不上报。 - **影响**:本次变更目的为"隐式查询打点排查",该路径下混合场景不上报,缩小排查覆盖面;不影响组件路由正确性。 - **证据**::34 if (extensionInfos[0].applicationInfo.isSystemApp) { return; } 检查首个而非全部;:51 if (!hasSystem) { return; } 要求至少一个系统应用才上报。当 [系统, 非系统, ...] 时 :34 早退跳过 :40-:50 循环,:51 永不执行。 - **建议**:若意图确为"排除全系统应用",应改为先遍历判定 allSystem 再决定早退;或在 :34 注释说明"首个为系统应用即视为正常优先级路由"对齐意图与实现。 ### [LOG-002] bundleNames/abilityNames 无界拼接,可能超出 HiSysEvent 字符串参数长度上限 (P2, scanner=logic-scanner) - **位置**:services/abilitymgr/src/extension_query_event_util.cpp:45(拼接点),:62-63(写入事件) - **触发路径**:隐式查询返回多条结果且满足上报条件 → :40-:50 循环拼接所有条目 bundleName/name → 字符串超长 → HiSysEvent 写入被截断或丢弃。 - **影响**:恰恰在"多结果"这一最需要排查的场景下打点数据残缺或丢失,削弱本次变更的排查能力;不产生崩溃。 - **证据**::45 bundleNames += info.bundleName; 无条目数上限、无长度截断;hisysevent.yaml:312/314 的 BUNDLE_NAME/ABILITY_NAME 为 STRING 类型无 arrsize;HiSysEvent 字符串参数典型上限 8192B,每条约 50-100B,160+ 条可能超限。 - **建议**:对参与拼接的条目数设上限(如最多前 N 条),并对最终字符串做长度截断(如保留前 900B 并追加 ...),或改用 arrsize 数组型参数承载多值。 ### [SEC-001] HiSysEvent 字段语义被改为多值拼接,破坏已发布事件字段契约 (P3, scanner=security-scanner) - **位置**:services/abilitymgr/src/extension_query_event_util.cpp:62-63 - **触发路径**:任意隐式查询命中 ≥2 个 Extension 且存在系统/非系统混合时,经 ReportExtensionQueryMultiResult → EventReport::SendStartAbilityOtherExtensionEvent → HiSysEvent 上报,拼接串形如 com.foo.bar-com.baz.qux 写入单值字段。 - **影响**:下游 DFR/故障归因/数据分析工具若按单 bundleName 解析该字段,将无法正确归因或关联应用。 - **证据**:hisysevent.yaml:312-314 将 BUNDLE_NAME/ABILITY_NAME 声明为单值"bundle name"/"ability name";新代码 :62 eventInfo.bundleName = bundleNames;(多值拼接串)。 - **建议**:在 hisysevent.yaml 为 START_ABILITY_OTHER_EXTENSION 增加专用多值字段(如 BUNDLE_NAMES/ABILITY_NAMES),或复用现有字段但在 desc 标注"may contain multiple values separated by '-'",并同步下游解析侧。 ### [SEC-002] CALLER_BUNDLE_NAME 字段在 BMS 查询失败时回退为数字 UID,与字段语义不符 (P3, scanner=security-scanner) - **位置**:services/abilitymgr/src/extension_query_event_util.cpp:65;同模式见 services/abilitymgr/src/implicit_start_processor.cpp:99-100 - **触发路径**:BMS 未就绪/IPC 失败/uid 无对应安装包时,bms == nullptr 或 GetNameForUid 失败(IN_PROCESS_CALL_WITHOUT_RET 丢弃返回值),callerBundleName 保持空 → :65 回退为 std::to_string(callingUid) → 数字 UID 写入 CALLER_BUNDLE_NAME 字段。 - **影响**:下游按 bundleName 格式解析的工具拿到纯数字串会解析失败或误归类。UID 为系统内部标识(非 PII),无隐私泄漏,但字段语义不一致影响数据质量与归因准确性。 - **证据**::65 eventInfo.callerBundleName = callerBundleName.empty() ? std::to_string(callingUid) : callerBundleName;;hisysevent.yaml:316 将该字段声明为"caller bundle name"。 - **建议**:失败时保留空串并在 desc 标注"may be empty when lookup fails",或新增独立 CALLER_UID INT32 字段承载 UID 回退。 ### [LOG-003] 分隔符判断以 bundleNames.empty() 为门,首条为空时拼接错位 (P3, scanner=logic-scanner) - **位置**:services/abilitymgr/src/extension_query_event_util.cpp:41 - **触发路径**:BMS 返回的某条 ExtensionAbilityInfo.bundleName 或 name 为空时,分隔符判定 if (!bundleNames.empty()) 同时控制 bundleNames 与 abilityNames,导致首条为空时分隔符错位、前导 -、条目对齐错乱。 - **影响**:打点数据可读性下降、条目对齐错乱;非崩溃。 - **证据**::41 if (!bundleNames.empty()) 同时用于 :42 bundleNames += "-" 和 :43 abilityNames += "-"。若首条 info.bundleName 为空,首轮 bundleNames 仍为空,第二轮不补 -;若首条 info.name 为空但 bundleName 非空,abilityNames 首轮为空但第二轮因 bundleNames 非空而先补 -,产生前导 -。 - **建议**:分隔符判定改为独立计数器 if (idx++ > 0) 或分别用 !bundleNames.empty()/!abilityNames.empty() 各自判定,并跳过空条目。 ### [LOG-004] 同一 StartAbility 流程可能在拦截器与主解析两处重复上报 (P3, scanner=logic-scanner) - **位置**:services/abilitymgr/src/interceptor/screen_unlock_interceptor.cpp:279 与 services/abilitymgr/src/utils/start_ability_utils.cpp:309、:357 - **触发路径**:屏幕锁定路径下,ScreenUnlockInterceptor::QueryTargetAbilityInfo 在 startAbilityInfo == nullptr 时自行调用 QueryExtensionAbilityInfos 并上报(:279);主流程随后调用 CreateStartAbilityInfo/CreateStartExtensionInfo 又在 :309/:357 再次独立查询并上报。两次对应同一逻辑 StartAbility,产生 2 条 START_ABILITY_OTHER_EXTENSION 事件。 - **影响**:打点重复计数,污染排查数据;不影响路由正确性。 - **证据**:screen_unlock_interceptor.cpp:82-95 GetTargetAbilityInfo 在 startAbilityInfo == nullptr 时调用 QueryTargetAbilityInfo(:95),其中 :279 上报;start_ability_utils.cpp:309/357 独立上报。 - **建议**:拦截器路径复用主解析结果,或对同一 StartAbility 请求标记已上报避免二次发送。 ### [LOG-005] IsImplicitStartAction 谓词内同步执行 BMS IPC + HiSysEvent 写入,偏离既有异步模式 (P3, scanner=logic-scanner) - **位置**:services/abilitymgr/src/implicit_start_processor.cpp:94(GetNameForUid IPC)、:101-102(同步 SendStartAbilityOtherExtensionEvent) - **触发路径**:调用方以"指定 abilityName、未指定 bundleName"的 Want 发起 StartAbility → 进入 :87 分支 → 同步 IPC + HiSysEvent 写入。 - **影响**:在特定(较罕见)分支下增加 StartAbility 主路径延迟;事件 eventInfo.bundleName 留空、extensionType 取默认 -1(:96-98),与另一路径(extension_query_event_util.cpp:62/64 填充 bundleName/type)字段口径不一致,影响排查数据归并;非崩溃。 - **证据**::94 IN_PROCESS_CALL_WITHOUT_RET(bms->GetNameForUid(callingUid, callerBundleName)); 同步 IPC;:101-102 EventReport::SendStartAbilityOtherExtensionEvent(...) 同步写入;对照同文件 :63-68 的 SendAbilityEvent 用 ffrt::submit 异步上报。 - **建议**:改用 :63-68 的 ffrt::submit 异步上报;或抽出统一的 ExtensionQueryEventUtil 接口填充 bundleName/extensionType 后异步发送。 See merge request: openharmony/ability_ability_runtime!20288 | 30 天前 | |
应用自启动可配置隐藏启动 Co-Authored-By: Agent Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> | 6 个月前 | |
扫描问题修改 Signed-off-by: zhu-feimo <zhufeimo1@huawei.com> AI[53%] Human Fixed[0%] Human[47%] AI Adopted[100%] | 1 个月前 | |
扫描问题修改 Signed-off-by: zhu-feimo <zhufeimo1@huawei.com> AI[53%] Human Fixed[0%] Human[47%] AI Adopted[100%] | 1 个月前 | |
ability runtime日志优化: PROCESSMGR,AUTO_STARTUP,SER_ROUTER,EXTMGR,SERVICE_EXT, AUTOFILL_EXT,EXT,DATA_ABILITY,ECOLOGICAL_RULE,CONNECTION, MISSION,AUTOFILLMGR Signed-off-by: hanchenZz <wanghanchen1@huawei.com> | 2 年前 | |
want op Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%] Change-Id: Ib81fc41ac313075bbb89425580fa08bfdd67cc0f | 2 个月前 | |
want op Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%] Change-Id: Ib81fc41ac313075bbb89425580fa08bfdd67cc0f | 2 个月前 | |
DFX日志整改 Signed-off-by: zyr020212 <zhaoyuran@h-partners.com> | 9 个月前 | |
!20150 merge processmode into master move process principles 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用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 ### AI检视评分(使用本地代码检视skills扫描): See merge request: openharmony/ability_ability_runtime!20150 | 1 个月前 | |
回退 'Pull Request !14812 : description:元能力IDL化整改-001' | 1 年前 | |
feat: add skill execute timeout mechanism and fix ServiceExtension context Reuse AMS EventHandler timeout framework to protect SkillExecuteManager from stale EXECUTING records. When the target app never calls completeArkTSScriptInApp, the record is automatically cleaned up after timeout and the caller receives ERR_TIMED_OUT via callback. Timeout = GetAppStartTimeoutTime() * SKILL_EXECUTE_TIMEOUT_MULTIPLE (10s in production, 150s under ASAN), aligned with InsightIntent. Also fix VerifyContext property name: ServiceExtension context uses "extensionAbilityInfo" not "extensionInfo", which caused completeArkTSScriptInApp to silently fail for ServiceExtension targets. Co-Authored-By: Agent Change-Id: I4e02afc0a75c069b1c5cb677fa81b469ef566f34 Signed-off-by: RuiChen_01 <chenrui193@huawei.com> | 4 个月前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
zhishi Signed-off-by: xialiangwei <xialiangwei1@huawei.com> | 24 天前 | |
东湖_退后台传入isFromScreenOffBackground_ Signed-off-by: lidongrui <lidongrui3@huawei.com> Co-Authored-By: Agent | 2 个月前 | |
多用户OTA场景应用自启动优化 Signed-off-by: zhu-feimo <zhufeimo1@huawei.com> AI[100%] Human Fixed[0%] Human[0%] AI Adopted[100%] Co-authored-by: claude (glm-4.7) <ai@local> Co-authored-by: claude (glm-5.3) <ai@local> Co-authored-by: claude (glm-5.3) <ai@local> | 29 天前 | |
E2E接续 Signed-off-by: MisterE<smart_e@126.com> Co-Authored-By: Agent | 1 个月前 | |
!20276 merge aapermission into master aa命令新增权限 Created-by: hanchen45 Commit-by: hanchen45 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用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 ### AI检视评分(使用本地代码检视skills扫描): # 代码检视报告 — commit d05199a "aa命令新增权限"(Round 2 / 指定提交) > 统一报告由 codecheck 工作台生成,**用于门禁管控**。Round 2 基于 Round 1 refute 结果,移除已确认 intentional 不修复的 CC-01(StartAbility gate 会误拦截正常调用方),并对剩余发现按实际影响重新校准严重等级。 --- ## 报告元数据 > **门禁脚本只读取本 YAML 块**。字段名与取值域为固定合约,禁止改名、增删或自定义取值。人工阅读部分从「1. 门禁结论」开始。 <!-- codecheck-report-metadata:start --> yaml codecheck_report: schema_version: "1.0" scope: "commit 435d7f86 — aa命令新增权限" round: 2 commit_id: "435d7f8645aba2db180b841336d993f141d720f5" change_id: "N/A" report_id: "435d7f86-R2" date: "2026-09-01" gate_decision: "approve" risk_level: "low" score: 92 dimensions_required: ["security-scanner", "logic-scanner", "input-scanner"] dimensions_executed: ["security-scanner", "logic-scanner", "input-scanner"] findings_total: 4 findings_by_severity: {P0: 0, P1: 0, P2: 0, P3: 4} gate_blockers: [] must_fix: [] followups: ["CC-04", "CC-05", "CC-07", "CC-08"] <!-- codecheck-report-metadata:end --> --- ## 1. 门禁结论 | 项目 | 结论 | |---|---| | 决策 | **approve** | | 风险等级 | 🟢 low | | 评分 | **92/100** | | 阻塞项 | 无 | | 必须修复(P0/P1) | 0 项 | | 建议跟进(P2/P3) | 4 项 | **一句话结论**:IsLocalDebugOtherAppsCall() 实现正确(devMode 短路 + GetCallingTokenID + VerifyPermissionByTokenId),7 个服务端 gate 的"并列放行"模式一致且 fail-closed;StartAbility(731) gate 经评估确认会误拦截正常调用方的合法拉起,intentionally 不添加;剩余 4 项 P3 均为 DFX 日志改进和同类入口完整性观察,不阻塞上库。 --- ## 3. 必须立即处理(P0/P1) **无。** --- ## 4. 建议本轮或下一补档处理(P2/P3) | ID | 优先级 | 问题 | 建议行动 | 排期 | |---|---|---|---|---| | CC-04 | P3 | NotifyProcMemoryLevel 日志打印 isShellCall 但下发 isShellOrLocalDebug,local-debug 调用者时日志与实际值不一致 | 日志改为打印 isShellOrLocalDebug | 下一补档 | | CC-05 | P3 | NotifyProcMemoryLevel 失败日志遗漏 isLocalDebugOtherAppsCall 变量值 | 在日志格式串中追加该变量 | 下一补档 | | CC-07 | P3 | StopServiceAbility 同类 shell-gate 未同步添加 IsLocalDebugOtherAppsCall(),调试工具无法 stop-service | 评估是否需要追加放行 | 下一补档 | | CC-08 | P3 | RecordProcessExitReason 未同步添加 IsLocalDebugOtherAppsCall(),aa force-stop 时退出原因未记录但 kill 成功 | 评估是否需要追加放行以保持 DFR 审计链完整 | 下一补档 | --- ## 5. 分维度速览 | 维度 | 结果 | 关键说明 | |---|---|---| | security-scanner | ✅ 通过 | IsLocalDebugOtherAppsCall() 实现正确:身份来自 IPCSkeleton::GetCallingTokenID()(非 parcel),devMode 短路在前(fail-closed),权限校验经 AccessTokenKit::VerifyAccessToken;7 个 gate 均为纯增量 OR 放行,不收紧 shell/SA 基线;StartAbility(731) gate 经评估确认会误拦截正常调用方,intentionally 不添加 | | logic-scanner | ✅ 通过 | "并列放行"模式一致(不并入 isShellCall 身份);IsLocalDebugOtherAppsCall() 内置 devMode 门控,与 shell 路径的 devMode 要求一致执行;VerifyKillProcessPermissionCommon 新分支位置正确(SA/shell 之后、VerifyAPL 之前) | | input-scanner | ✅ 通过 | IPC Stub 反序列化四件套基本满足(null 检查 + SanitizeWantParams + interfaceToken);specifiedFullTokenId 使用 IPCSkeleton::GetCallingUid() 校验 DMS_UID(IPC-006 合规);MemoryLevelInfo::ReadFromParcel 有 size 上限和 level 值域校验 | --- ## 6. 关键发现详情 ### [CC-04] NotifyProcMemoryLevel 日志与下发值不一致 (P3, scanner=LOG+SEC+INP) - **位置**:services/appmgr/src/app_mgr_service_inner.cpp:4493-4495 - **触发路径**:local-debug 调用者(非 shell)→ NotifyProcMemoryLevel → isShellOrLocalDebug = isShellCall || isLocalDebugOtherAppsCall = true → 日志打印 isShellCall=0 但下游收到 1 - **影响**:DFX 可观测性问题——故障排查时日志与实际行为不符,可能误导工程师。行为本身在 debug 场景可接受(立即唤醒是 debug 合理语义)。 - **证据**: cpp bool isShellOrLocalDebug = isShellCall || isLocalDebugOtherAppsCall; TAG_LOGD(AAFwkTag::APPMGR, "isShellCall %{public}d", isShellCall); // ← 打印 isShellCall return appRunningManager_->NotifyProcMemoryLevel(procLevelMap, isShellOrLocalDebug); // ← 下发 OR 值 - **建议**:日志改为打印 isShellOrLocalDebug,或同时打印两者。 --- ### [CC-05] NotifyProcMemoryLevel 失败日志遗漏新增判定变量 (P3, scanner=LOG) - **位置**:services/appmgr/src/app_mgr_service_inner.cpp:4485-4486 - **触发路径**:local-debug 调用者被拒(非 devMode 或无权限)→ TAG_LOGE 缺少 isLocalDebugOtherAppsCall 值 - **影响**:当 local-debug 调用者被拒时,日志无法解释拒绝原因。 - **证据**: cpp if (!(isMemmgrCall || (isShellCall && isDevelopMode) || isLocalDebugOtherAppsCall)) { TAG_LOGE(AAFwkTag::APPMGR, "Permission check failed: ... isMemmgrCall=%{public}d, " "isShellCall=%{public}d, isDevelopMode=%{public}d", ...); // ← 缺少 isLocalDebugOtherAppsCall } - **建议**:在日志格式串与参数中追加 isLocalDebugOtherAppsCall。 --- ### [CC-07] StopServiceAbility 同类 gate 缺失 IsLocalDebugOtherAppsCall (P3, scanner=SEC) - **位置**:services/abilitymgr/src/ability_manager_service.cpp:9169 - **触发路径**:调试工具(LOCAL_DEBUG_OTHER_APPS,非 shell/SA)→ aa stop-service → StopServiceAbility → gate 仅检查 isSaCall || isShellCall,调试工具被拒 - **影响**:aa stop-service 对调试工具不可用。该入口有独立的 abilityRecord 校验作为后备防护,非安全问题。 - **建议**:评估是否需要追加 || IsLocalDebugOtherAppsCall(),与其他 7 个入口保持一致。 --- ### [CC-08] RecordProcessExitReason gate 缺失 — kill 审计链断裂 (P3, scanner=SEC) - **位置**:services/abilitymgr/src/ability_manager_service.cpp:3786 - **触发路径**:调试工具执行 aa force-stop -p <pid> -r <reason> → RecordProcessExitReason(gate 拒绝,返回 ERR_PERMISSION_DENIED)→ KillProcess(VerifyKillProcessPermissionCommon 放行,成功)→ 进程被杀死但退出原因未记录 - **影响**:DFR 审计链断裂——进程被杀死但 hisysevent 中 APP_EXIT_REASON 事件缺失。kill 操作本身成功,仅影响故障归因数据完整性。 - **建议**:在 RecordProcessExitReason 的 gate 中追加 || IsLocalDebugOtherAppsCall(),保持 DFR 审计链完整。 --- ## 附录:Round 1 → Round 2 变更说明 ### 移除项 | Round 1 ID | 原等级 | 处置 | 理由 | |---|---|---|---| | CC-01 | P0 | **移除** | StartAbility(731) gate 经实测确认会误拦截正常调用方的合法 ability 拉起(StartSelfUIAbility 内部直调、ability_delegator 测试框架等),intentionally 不添加。该入口依赖 interceptor chain + 可见性检查 + callerToken 授权,非本权限的设计职责。 | ### 降级/排除项 | Round 1 ID | 原等级 | → Round 2 | 理由 | |---|---|---|---| | CC-02 | P1 | 排除 | 客户端检查非安全边界(可绕过 aa 直接构造 IPC),RunAsHelpCommand 的客户端 gate 是 UX 便利,真实防护在服务端 7 个 gate | | CC-03 | P1 | 排除 | VerifyKillProcessPermissionCommon 放行 local-debug 是 by-design debug 能力,devMode + LOCAL_DEBUG_OTHER_APPS 权限双重门控,权限授予策略由 access_token 框架管控 | | CC-06 | P1 | 排除 | HandleStartNativeProcessForDebugger 未做 SanitizeWantParams 是预存问题,非本提交引入(本提交仅扩展权限,未改变 Want 处理逻辑) | | CC-09 | P2 | 排除 | KillProcessWithReasonInner 是独立 kill 路径,有自身的 PERMISSION_KILL_APP_PROCESSES + IsShellCall 校验,调试工具经 aa force-stop 走 VerifyKillProcessPermissionCommon 路径 | | CC-10 | P2 | 排除 | IsAllowLocalDebugOtherApps vs IsLocalDebugOtherAppsCall 设计差异是 intentional——前者用于 AttachAppDebug(需 debugFromLocal 标志),后者用于通用 gate(不需该标志),适用场景不同 | | CC-11 | P2 | 排除 | GetAppRunningUniqueIdByPid 的 pid 未绑定调用者是 by-design debug 信息访问,devMode + 权限双重门控 | | CC-12 | P2 | 排除 | DumpState/DumpSysState 信息暴露是 by-design debug 能力,各子函数已有按 callerUid 的可见性过滤 | | CC-13 | P2 | 排除 | 测试覆盖缺口是改进建议,非代码缺陷 | | CC-14 | P3 | 排除 | aa help 行为回归是 intentional(commit 有意添加 gate) | | CC-15 | P3 | 排除 | 常量命名不一致是风格项,无证据级影响 | | CC-16 | P3 | 排除 | token_setproc.h 未使用是观察项,无安全影响 | | CC-17 | P3 | 排除 | MemoryLevelInfo::ReadFromParcel 死代码是预存问题 | | CC-18 | P3 | 排除 | 多余空行是风格项 | ### 保留项(均为 P3 观察项) | ID | 保留理由 | |---|---| | CC-04 | DFX 日志与下发值不一致是真实可观测性缺陷,有具体 file:line 和修复方案 | | CC-05 | DFX 日志遗漏变量是真实可观测性缺陷,有具体 file:line 和修复方案 | | CC-07 | 同类入口完整性观察,有具体 file:line,可操作 | | CC-08 | DFR 审计链断裂是真实功能影响,有具体触发路径和修复方案 | See merge request: openharmony/ability_ability_runtime!20276 | 23 天前 | |
tdd fix Signed-off-by: wangzhen <wangzhen416@huawei.com> AI[0%] Human Fixed[0%] Human[100%] AI Adopted[0%] Change-Id: I2dae783db75ae97dbc68a5928bc9c104516dc1b1 | 1 个月前 | |
!20247 merge dlpappspawn2 into master add dlp flag2 Created-by: hanchen45 Commit-by: hanchen45 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用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 ### AI检视评分(使用本地代码检视skills扫描): # 代码检视报告 — commit 50aa8bf "add dlp flag2" > 统一报告由 codecheck 工作台生成,**用于门禁管控**。 --- ## 报告元数据 <!-- codecheck-report-metadata:start --> yaml codecheck_report: schema_version: "1.0" scope: "commit-50aa8bf786134ab807c5ca471c03d90ba77a4b70" round: 2 commit_id: "50aa8bf786134ab807c5ca471c03d90ba77a4b70" change_id: "N/A" report_id: "commit-50aa8bf786134ab807c5ca471c03d90ba77a4b70-R2" date: "2026-08-21" gate_decision: "approve" risk_level: "low" score: 92 dimensions_required: ["security", "logic"] dimensions_executed: ["security", "logic", "input"] findings_total: 4 findings_by_severity: {P0: 0, P1: 0, P2: 0, P3: 4} gate_blockers: 0 must_fix: 0 followups: 4 <!-- codecheck-report-metadata:end --> --- ## 1. 门禁结论 | 项目 | 结论 | |---|---| | 决策 | **approve** | | 风险等级 | 🟢 low | | 评分 | **92/100** | | 阻塞项 | 无 | | 必须修复(P0/P1) | 0 项 | | 建议跟进(P2/P3) | 4 项 | **一句话结论**:Round 1 的 P1 发现(DLP 标志丢失回归)经产品约束确认后触发链全部不可达、已推翻;BuildStartFlags 的 customFlag 处理逻辑在现有约束下行为正确,剩余 4 项 P3 均为一致性/纵深防御建议,不阻塞合入。 --- ## 2. 扣分原因 > 本节仅 gate_decision=block 时呈现,本次为 approve,省略。 --- ## 3. 必须立即处理(P0/P1) **无。** (Round 1 的 F-1 已在 Round 2 推翻,详见 refute_log.md) --- ## 4. 建议本轮或下一补档处理(P2/P3) | ID | 优先级 | 问题 | 建议行动 | 排期 | |---|---|---|---|---| | F-6 | P3 | 无效 customFlag 的 fail-open(跳过 + 告警)依赖隐式产品约束(DLP 沙箱不支持指定进程)才无害;约束变更或新增消费路径时会引入 DLP 位丢失 | 无效值回退 securityFlag 分支(fail-safe),或至少在 appspawn_util.h 注释固化该约束 | 下一版本 | | F-2 | P3 | customFlag 与 securityFlag 语义重叠,冲突时以 customFlag 为准(可越过 securityFlag=true 选 FULL_CONTROL),优先级规则未文档化 | 在 app_spawn_client.h StartFlags 处补充两参数优先级说明;长期收敛为单一参数 | 下一版本 | | F-3 | P3 | 仅 ForegroundAbility 清理 customFlag,启动事务/BackgroundAbility/NewWant 等生命周期分发均未清理(securityFlag 亦从未清理),防泄漏不对称 | 明确清理意图后统一处理:要么全链路清理 DLP 保留参数,要么移除该单点清理 | 下一补档 | | F-4 | P3 | appmgr 侧仅对 securityFlag 做 appRecord 级归一化(4818 存 / 5316 写回),customFlag 无对称处理,进程内二次加载/进程恢复时来源规则不一致 | 仿照 securityFlag 为 customFlag 补齐 SetDlpCustomFlag/GetDlpCustomFlag 记录级存取 | 下一补档 | --- ## 5. 分维度速览 | 维度 | 结果 | 关键说明 | |---|---|---| | security | 2 P3 | F-6 fail-open 纵深防御;F-2 参数重叠(权限集合较旧逻辑无扩张,refute 降级) | | logic | 2 P3 | F-3 生命周期清理不对称;F-4 记录级归一化不对称 | | input | 无独立发现 | customFlag 类型安全(GetIntParam)+ 消费点白名单校验防越界移位,无注入面 | | api | N/A(未调度) | 本提交未修改 interfaces/kits/ 公共接口,无公共 API 变更,不在必检维度 | --- ## 6. 关键发现详情 ### [F-6] 无效 customFlag 的 fail-open 处理依赖隐式产品约束(P3, scanner=security) - **位置**:services/appmgr/include/utils/appspawn_util.h:49-55 - **触发路径**(当前约束下不可达,为约束变更时的潜在路径):需 want 携带"存在但无效"的 customFlag 且到达 BuildStartFlags。Round 2 已证实:主进程冷启动不写回(caller 为 dlpmanager,条件不成立)、主进程热启动不消费、指定进程被产品约束排除。 - **影响**:若未来 DLP 沙箱支持指定进程 ability,或有新代码路径将带无效 customFlag 的 want 送入 BuildStartFlags,则 DLP_INDEX != 0 时 READ_ONLY/FULL_CONTROL 均不设置(旧逻辑保证必设其一),appspawn 侧 DLP 挂载模式不受控。 - **证据**:appspawn_util.h:49-55 else 结构锁定不回退;ability_manager_service.cpp:8976-8981 写回条件分析见 refute_log.md Round 2。 - **建议**:无效值时回退 securityFlag 分支(fail-safe,改动约 5 行);或至少在 appspawn_util.h 与 app_spawn_client.h 注释标明"customFlag 有效值仅 37/38,无效时跳过依赖 DLP 沙箱不支持指定进程的约束",防止后续演进中踩雷。 ### [F-2] customFlag 与 securityFlag 语义重叠且优先级未文档化(P3, scanner=security) - **位置**:services/appmgr/include/utils/appspawn_util.h:49-61、services/appmgr/include/app_spawn_client.h:122-123 - **触发路径**:want 同时携带 securityFlag=true 与 customFlag=37 → 以 customFlag 为准设 FULL_CONTROL。 - **影响**:customFlag 白名单 {37,38} 与旧 securityFlag 二值语义完全等值,未扩大可表达权限集合 → 非新增攻击面,仅为参数重叠与隐式优先级问题。 - **建议**:在 StartFlags 枚举处注释两参数优先级;长期收敛为单一参数。 ### [F-3] 生命周期分发仅 ForegroundAbility 清理 customFlag(P3, scanner=logic) - **位置**:services/abilitymgr/src/ability_record.cpp:435 - **触发路径**:rg "RemoveParam\(DLP_PARAMS" 在 ability_record.cpp 全文仅命中此一处;首次启动事务 ScheduleAbilityTransaction、BackgroundAbility、NewWant 分发均携带 customFlag。 - **影响**:若意图是防止应用侧感知该保留参数,则清理不完整;若非此意图则该单点清理引入了新的不一致。无直接安全后果。 - **建议**:明确意图后统一处理;可在 want 出口清理点集中处理 DLP 保留参数。 ### [F-4] appmgr 侧 customFlag 未做记录级归一化(P3, scanner=logic) - **位置**:services/appmgr/src/app_mgr_service_inner.cpp:4818、:5316 - **触发路径**:securityFlag 在 appRecord 创建时存入(4818)、进程存活期间二次加载 ability 时写回 want 归一化(5316);customFlag 无对称链路。 - **影响**:当前冷启动消费点直读 want,无直接错误行为;但与 5316 的 securityFlag 覆盖逻辑组合时,两参数在进程恢复/二次加载场景下来源规则不一致,存在隐性行为漂移。 - **建议**:仿照 securityFlag 为 AppRunningRecord 补齐 customFlag 存取与写回;或与 F-2 的参数收敛方案一并处理。 See merge request: openharmony/ability_ability_runtime!20247 | 23 天前 | |
Delete redundant header files Signed-off-by: ZhangYan <zhangyan509@huawei.com> | 2 年前 | |
support skill execute Co-Authored-By: Agent Change-Id: If269cf2bf97f5bc1f671b528d9d648a5b69fedb3 Signed-off-by: RuiChen_01 <chenrui193@huawei.com> new cmd Change-Id: Id9b3d5f48412705c544602e4124d39e9d06f1cb1 Signed-off-by: zexin_c <chenzexin14@huawei.com> | 4 个月前 | |
support skill execute Co-Authored-By: Agent Change-Id: If269cf2bf97f5bc1f671b528d9d648a5b69fedb3 Signed-off-by: RuiChen_01 <chenrui193@huawei.com> new cmd Change-Id: Id9b3d5f48412705c544602e4124d39e9d06f1cb1 Signed-off-by: zexin_c <chenzexin14@huawei.com> | 4 个月前 | |
remove unused info. Signed-off-by: zhangyafei-echo <zhangyafei12@huawei.com> Change-Id: I60b95f7adcb39d5bd62201106a718bd84dbbdf48 | 2 年前 | |
Delete redundant header files Signed-off-by: ZhangYan <zhangyan509@huawei.com> | 2 年前 | |
fix err Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
fix err Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
OpenLink支持聚合链接 Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> | 1 年前 | |
Revert "JSON统一为cJSON" Signed-off-by: 13776621730 <zhawei12@huawei-partners.com> Change-Id: I69dc57782680ece5c5d2d1416464516405d070ad | 1 年前 | |
fix db in bopd Signed-off-by: xuzheheng <xuzheheng2@h-partners.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%] Change-Id: Ied3a46f5904bfb6611bf6c43ade291cfa400ee09 | 2 个月前 | |
supplement exitReason Co-Authored-By: ya Signed-off-by: renjh5496 <renjianhao@h-partners.com> | 1 个月前 | |
!20107 merge exitReason_0807 into master supplement exitReason Created-by: renjh5496 Commit-by: renjh5496 Merged-by: openharmony_ci Description: **IssueNo**: https://gitcode.com/openharmony/ability_ability_runtime/issues/15892 **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用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 ### AI检视评分(使用本地代码检视skills扫描): codecheck_report: schema_version: "1.0" scope: "PR #20107 NotifyAppMgrRecordExitReasonCompability reason 参数扩展" round: 1 commit_id: "N/A(基于 PR diff 检视,未 clone 本地仓库)" change_id: "N/A(PR diff 未包含 Change-Id)" commit_subject: "feat: NotifyAppMgrRecordExitReasonCompability 新增 int32_t reason 参数,IPC 全链路透传 ExitReasonCompability.reason" date: "2026-08-07" dimensions_required: ["security-scanner", "logic-scanner", "input-scanner"] dimensions_executed: ["security-scanner", "logic-scanner", "input-scanner"] waived_dimensions: [] findings_total: 3 findings_by_severity: {P0: 0, P1: 0, P2: 1, P3: 2} score: 91 risk_level: "low" gate_decision: "approve" gate_blockers: [] must_fix: [] followups: ["SEC-02", "LOG-02"] See merge request: openharmony/ability_ability_runtime!20107 | 1 个月前 | |
iface_cast误用修改-后台 Signed-off-by: SKY2001 <songtianyu10@huawei.com> | 9 个月前 | |
want op Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%] Change-Id: Ib81fc41ac313075bbb89425580fa08bfdd67cc0f | 2 个月前 | |
删除老的hilog头文件 Signed-off-by: XKK <huyingsong@huawei.com> | 2 年前 | |
修复AMS内部want传递失败 Signed-off-by: 段嗣钊 <duansizhao@huawei.com> Change-Id: I47959a3f6518b5f53e537d16514a21514449ed8d | 1 年前 | |
fix err Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
应用自启动可配置隐藏启动 Co-Authored-By: Agent Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> | 6 个月前 | |
add work_scheduler permission Signed-off-by: gaojiaqi <gaojiaqi7@huawei.com> | 1 年前 | |
refactor: rename bg abbreviation to background for clarity Rename all 'bg' abbreviations to full 'background' word across BgUserExtensionMonitor feature code, including: - File names: bg_user_extension_monitor -> background_user_extension_monitor - Class/struct names: BgUserExtensionMonitor -> BackgroundUserExtensionMonitor - Method names: OnBgUserExtensionStarted -> OnBackgroundUserExtensionStarted - Constants: BG_START_EVENT_VALUE -> BACKGROUND_START_EVENT_VALUE - All log messages and test names Signed-off-by: zhang_hao_zheng <zhanghaozheng2@h-partners.com> Co-Authored-By: Agent Change-Id: Idcf82f70e7381334ab48e2b0a8cb71733fd48e47 | 4 个月前 | |
code review Signed-off-by: wangzhen <wangzhen416@huawei.com> | 7 个月前 | |
multi user Signed-off-by: wendel <yuwenze1@huawei.com> | 11 个月前 | |
Extension_Enhancement Signed-off-by: renjianhao <renjianhao@h-partners.com> | 5 个月前 | |
code fix Signed-off-by: wangzhen <wangzhen416@huawei.com> Change-Id: I95d10fb869a00de533785785203a3adc32975ccb | 4 个月前 | |
suspend & resume connection Signed-off-by: jicheng <jicheng@huawei.com> | 1 年前 | |
want op Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%] Change-Id: Ib81fc41ac313075bbb89425580fa08bfdd67cc0f | 2 个月前 | |
代码优化 Signed-off-by: duansizhao <duansizhao@huawei.com> Change-Id: I7450ddca3f3577cf9d24ac10e2640cd523e4d664 | 2 个月前 | |
pc claw支持拉起分身应用 Signed-off-by: lidongrui <lidongrui3@huawei.com> Co-Authored-By: Agent | 2 个月前 | |
kv_point Signed-off-by: Luobniz21 <luoyicong@h-partners.com> Change-Id: I6244317d773f76bb7db4c23934681e86bd7dfb00 | 7 个月前 | |
隐私弹窗拦截优化 Co-Authored-By: Agent Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> | 3 个月前 | |
pc claw支持拉起分身应用 Signed-off-by: lidongrui <lidongrui3@huawei.com> Co-Authored-By: Agent | 2 个月前 | |
code review Signed-off-by: wangzhen <wangzhen416@huawei.com> Change-Id: I1e45416692df474968bd46cc37ae171fc18d7029 | 1 年前 | |
Ability组件退出原因整改 Co-Authored-By: Agent Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> | 6 个月前 | |
增强 ScreenUnlockInterceptor 配置加载失败的鲁棒性 当 ams_extension_config.json 读取或解析失败时,configMap_ 为空, 导致所有 extension 在解锁前被拦截。增加 isConfigLoaded_ 标志位, 配置未加载成功时拦截器直接放行所有 extension。 变更内容: - ExtensionConfig 新增 std::atomic<bool> isConfigLoaded_ 标志 - LoadExtensionConfig 解析完成后设置标志为 true - ScreenUnlockInterceptor::CheckExtensionInterception 增加前置判断, 配置未加载时直接返回 ERR_OK 放行 - 补充 4 个测试用例覆盖新增分支,修改 NoConfig 测试用例适配新逻辑 Signed-off-by: yewei0794 <weiyejxnf@163.com> Co-Authored-By: Agent 🤖 AI[100%] 👌 AI Adopted[100%] 🧑 Human[0%] Co-authored-by: claude (glm-5.1) <ai@local> Change-Id: Iaed7559ddceb3914c69366aa38b58347b5478492 | 3 个月前 | |
隐式查询添加打点排查 Signed-off-by: zhangyuhang72 <zhangyuhang72@h-partners.com> AI[83%] Human Fixed[0%] Human[17%] AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> Change-Id: I08bedffa281a5809ba54e2693c60288515c293ef | 30 天前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
后台组件问题修复 Signed-off-by: zhangyuhang72 <zhangyuhang72@h-partners.com> AI[82%] Human Fixed[0%] Human[18%] AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> Change-Id: If6b927dd1b69b88e339fca68718cf4be07260a62 | 1 个月前 | |
隐式查询添加打点排查 Signed-off-by: zhangyuhang72 <zhangyuhang72@h-partners.com> AI[83%] Human Fixed[0%] Human[17%] AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> Change-Id: I08bedffa281a5809ba54e2693c60288515c293ef | 30 天前 | |
feat: add QueryAtomicServiceStartupRule Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com> | 1 年前 | |
隐藏启动uid改pid2 Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> | 1 年前 | |
Code review fix Signed-off-by: wangzhen <wangzhen416@huawei.com> AI[100%] Human Fixed[0%] Human[0%] AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> Change-Id: If5ae13d68610f9be0208a771b6c7123bed6e00dc | 23 天前 | |
Revert "JSON统一为cJSON" Signed-off-by: 13776621730 <zhawei12@huawei-partners.com> Change-Id: I69dc57782680ece5c5d2d1416464516405d070ad | 1 年前 | |
RSS豁免10需求 Signed-off-by: wlh2624 <1968860844@qq.com> Change-Id: I55b7481db7aa14b1718c342c52182a61ed36d3ae | 1 年前 | |
remove js UpdateKioskAppList Co-Authored-By: ya Signed-off-by: renjh5496 <renjianhao@h-partners.com> | 1 个月前 | |
kioskStatus支持获取token Signed-off-by: wangbing <wangbing175@huawei-partners.com> | 1 年前 | |
新增killId接口 Signed-off-by: 朱菲墨 <zhufeimo1@huawei.com> | 6 个月前 | |
ISdEStroyed Signed-off-by: Luobniz21 <luoyicong@h-partners.com> # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ability_runtime/js_ui_ability.cpp # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # interactive rebase in progress; onto 0ce6686468 # Last command done (1 command done): # pick 0021c18056 ISdEStroyed # No commands remaining. # You are currently rebasing branch 'isDestroyed' on '0ce6686468'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ability_runtime/js_ui_ability.cpp # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ability_runtime/js_ui_ability.cpp # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ability_runtime/js_ui_ability.cpp # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ability_runtime/js_ui_ability.cpp # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ability_runtime/js_ui_ability.cpp # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ability_runtime/js_ui_ability.cpp # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ability_runtime/js_ui_ability.cpp # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # # Untracked files: # .claude/ # 1.diff # 2.diff # # Please enter the commit message for your changes. Lines starting # with '#' will be kept; you may remove them yourself if you want to. # An empty message aborts the commit. # # Date: Mon May 18 22:05:14 2026 +0800 # # On branch isDestroyed # Your branch is up to date with 'origin/isDestroyed'. # # Changes to be committed: # modified: frameworks/ets/ani/ui_ability/src/ets_ui_ability.cpp # modified: frameworks/ets/ets/@ohos.app.ability.UIAbility.ets # modified: frameworks/native/ability/native/ability_runtime/js_ui_ability.cpp # modified: frameworks/native/ability/native/ui_ability.cpp # modified: interfaces/kits/native/ability/native/ui_ability.h # modified: services/abilitymgr/src/launch_param.cpp # # Untracked files: # .claude/ # 1.diff # 2.diff # | 4 个月前 | |
add CompletionHandlerForAtomicService Signed-off-by: wangbing <wangbing175@huawei-partners.com> | 1 年前 | |
modify page config Signed-off-by: wendel <yuwenze1@huawei.com> | 8 个月前 | |
fix review Co-Authored-By: ya Signed-off-by: renjianhao <renjianhao@h-partners.com> | 1 个月前 | |
Add cfi/pac config Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[0%] 👌 AI Adopted[0%] 🧑 Human[100%] | 2 个月前 | |
hilog整改 Signed-off-by: XKK <huyingsong@huawei.com> | 2 年前 | |
want op Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%] Change-Id: Ib81fc41ac313075bbb89425580fa08bfdd67cc0f | 2 个月前 | |
want op Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%] Change-Id: Ib81fc41ac313075bbb89425580fa08bfdd67cc0f | 2 个月前 | |
fix(want_agent): close IWantSender::Send IPC bypass + hard-remove orphaned machinery Security fix (from initial round): - WantSenderStub::OnRemoteRequest now rejects the legacy WANT_SENDER_SEND IPC with ERR_NO_PERMISSION_CALLER. The direct IWantSender::Send path bypassed PendingWantManager::CheckCallerPermission and was reachable by any client holding an IWantSender handle. - BuildSendWant now honors CONSTANT_FLAG: when the key is created with CONSTANT_FLAG, sender's TriggerInfo.want params are no longer merged into the dispatched Want. Hard removal of orphaned IPC machinery (no live caller — production routes via IAbilityManager::SendWantSender → PendingWantManager::SenderInner): - IWantSender::Send virtual + WANT_SENDER_SEND enum - WantSenderProxy::Send + WriteInterfaceToken - WantSenderStub::OnRemoteRequest override + SendInner (cpp deleted, ctor/dtor switched to = default in header) - PendingWantRecord::Send override - want_sender_proxy_test/ directory - Residual Send(SenderInfo&) override fixtures in 4 test/fuzz files - Stale want_sender_stub.cpp entries from 4 BUILD.gn files Regression coverage: - Drop Send_0100 from pending_want_record_test (called deleted method) - Add BuildSendWant_ConstantFlag_RejectSenderWantParams_0100 to lock the param-isolation behaviour - Add WantSenderStubTest_OnRemoteRequest_Code0_Rejected_0100 and Code0_WithPayload_Rejected_0100 to prevent reintroduction of the IPC bypass without explicit security review - Fix want_receiver_stub_test to use IWantReceiver::WANT_RECEIVER_SEND instead of IWantSender::WANT_SENDER_SEND (copy-paste bug, same value 0) Co-Authored-By: Agent Signed-off-by: RuiChen_01 <chenrui193@huawei.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%] | 1 个月前 | |
PCcLAw拉起cli分身,优化sessionInfo.want中携带非系统定义字段,使用requestID缓存机制存储 Signed-off-by: lidongrui <lidongrui3@huawei.com> Co-Authored-By: Agent 🤖 AI[99%] 🔧 Human Fixed[0%] 🧑 Human[1%] 👌 AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> | 1 个月前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
Code review Signed-off-by: wangzhen <wangzhen416@huawei.com> AI[85%] Human Fixed[0%] Human[15%] AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> Change-Id: I36c62c25ff3a2dc0c1261555a10b41250804124d | 1 个月前 | |
feat: add QueryAtomicServiceStartupRule Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com> | 1 年前 | |
feat: add QueryAtomicServiceStartupRule Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com> | 1 年前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
意图返回值新增interactionIntent Co-Authored-By: Agent Signed-off-by: 任国军 <renguojun1@h-partners.com> AI[84%] Human Fixed[0%] Human[16%] AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> | 1 个月前 | |
provide dms interfaces Co-Authored-By: ya Signed-off-by: renjh5496 <renjianhao@h-partners.com> | 4 个月前 | |
provide dms interfaces Co-Authored-By: ya Signed-off-by: renjh5496 <renjianhao@h-partners.com> | 4 个月前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
推荐安装 Signed-off-by: MisterE<smart_e@126.com> Co-Authored-By: Agent | 5 个月前 | |
推荐安装 Signed-off-by: MisterE<smart_e@126.com> Co-Authored-By: Agent | 5 个月前 | |
youhua Signed-off-by: wkljy <wangkailong6@huawei.com> | 7 个月前 | |
support start ui ability with callback Co-Authored-By: zzz Signed-off-by: zhengzhuolan <zhengzhuolan@huawei-partners.com> | 4 个月前 | |
support start ui ability with callback Co-Authored-By: zzz Signed-off-by: zhengzhuolan <zhengzhuolan@huawei-partners.com> | 4 个月前 | |
restart app after 3s Signed-off-by: savior-xzh <xuzheheng2@huawei.com> Change-Id: I4b5709ce0fba918aa026f372884d3704d20fd13b | 1 年前 | |
新增驾驶安全SA注册拦截器接口 Signed-off-by: zhangzezhong <zhangzezhong8@huawei-partners.com> | 1 年前 | |
modify review suggestion Change-Id: I65968877cad11544bd71b46a41ea1c63b758657b Signed-off-by: z00797421 <zhanyongtao@huawei.com> | 2 个月前 | |
新增驾驶安全SA注册拦截器接口 Signed-off-by: zhangzezhong <zhangzezhong8@huawei-partners.com> | 1 年前 | |
新增驾驶安全SA注册拦截器接口 Signed-off-by: zhangzezhong <zhangzezhong8@huawei-partners.com> | 1 年前 | |
PCcLAw拉起cli分身,优化sessionInfo.want中携带非系统定义字段,使用requestID缓存机制存储 Signed-off-by: lidongrui <lidongrui3@huawei.com> Co-Authored-By: Agent 🤖 AI[99%] 🔧 Human Fixed[0%] 🧑 Human[1%] 👌 AI Adopted[100%] Co-authored-by: opencode (glm-5.2) <ai@local> | 1 个月前 | |
feature: Add local wantAgent interface Signed-off-by: xijiandong <xijiandong@huawei.com> | 1 年前 | |
feat: add splitRatio to StartOptions Co-Authored-By: Agent Signed-off-by: yangxuguang-huawei <yangxuguang3@huawei.com> | 4 个月前 | |
page config Signed-off-by: wendel <yuwenze1@huawei.com> | 8 个月前 | |
feat: add sessionInfo to StartSpecifiedAbilityBySCB Signed-off-by: Nathan Yang <yangxuguang3@huawei.com> | 9 个月前 | |
dynamic load image_native Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[98%] 👌 AI Adopted[98%] 🧑 Human[2%] 🤖 AI[0%] 👌 AI Adopted[0%] 🧑 Human[100%] Change-Id: I0f5ee21f0ea499d0abc9a0690249f040cb715805 | 3 个月前 | |
Add cfi/pac config Co-Authored-By: Agent Signed-off-by: wangzhen <wangzhen416@huawei.com> 🤖 AI[0%] 👌 AI Adopted[0%] 🧑 Human[100%] | 2 个月前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
del jump interceptor Signed-off-by: x30044351 <xuzheheng2@h-partners.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[0%] 👌 AI Adopted[0%] Change-Id: I566c848f8cae882a69fceca85ad1a0e4c2e9d168 | 1 个月前 | |
add_log Signed-off-by: sunjiakun <sunjiakun5@huawei.com> | 1 年前 | |
归一user callback Signed-off-by: hanchen45 <wanghanchen1@huawei.com> | 6 个月前 | |
归一user callback Signed-off-by: hanchen45 <wanghanchen1@huawei.com> | 6 个月前 | |
意图、wantAgent模块维测日志增强 Signed-off-by: linjunjie <linjunjie6@huawei.com> | 1 年前 | |
fix bug Signed-off-by: xhz-sz <xiehuandong@h-partners.com> AI[91%] Human Fixed[0%] Human[9%] AI Adopted[100%] Co-authored-by: codex (gpt-5.6-sol) <ai@local> Co-authored-by: codex (unknown) <ai@local> Co-authored-by: opencode (glm-5.2) <ai@local> | 1 个月前 | |
add support dual apps Signed-off-by: RuiChen_01 <chenrui193@huawei.com> | 10 个月前 | |
fix(want_agent): close IWantSender::Send IPC bypass + hard-remove orphaned machinery Security fix (from initial round): - WantSenderStub::OnRemoteRequest now rejects the legacy WANT_SENDER_SEND IPC with ERR_NO_PERMISSION_CALLER. The direct IWantSender::Send path bypassed PendingWantManager::CheckCallerPermission and was reachable by any client holding an IWantSender handle. - BuildSendWant now honors CONSTANT_FLAG: when the key is created with CONSTANT_FLAG, sender's TriggerInfo.want params are no longer merged into the dispatched Want. Hard removal of orphaned IPC machinery (no live caller — production routes via IAbilityManager::SendWantSender → PendingWantManager::SenderInner): - IWantSender::Send virtual + WANT_SENDER_SEND enum - WantSenderProxy::Send + WriteInterfaceToken - WantSenderStub::OnRemoteRequest override + SendInner (cpp deleted, ctor/dtor switched to = default in header) - PendingWantRecord::Send override - want_sender_proxy_test/ directory - Residual Send(SenderInfo&) override fixtures in 4 test/fuzz files - Stale want_sender_stub.cpp entries from 4 BUILD.gn files Regression coverage: - Drop Send_0100 from pending_want_record_test (called deleted method) - Add BuildSendWant_ConstantFlag_RejectSenderWantParams_0100 to lock the param-isolation behaviour - Add WantSenderStubTest_OnRemoteRequest_Code0_Rejected_0100 and Code0_WithPayload_Rejected_0100 to prevent reintroduction of the IPC bypass without explicit security review - Fix want_receiver_stub_test to use IWantReceiver::WANT_RECEIVER_SEND instead of IWantSender::WANT_SENDER_SEND (copy-paste bug, same value 0) Co-Authored-By: Agent Signed-off-by: RuiChen_01 <chenrui193@huawei.com> 🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%] | 1 个月前 | |
fix bug Signed-off-by: xhz-sz <xiehuandong@h-partners.com> AI[91%] Human Fixed[0%] Human[9%] AI Adopted[100%] Co-authored-by: codex (gpt-5.6-sol) <ai@local> Co-authored-by: codex (unknown) <ai@local> Co-authored-by: opencode (glm-5.2) <ai@local> | 1 个月前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
fix log Signed-off-by: tantingting <tantingting5@huawei.com> | 2 年前 | |
方案修改 Signed-off-by: l30059571 <luolu22@huawei.com> | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 6 个月前 | ||
| 27 天前 | ||
| 24 天前 | ||
| 1 个月前 | ||
| 24 天前 | ||
| 1 年前 | ||
| 1 个月前 | ||
| 1 年前 | ||
| 1 个月前 | ||
| 11 个月前 | ||
| 24 天前 | ||
| 1 年前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 30 天前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 年前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 9 个月前 | ||
| 1 个月前 | ||
| 1 年前 | ||
| 4 个月前 | ||
| 2 年前 | ||
| 24 天前 | ||
| 2 个月前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 23 天前 | ||
| 1 个月前 | ||
| 23 天前 | ||
| 2 年前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 9 个月前 | ||
| 2 个月前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 6 个月前 | ||
| 1 年前 | ||
| 4 个月前 | ||
| 7 个月前 | ||
| 11 个月前 | ||
| 5 个月前 | ||
| 4 个月前 | ||
| 1 年前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 1 年前 | ||
| 6 个月前 | ||
| 3 个月前 | ||
| 30 天前 | ||
| 2 年前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 23 天前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 个月前 | ||
| 1 年前 | ||
| 6 个月前 | ||
| 4 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 年前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 7 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 个月前 | ||
| 1 年前 | ||
| 4 个月前 | ||
| 8 个月前 | ||
| 9 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 2 年前 | ||
| 1 个月前 | ||
| 1 年前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 1 年前 | ||
| 1 个月前 | ||
| 10 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 |