500 Commits

Author SHA1 Message Date
yzy-15 f437db03dc fix: add borderWidth negative check, restore atomic include, refine overflow return
form_surface_info: add borderWidth < 0 check (0 is valid for no
border, negative is invalid).

form_render_service_mgr.h: restore #include <atomic> for explicit
dependency clarity.

form_util.cpp: remove return 0 on ConvertStringToLongLong overflow.
strtoll already clamps to LLONG_MAX/LLONG_MIN, returning the clamped
value is more informative than 0. Error is still logged.

AI[93%] Human Fixed[0%] Human[7%] AI Adopted[100%]
Co-authored-by: opencode (glm-5.2) <ai@local>

Change-Id: Ifde90d134691f410cd3931cfe3cf5cceba45c01a
Signed-off-by: yzy-15 <yuzhiyong6@h-partners.com>
2026-08-21 16:50:08 +08:00
yzy-15 71db7608b3 fix: resolve 32 code review issues from form_fwk audit
Concurrency fixes:
- P1-1: atTimerWakeUpTime_ change to std::atomic<int64_t>
- P1-2: reportDiskUseTimerId_ change to std::atomic<uint64_t>
- P1-3: merge HasRouterProxy check and map access into single lock scope
- P1-4: unsubscribe common event before clearing event handles map
- P1-5: remove death recipients before clearing in FormProxyRegistry destructor
- P1-7: limiterTimerReportId_ change to std::atomic<uint64_t>
- P1-8: protect CreateLimiterTimer check-create-store with mutex, validate CreateTimer return
- P1-9: hasCachedConfig_ change to std::atomic<bool>
- P1-10: isInitialized_ change to std::atomic<bool>, add lock in Init()
- P1-11: add mutex lock in LoadDataFromDb

Input validation fixes:
- P2-1/P2-2/P2-3: add size check before StringUtils::split[1] access
- P2-4: validate float params in FormSurfaceInfo::ReadFromParcel
- P2-5: add hour/minute range validation in UpdateTimerValue
- P2-6: check GetOsAccountLocalIdFromUid return value
- P2-7: add empty string check for callerBundleName
- P2-8: check GetFormLock return value, fail-closed
- P2-9: add callerToken null check in SetFormAddObserver/SetFormRemoveObserver
- P2-10: check GetFormRecord return value in AcquireProviderFormInfo

Integer/type fixes:
- P3-1: add errno check in ConvertStringToLongLong
- P3-2: add overflow check in ConvertStringToInt
- P3-3: change NANO_PER_SECOND to int64_t

Null pointer/uninitialized fixes:
- P4-1: add connect parameter null check in ConnectServiceAbilityWithUserId
- P4-2: initialize castFormsCount to 0

Resource management fixes:
- P5-1: check PushFormEvent return value in AddTaskToQueuePush
- P5-2: return false on runtime Init/InsertHapPath failure
- P5-3: replace shared_from_this with raw pointer in FormShareMgr destructor

Dead code removal:
- P7-1: remove unused IsDynamicTimerExpired with self-deadlock risk

Permission check:
- P6-1: add caller identity verification in UpdateSubscribeFormData

Low-risk fixes:
- P8-1: check RegisterBundleEventCallback return value
- P8-2: same as P3-2

Documentation:
- F4/F5: add lock behavior comments for DeleteRenderRecordByUid and SetCriticalFalseOnAllFormInvisible

AI[100%] Human Fixed[0%] Human[0%] AI Adopted[100%]
Co-authored-by: opencode (glm-5.2) <ai@local>

Change-Id: I07c6b44bedb54aae4f3706ca2376ebee13b04bc5
Signed-off-by: yzy-15 <yuzhiyong6@h-partners.com>
2026-08-21 14:59:31 +08:00
openharmony_ci b6971faa43 !3796 merge master_form_fix into master
卡片问题修复

Created-by: xiangcong3
Commit-by: xiangcong3
Merged-by: openharmony_ci
Description: ### 关联 Issue
Close #3052

### 变更说明
针对卡片管理框架进行问题修复,覆盖 NAPI 接口层、inner_api IPC 层与 services 服务层的输入校验、边界检查与异常处理加固,共 42 文件 +325/-106。

### 变更范围
- **NAPI 接口层**:`formHost`/`formProvider`/`formUtil`/`form_state_observer`/`form_provider` 入参校验加固与空指针保护
- **inner_api 层**:`form_host_stub`/`form_mgr_proxy`/`form_mgr_stub` IPC 入参校验,`form_constants` 常量补充
- **services 层**:`form_mgr`/`data_center`/`common`/`feature`/`form_render` 多模块输入验证、边界保护与异常处理加固

### 自检
- [x] 签名规范(Signed-off-by)
- [x] 编译通过
- [x] 已基于最新 master 变基

See merge request: openharmony/ability_form_fwk!3796
2026-08-21 14:34:49 +08:00
xiangcong3 74343af7dd 检视意见修改
Signed-off-by: xiangcong3 <xiangcong4@huawei.com>

AI[0%] Human Fixed[0%] Human[100%] AI Adopted[0%]
2026-08-20 16:31:51 +08:00
xiangcong3 2f3b1ccc0a 卡片问题修复
Signed-off-by: xiangcong3 <xiangcong4@huawei.com>

AI[0%] Human Fixed[0%] Human[100%] AI Adopted[0%]
2026-08-20 16:31:50 +08:00
luyangyi 8fc7242058 Merge branch 'fix/liveform-app-lock' of git@gitcode.com:luyangyi/ability_form_fwk.git into 'master'
# Conflicts:
#   conflict services/include/form_mgr/form_lifecycle_adapter.h
2026-08-20 14:26:08 +08:00
openharmony_ci f9c84fb423 !3808 merge fix/parcel-input-validation into master
fix: harden IPC parcel reading and input validation in form_fwk

Created-by: yzy-15
Commit-by: yzy-15
Merged-by: openharmony_ci
Description: **IssueNo**: #3156

**Description**: 代码优化

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

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

**TDD Result**: 待补充单元测试

**XTS Result**:

### 是否已执行L0用例
- [ ] 已验证
- [x] 不涉及。本次修改为安全加固,不改变正常流程逻辑,现有用例覆盖

See merge request: openharmony/ability_form_fwk!3808
2026-08-20 14:15:06 +08:00
yzy-15 06f201e8e1 fix: harden IPC parcel reading and input validation in form_fwk
Check return values of ReadInt64/ReadInt32/ReadBool/ReadString16
in FormMgrStub, FormSupplyStub, and FormInstancesFilter handlers
to prevent use of uninitialized data on parcel read failure.

- Add range validation for FormLocation, FormFsmEvent, PublishFormErrorCode
- Fix integer overflow in time diff comparisons (OnNotifyRefreshForm,
  UpdateReUpdateFormMap)
- Fix TOCTOU race in connectId_ using atomic compare_exchange
- Narrow lock scope in DisconnectAllRenderConnections via std::swap
- Add form owner check in DeleteThemeForm
- Add null checks for callerToken and remoteObject
- Add param length validation in AddForm and AllotThemeRecord
- Fix missing return in HiDumpHasFormVisible
- Change UpdateFormSize return type to void (unused return value)

AI[93%] Human Fixed[0%] Human[7%] AI Adopted[100%]
Co-authored-by: opencode (glm-5.2) <ai@local>

Change-Id: If1210d3b00e3b405045d02f207c0ef1fce2bae80
Signed-off-by: yzy-15 <yuzhiyong6@h-partners.com>
2026-08-19 18:23:09 +08:00
luyangyi 824ee8f641 update
Signed-off-by: luyangyi <luyangyi2@huawei.com>
2026-08-19 17:38:19 +08:00
luyangyi a1202d2551 Add form display id want param constant
The card host tells the form render service which display a card lives on
through a Want param, so the render side can query that display for its
density instead of relying on an init-time snapshot of the default display.

Define the key once here so the host and the render side share a single
definition, and treat it as an internal render param that is filtered out
when a Want leaves the form domain, the same as form_density and
form_view_scale.

Signed-off-by: luyangyi <luyangyi2@huawei.com>

Co-Authored-By: Claude <noreply@anthropic.com>

AI[100%] Human Fixed[0%] Human[0%] AI Adopted[100%]
Co-authored-by: claude (auto) <ai@local>

Change-Id: Ibfcd6e9ad557fdb20cfe58213abae6042304e6c2
2026-08-19 14:26:06 +08:00
openharmony_ci 8297ab919d !3781 merge ROM-Constants into master
ROM优化:Constants修改

Created-by: weixin_52227816
Commit-by: weixin_52227816
Merged-by: openharmony_ci
Description: **IssueNo**:https://gitcode.com/openharmony/ability_form_fwk/issues/3128

**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_form_fwk!3781
2026-08-18 17:37:56 +08:00
openharmony_ci 1e4416e41a !3767 merge fuzz into master
代码优化

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

**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用例
- [x] 已验证
- [ ] 不涉及。如不涉及,请写明理由

See merge request: openharmony/ability_form_fwk!3767
2026-08-18 16:15:18 +08:00
wutouxu 139a60fa22 代码优化
AI[100%] Human Fixed[0%] Human[0%] AI Adopted[100%]
Co-authored-by: opencode (glm-5.2) <ai@local>
Co-authored-by: opencode (qwen3.7-max) <ai@local>
Co-authored-by: opencode (glm-5.2) <ai@local>
Co-authored-by: opencode (qwen3.7-max) <ai@local>
Co-authored-by: opencode (glm-5.2) <ai@local>
Co-authored-by: opencode (qwen3.7-max) <ai@local>
Co-authored-by: opencode (glm-5.2) <ai@local>
Co-authored-by: opencode (qwen3.7-max) <ai@local>

Change-Id: I3c594631e4e78deed759e743511797e86d45576d
Signed-off-by: wutouxu <zhaolixue2@huawei.com>
2026-08-18 10:52:02 +08:00
weixin_52227816 8890432f49 ROM优化:Constants修改
Signed-off-by: weixin_52227816 <zhuzheng24@huawei.com>
Change-Id: I6c1d64cffce740f573d89be289a469875f46178a
2026-08-14 17:14:21 +08:00
zhangsaiyang1 1c415276ed 修改检视意见
Co-Authored-By: None

Signed-off-by: zhangsaiyang1 <zhangsaiyang1@h-partners.com>
2026-08-14 11:05:46 +08:00
zhangsaiyang1 09f18567be 修复按钮按钮无效
Signed-off-by: zhangsaiyang1 <zhangsaiyang1@h-partners.com>
2026-08-11 20:13:41 +08:00
openharmony_ci 7d16b080e9 !3762 merge master into master
fix: 修复form_fwk空指针、并发竞争、IPC鉴权及整数溢出等安全问题

Created-by: AspTATA
Commit-by: AspTATA
Merged-by: openharmony_ci
Description: **IssueNo**: 3115

**Description**: 
- FFI入口新增空指针检查,new(nothrow)返回值判空
- 修复GetBundleMgr与FormSupplyCallback单例DCLP竞争(改call_once)
- SetBackgroundFunction补写InterfaceToken并改用标准SendTransactCmd
- FormHostProxy写token失败后补return,不再继续发送
- GetStringInfo读取失败返回ERR_COMMON_CODE,避免false误判为成功
- SetUIExtCustomDensity新增上界校验与浮点乘法溢出预判
- GetFilesSize累加与LINEAR重试延迟乘法新增整数溢出预判
- Dump入口集中校验系统应用权限

**稳定性自检:**
| 自检项                                                       | 自检结果  |
| ------------------------------------------------------------ | -------- |
| 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发              |   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_form_fwk!3762
2026-08-11 17:37:11 +08:00
AspTATA c6bbf9429e revert: 撤回HandleSetBackgroundFunction及长度校验常量,#23仅修复Proxy端
Signed-off-by: AspTATA <xionglinhong1@huawei.com>
2026-08-06 20:45:38 +08:00
AspTATA 7b771b1494 fix: GetFilesSize溢出时保持filesSize与totalSize一致,HandleSetBackgroundFunction补长度校验
Signed-off-by: AspTATA <xionglinhong1@huawei.com>
2026-08-06 19:42:38 +08:00
openharmony_ci a4828db4ed !3745 merge 0513 into master
FRS和FMS通信完善

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

**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用例
- [x] 已验证
- [ ] 不涉及。如不涉及,请写明理由

See merge request: openharmony/ability_form_fwk!3745
2026-08-06 13:23:10 +08:00
wutouxu 758e32322d FRS和FMS通信完善
AI[25%] Human Fixed[0%] Human[75%] AI Adopted[100%]
Co-authored-by: opencode (qwen3.7-max) <ai@local>
Co-authored-by: opencode (glm-5.1) <ai@local>
Co-authored-by: opencode (glm-5.2) <ai@local>
Co-authored-by: opencode (qwen3.7-max) <ai@local>
Co-authored-by: opencode (glm-5.1) <ai@local>
Co-authored-by: opencode (glm-5.2) <ai@local>
Co-authored-by: opencode (qwen3.7-max) <ai@local>
Co-authored-by: opencode (glm-5.1) <ai@local>
Co-authored-by: opencode (glm-5.2) <ai@local>
Co-authored-by: opencode (qwen3.7-max) <ai@local>

Change-Id: I5c3f124241e476432339bf7b01679c0c5a238384
Signed-off-by: wutouxu <zhaolixue2@huawei.com>
2026-08-06 09:49:54 +08:00
zhangsaiyang1 09b90bc6a7 Merge branch '0731' of git@gitcode.com:zhangsaiyang1/ability_form_fwk.git into 'master'
# Conflicts:
#   conflict services/src/common/util/form_report.cpp
2026-08-04 14:09:27 +08:00
zhangsaiyang1 016f25df4d 修改检视意见
Signed-off-by: zhangsaiyang1 <zhangsaiyang1@h-partners.com>
2026-08-04 11:46:55 +08:00
yzy-15 60a15d908a fix: add input validation and null checks for security hardening
- ets_form_observer: validate callback/filter params are not undefined
- js_live_form_extension: check moduleName is not empty before CreateModuleContext
- form_supply_stub: validate FormState value range in HandleOnAcquireStateResult
- template_form_detail_info: validate each field read from parcel in ReadFromParcel
- theme_manager_service_param: validate reads and enum ranges in Unmarshall
- form_report: reject invalid formId (<=0) before statistics handling
- form_record_report: check GetFormRecord return value before use
- theme_form_client: validate themeFormDimension/themeFormLocation ranges
- form_host_callback: validate formId and callerToken in OnAcquired

AI[99%] Human Fixed[0%] Human[1%] AI Adopted[100%]
Co-authored-by: opencode (glm-5.2) <ai@local>

Change-Id: I9f58bdc0aa0f433477f57f1eafc4ba41af62a99a
Signed-off-by: yzy-15 <yuzhiyong6@h-partners.com>
2026-08-03 16:42:56 +08:00
AspTATA 3f3ef86e4d fix: HandleSetBackgroundFunction补充funcName/params空值校验,符合IPC输入验证规范
Signed-off-by: AspTATA <xionglinhong1@huawei.com>
2026-08-03 16:39:51 +08:00
AspTATA e0f7fb44a8 fix: 评审意见修复:补全Stub handler、收紧校验阈值、补全锁与日志
- 补全SetBackgroundFunction的Stub case与Handle函数(form_mgr_stub.cpp/.h)
- SetBundleManager补ibundleMutex_锁,消除与GetBundleMgr锁内读写的数据竞争
- FormSupplyCallback单例改回锁方案,恢复new失败后的重试能力
- MAX_LAYOUT_SCALE从1000.0f收紧至100.0f并提取为具名常量
- GetFilesSize溢出时补filesSize.emplace_back保持长度对应,日志补充说明
- 溢出日志与枚举定义补充density输出与401错误码注释

Signed-off-by: AspTATA <xionglinhong1@huawei.com>
2026-08-03 10:56:53 +08:00
AspTATA 95d41d93be fix: 修复form_fwk空指针、并发竞争、IPC鉴权及整数溢出等安全问题
- FFI入口新增空指针检查,new(nothrow)返回值判空
- 修复GetBundleMgr与FormSupplyCallback单例DCLP竞争(改call_once)
- SetBackgroundFunction补写InterfaceToken并改用标准SendTransactCmd
- FormHostProxy写token失败后补return,不再继续发送
- GetStringInfo读取失败返回ERR_COMMON_CODE,避免false误判为成功
- SetUIExtCustomDensity新增上界校验与浮点乘法溢出预判
- GetFilesSize累加与LINEAR重试延迟乘法新增整数溢出预判
- Dump入口集中校验系统应用权限

Signed-off-by: AspTATA <xionglinhong1@huawei.com>
2026-07-31 17:08:21 +08:00
zhangsaiyang1 2674425d70 内存安全、类型混淆问题处理
Co-Authored-By: Agent

Signed-off-by: zhangsaiyang1 <zhangsaiyang1@h-partners.com>
2026-07-31 16:01:44 +08:00
yzy-15 2e95808859 fix: harden JSON parsing safety and input validation in form_fwk
- Replace nlohmann::json::parse with SafeJsonParse across 10+ files
- Add type/size/object validation in form_provider_data and form_binding_data
- Add DB corruption recovery in form_info_mgr (remove corrupted entries on InitFromJson failure)
- Add JSON validity check before DB writes in form_info_rdb_storage_mgr
- Buffer file content before parsing in form_module_checker
- Move jsonFormProviderData_ member to private scope

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

Change-Id: I6d892b05b77c1453d748a2b8b54bbe9b65ce619e
Signed-off-by: yzy-15 <yuzhiyong6@h-partners.com>
2026-07-29 16:05:59 +08:00
allenlee6 34910ade8e Merge branch 'master' of git@gitcode.com:allenlee6/ability_form_fwk_7251.git into 'master'
# Conflicts:
#   conflict services/src/form_mgr/form_data_adapter.cpp
2026-07-23 16:11:47 +08:00
openharmony_ci 4d4ca6eb2a !3722 merge master into master
fix: 日志脱敏处理

Created-by: gcw_jtkehB7L
Commit-by: wanrenjie;gcw_jtkehB7L
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_form_fwk!3722
2026-07-23 11:18:21 +08:00
wanrenjie 640ec194d6 Revert "refactor: 优化文件路径脱敏,避免字符串拷贝"
This reverts commit 85435e97b4.

Signed-off-by: wanrenjie <wanrenjie1@huawei.com>
Change-Id: I9f8c7e0374dbbbef8d829718134c781006a4ffd5
2026-07-22 10:12:15 +08:00
allenlee6 4a067fb7c9 update: 更新文件 form_mgr_stub.cpp
Signed-off-by: allenlee6 <lishengyang5@huawei.com>
2026-07-21 23:17:31 +08:00
allenlee6 a3de5df024 update: 更新文件 form_mgr_stub.cpp
Signed-off-by: allenlee6 <lishengyang5@huawei.com>
2026-07-21 23:16:38 +08:00
allenlee6 e5fdaaabad update: 更新文件 form_mgr_proxy.cpp
Signed-off-by: allenlee6 <lishengyang5@huawei.com>
2026-07-21 23:15:50 +08:00
wanrenjie 85435e97b4 refactor: 优化文件路径脱敏,避免字符串拷贝
Signed-off-by: wanrenjie <wanrenjie1@huawei.com>
Change-Id: I70a380eb961a86cd49025863866ccdc65b1357a4
2026-07-21 16:37:01 +08:00
wanrenjie ed4570fc85 refactor: 优化代码格式
Signed-off-by: wanrenjie <wanrenjie1@huawei.com>
Change-Id: Ia50cd125199b244f8353a9383e453f2df6428b52
2026-07-20 10:37:50 +08:00
allenlee6 3457333e26 Merge branch 'master' of git@gitcode.com:allenlee6/ability_form_fwk_7251.git into 'master'
Co-Authored-By: Agent
Signed-off-by: allenlee6 <lishengyang5@huawei.com>
2026-07-18 20:23:56 +08:00
allenlee6 2a9d2905a3 feat(form_fwk): add updateFormCrossBundle API and full-layer TDD coverage
新增 formAgent.updateFormCrossBundle 系统 API(@systemapi,@permission
ohos.permission.UPDATE_FORM_CROSS_BUNDLE),允许系统应用跨 bundle 刷新卡片。

Inner API / Kit / Service / Adapter / NAPI 全链路实现:
- 新增 IPC 消息 FORM_MGR_UPDATE_FORM_CROSS_BUNDLE 及对应 Proxy/Stub
- 新增 IFormMgr::UpdateFormCrossBundle 虚函数(默认实现 ERR_OK)
- 新增 FormMgrService 权限/系统应用/跨本地账户校验
- 新增 FormMgrAdapterFacade 包一层错误码映射
- 新增 FormMgr Kit 接口(含 IN_RECOVERING / Connect / proxy null 防御)
- 新增 JsFormAgent NAPI 入口(Promise 形态,含 handle scope)
- 新增专用错误码 ERR_APPEXECFWK_FORM_PERMISSION_DENY_UPDATE_FORM_CROSS_BUNDLE (2293857)
  用于在 201 映射中精准指向 UPDATE_FORM_CROSS_BUNDLE 权限名

测试覆盖(按方案文档 §7 完整对齐):
- Service 测试 8 个用例(fms_form_mgr_service_test)
- Kit 测试 6 个用例(fms_form_mgr_update_form_test)覆盖 IN_RECOVERING / formId<=0 /
  formBindingData 空 / Connect 失败 / remoteProxy_ null / 端到端透传
- Proxy 测试 3 个用例(form_mgr_proxy_test)
- Stub 测试 2 个用例(form_mgr_stub_test)
- 新增 NAPI 测试目录 form_agent_napi_test(4 个契约面用例 + BUILD.gn)
- Fuzz 测试扩展 formmgrstubtwo_fuzzer(MESSAGE_LAST=3091 覆盖新消息码)
- Mock 支撑:mock_form_mgr_service.h 新增 UpdateFormCrossBundle 桩

Co-Authored-By: Agent
Signed-off-by: allenlee6 <lishengyang5@huawei.com>
2026-07-18 20:07:02 +08:00
wutouxu 4ad0789ef7 json解析异常问题修复
Change-Id: I1495a483b255a65a350e58f021db29166335a1b4
Signed-off-by: wutouxu <zhaolixue2@huawei.com>
2026-07-18 14:20:24 +08:00
wutouxu 48082ac386 增加json解析深度校验
🤖 AI[99%] 🔧 Human Fixed[0%] 🧑 Human[1%] 👌 AI Adopted[100%]
Co-authored-by: opencode (MiniMax-M3) <ai@local>
Co-authored-by: opencode (glm-5.1) <ai@local>
Co-authored-by: claude (unknown) <ai@local>
Co-authored-by: opencode (MiniMax-M3) <ai@local>
Co-authored-by: opencode (glm-5.1) <ai@local>

Change-Id: Idec57dac8930127fdce14e6d20748203fabe2ee0
Signed-off-by: wutouxu <zhaolixue2@huawei.com>
2026-07-17 17:19:19 +08:00
wanrenjie ebc41f45fb fix: 日志脱敏处理
Signed-off-by: wanrenjie <wanrenjie1@huawei.com>
Change-Id: Ifd66d880ad13e0be7aaf95cf5235de1898d74559
2026-07-17 09:00:37 +08:00
gcw_jtkehB7L 0020a73efc fix: 日志脱敏处理
Signed-off-by: gcw_jtkehB7L <wanrenjie1@huawei.com>
2026-07-15 16:07:56 +08:00
xiangcong3 1f0acd0aca fix(copyright): 校正 27 个文件末尾年到最后实质修改年
首年恢复 commit 的末尾年沿用了误改状态的值, 未反映文件之后的实质
修改。核查 b61efb95 上每个文件最后修改年, 27 个末尾年偏小, 更新到
真实最后修改年(23 个→2026, 4 个→2025)。

Co-Authored-By: Claude <noreply@anthropic.com>

Signed-off-by: xiangcong3 <xiangcong4@huawei.com>

🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%]
2026-07-06 19:56:42 +08:00
xiangcong3 836691785f fix(copyright): 恢复 58 个源文件版权头首年
重构/整改/新增接口类提交曾将版权头从范围式(如 2021-2026)误改为
单年当年(如 2026),丢失首次发布年。按 OpenHarmony license-and-
copyright-specifications §3-3 恢复为 首年-当前年。

依据 git log -p -G 重建每个文件版权首年历史,定位当前首年大于
历史最小首年的文件;独立复核 58/58 通过,且每个文件 Copyright (c)
仅出现 1 次(无测试字符串污染)。

Co-Authored-By: Claude <noreply@anthropic.com>

Signed-off-by: xiangcong3 <xiangcong4@huawei.com>

🤖 AI[0%] 🔧 Human Fixed[0%] 🧑 Human[100%] 👌 AI Adopted[0%]
2026-07-06 16:25:50 +08:00
openharmony_ci d53d6739ba !3688 merge log-optimization into master
日志优化

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

**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用例
- [ ] 已验证
- [X] 不涉及。如不涉及,请写明理由

See merge request: openharmony/ability_form_fwk!3688
2026-06-30 10:55:04 +08:00
luyangyi 915d3b5750 日志优化:降级高频常态分支日志为DEBUG并精简冗余打印
Co-Authored-By: Claude <noreply@anthropic.com>

🤖 AI[33%] 🔧 Human Fixed[0%] 🧑 Human[67%] 👌 AI Adopted[100%]

Change-Id: I97e7d427804f9a6837d400bd40b7e5a10d1d48a9
Signed-off-by: luyangyi <luyangyi2@huawei.com>
2026-06-27 18:46:13 +08:00
xiangcong3 26880817a9 ROM optimization: FormAbilityConnection继承切换为AbilityConnectionStub 消除IPC Stub重复代码
将FormAbilityConnection从继承ProviderConnectStub改为继承AAFwk::AbilityConnectionStub
两者共享相同的IRemoteStub<IAbilityConnection>基类和接口描述符(ohos.abilityshell.DistributedConnection)
IPC分发逻辑完全一致 AbilityConnectionStub使用unique_ptr管理内存更安全

变更:
- form_ability_connection.h: include和继承声明修改
- BUILD.gn: 增加ability_connect_callback_stub依赖
- 删除ProviderConnectStub源码(provider_connect_stub.h/cpp 128行)及测试
- 删除libfms.map符号导出、测试BUILD.gn引用
- 242个测试BUILD.gn增加ability_connect_callback_stub external_deps

编译验证通过(hb build form_fwk 业务8秒 测试12秒)

Signed-off-by: xiangcong3 <xiangcong4@huawei.com>

🤖 AI[100%] 🔧 Human Fixed[0%] 🧑 Human[0%] 👌 AI Adopted[100%]
Co-authored-by: opencode (Sisyphus) <ai@local>
2026-06-25 14:14:38 +08:00
xiangcong3 668b8f2f80 ROM optimization: 删除无效IPC Proxy类 减少9.6KB产物体积
删除两个无任何生产代码调用引用的IPC Proxy类:
1. ProviderConnectProxy(189行): AMS模块已有Proxy实现 form_fwk的属于冗余
2. FreeInstallStatusCallBackProxy(115行): 接口描述符与ability_runtime的IAtomicServiceStatusCallback完全相同 BMS通过SendRequest手动构造IPC请求 不依赖任何Proxy实现

编译验证通过 产物大小变化:
- libform_manager.z.so: 358516 -> 351508 (-6.8KB -1.96%)
- libfms.z.so: 1832016 -> 1829200 (-2.8KB -0.15%)
- 合计ROM产物减少: 9.6KB

Signed-off-by: xiangcong3 <xiangcong4@huawei.com>

🤖 AI[100%] 🔧 Human Fixed[0%] 🧑 Human[0%] 👌 AI Adopted[100%]
Co-authored-by: opencode (Sisyphus) <ai@local>
2026-06-24 17:13:54 +08:00
openharmony_ci cba9538bf9 !3669 merge 0513 into master
ROUTER_EVENT 增加 URI信息

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

**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用例
- [x] 已验证
- [ ] 不涉及。如不涉及,请写明理由

See merge request: openharmony/ability_form_fwk!3669
2026-06-21 15:42:08 +08:00