263 Commits

Author SHA1 Message Date
xia-bubai 045aec50bd sleep before QueryStatusByTokenIDStubFuzzTest exit
Signed-off-by: xia-bubai <xiacong5@huawei.com>

AI[0%] Human Fixed[0%] Human[100%] AI Adopted[0%]

Change-Id: Ia1e11cf119d59216d2b72f453153f9a334f9ed76
2026-08-19 17:31:40 +08:00
xia-bubai 2e0a30d0b5 1、补充服务启动阶段打点;2、新增hap数据为空的恢复机制
Signed-off-by: xia-bubai <xiacong5@huawei.com>

AI[31%] Human Fixed[0%] Human[69%] AI Adopted[100%]

Change-Id: Ib9c7aaa4b06d509587a740555c317ca172b14cad
2026-08-18 13:59:22 +08:00
xia-bubai e999a7b0ca revert spm code
Signed-off-by: xia-bubai <xiacong5@huawei.com>

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

Change-Id: I02659caf0f6043bf415ee70325ced4a78bf8d947
2026-07-16 23:30:24 +08:00
openharmony_ci b09824f495 !4694 merge fix77 into master
解决安全控件服务拉起低概率失败修复后的遗留问题

Created-by: panyongchaox
Commit-by: panyongchaox
Merged-by: openharmony_ci
Description: ### 关联的issue:
https://gitcode.com/openharmony/security_access_token/issues/3449
### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
![image.png](https://raw.gitcode.com/user-images/assets/4390047/f76bee37-8332-4ca8-9f1b-3319127e93a3/image.png 'image.png')

2、XTS:

3、手工用例(自验证步骤/预期结果/实际结果):

### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [x] 是否需要合入权限定义
    - [x] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [x] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [x] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [x] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4694
2026-07-10 18:12:38 +08:00
xia-bubai b822a7d367 1.add check uid
2.migration sign after 15 min

Signed-off-by: xia-bubai <xiacong5@huawei.com>

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

Change-Id: I60abc4a850461c17c0c2c5e148ac242b7e40ba7d
2026-07-07 15:49:46 +08:00
panyongchaox 4b1e9161a9 将Addseccompenhance从parcels改为idl
Signed-off-by: panyongchaox <panyongchao3@huawei.com>
Change-Id: I08f2df1bce8223555c1291ae406b7abec3a9062c
2026-07-07 11:42:41 +08:00
bigtea 28c9cefb7e Optimize dfx info
Co-Authored-By: Manual
Signed-off-by: bigtea <tianqushen@h-partners.com>
2026-07-04 10:58:54 +08:00
xia-bubai a056710453 add hisysevent report and do some optimize
Signed-off-by: xia-bubai <xiacong5@huawei.com>

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

Change-Id: Ib4f962f77f511122248fad779810fd2f65a16d0c
2026-07-01 20:45:10 +08:00
openharmony_ci 69c2c855de !4654 merge master into master
补充RefreshTokenStatus的TDD和FUZZ用例

Created-by: chennian
Commit-by: chennian
Merged-by: openharmony_ci
Description: ### 关联的issue:
https://gitcode.com/openharmony/security_access_token/issues/3422
### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
已验证
2、XTS:
不涉及
3、手工用例(自验证步骤/预期结果/实际结果):
不涉及
### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4654
2026-06-29 19:47:49 +08:00
chennian 481c181fa7 补充RefreshTokenStatus的TDD和FUZZ用例
Co-Authored-By: Agent

Signed-off-by: chennian <chennian1@huawei.com>
Change-Id: I2d082d79776f72158dc378d33bf27c1b35b96a4d
2026-06-29 18:48:16 +08:00
openharmony_ci 3c6d986cf2 !4640 merge claw into master
2rd claw feat

Created-by: harylee
Commit-by: Haryslee
Merged-by: openharmony_ci
Description: ![image.png](https://raw.gitcode.com/user-images/assets/4390047/2bad010e-ccc5-461c-916e-48cfa4780e9e/image.png 'image.png')
### 关联的issue:
https://gitcode.com/openharmony/security_access_token/issues/3348
### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
7个用例失败为已知问题
![image.png](https://raw.gitcode.com/user-images/assets/4390047/d71c6430-bff3-4695-be48-dc40fa09b8ac/image.png 'image.png')
2、XTS:

3、手工用例(自验证步骤/预期结果/实际结果):

### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4640
2026-06-29 16:48:22 +08:00
Haryslee 109ac9cfc8 2rd claw feat
Signed-off-by: Haryslee <lihao189@huawei.com>

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

Change-Id: I71b491fde7feaffee9089cd202bad1634242a441
2026-06-27 21:12:41 +08:00
openharmony_ci 0f8d9098ac !4630 merge fuzz into master
修复部分接口fuzz跑不进去

Created-by: chennian
Commit-by: chennian
Merged-by: openharmony_ci
Description: ### 关联的issue:
https://gitcode.com/openharmony/security_access_token/issues/3402
### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
不涉及
2、XTS:
不涉及
3、手工用例(自验证步骤/预期结果/实际结果):
fuzz本地跑可以跑到服务端
### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4630
2026-06-26 12:12:40 +08:00
chennian 6b210fca35 修复部分接口fuzz跑不进去
Co-Authored-By: Agent

Signed-off-by: chennian <chennian1@huawei.com>
Change-Id: I8a40c7073316dc60a7ed753200734b64e916057b
2026-06-26 09:27:18 +08:00
openharmony_ci c9a4b04949 !4620 merge fuzz into master
fuzz test

Created-by: harylee
Commit-by: Haryslee
Merged-by: openharmony_ci
Description: ### 关联的issue:
https://gitcode.com/openharmony/security_access_token/issues/3390
### 修改描述(修改功能描述,规格变更说明):
fuzz test
### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
不涉及
2、XTS:
不涉及
3、手工用例(自验证步骤/预期结果/实际结果):
不涉及
### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:不涉及
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4620
2026-06-25 20:56:46 +08:00
openharmony_ci c0ffbf6149 !4592 merge master into master
Add mutex in GetLocalDeviceId

Created-by: bigtea
Commit-by: bigtea
Merged-by: openharmony_ci
Description: ![image.png](https://raw.gitcode.com/user-images/assets/4390047/8fe6392e-ab36-427f-8bdd-0dd5970bcb42/image.png 'image.png')
### 关联的issue:

### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
已测试通过
2、XTS:
已测试通过
3、手工用例(自验证步骤/预期结果/实际结果):
应用安装升级正常,使用记录正常,权限同步正常
### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4592
2026-06-25 19:38:50 +08:00
openharmony_ci 71bd9d549a !4612 merge wls_20260622 into master
告警修复20260622

Created-by: wu-liushuan
Commit-by: wu-liushuan
Merged-by: openharmony_ci
Description: ![image.png](https://raw.gitcode.com/user-images/assets/4390047/401beef5-2ea5-4573-b532-f7f2e678eb0b/image.png 'image.png')
### 关联的issue:

### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:

2、XTS:

3、手工用例(自验证步骤/预期结果/实际结果):

### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [X] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [X] 不涉及对外接口新增权限校验
- [X] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [X] 不涉及系统可创建的实例数量收紧
- [X] 不涉及修改了接口返回的数据
- [X] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [X] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [X] 接口性能未出现明显劣化

### 权限合入自检:
- [X] 是否需要合入权限定义
    - [X] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [X] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [X] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [X] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [X] 【规则】高频代码的正常流程中禁止打印日志
- [X] 【规则】在基本不可能发生的点必须要打印日志
- [X] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [X] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [X] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印

See merge request: openharmony/security_access_token!4612
2026-06-25 19:20:32 +08:00
bigtea 185ed0cb2a Add mutex in GetLocalDeviceId
Co-Authored-By: Agent
Signed-off-by: bigtea <tianqushen@h-partners.com>
2026-06-25 16:06:51 +08:00
wu-liushuan c5fc30b760 告警修复20260622
Co-Authored-By: Manual

Signed-off-by: wu-liushuan <wuliushuan.30044128@h-partners.com>

🤖‍ AI[94%] 👌 AI Adopted[94%] 🧑 Human[6%]
Co-authored-by: opencode (glm-5) <ai@local>

Change-Id: I816b4c862bf2b9f16614abe53e8094a472c0bae3
2026-06-25 14:51:17 +08:00
lihehe e18c193032 add support for no-signed haps for emulator
🤖‍ AI[0%] 👌 AI Adopted[0%] 🧑 Human[100%]

Change-Id: I2b55b1089ec1a93a0047ca84db5d02690a807f3e
Signed-off-by: lihehe <lihehao@huawei.com>
2026-06-25 12:08:33 +08:00
Haryslee 549a616e34 fuzz test
Signed-off-by: Haryslee <lihao189@huawei.com>

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

Change-Id: Ica82b9ffbcb4b1b58bab6b10a97396e8ed983852
2026-06-25 09:59:32 +08:00
openharmony_ci 9563fcec4c !4619 merge add_fuzztest_coverage into master
add fuzztest

Created-by: xia-bubai
Commit-by: xia-bubai
Merged-by: openharmony_ci
Description: ### 关联的issue:
https://gitcode.com/openharmony/security_access_token/issues/3396
### 修改描述(修改功能描述,规格变更说明):
增加fuzz用例
### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
不涉及
2、XTS:
不涉及
3、手工用例(自验证步骤/预期结果/实际结果):
不涉及
### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4619
2026-06-24 21:02:38 +08:00
xia-bubai 3c322f3fe5 add fuzztest
Signed-off-by: xia-bubai <xiacong5@huawei.com>

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

Change-Id: I36d9169e04a1ddc98b3d80a3f098dfedae01b03a
2026-06-24 18:52:15 +08:00
wu-liushuan 2b86853de2 修复fuzz用例GetPermissionsStatusStubFuzzTest service端未覆盖问题20260624
Co-Authored-By: Manual

Signed-off-by: wu-liushuan <wuliushuan.30044128@h-partners.com>

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

Change-Id: I27d71264792f8bc92e3f663ad5a355d67447f805
2026-06-24 16:30:12 +08:00
openharmony_ci 69771c818d !4616 merge master into master
Add install mock fuzz

Created-by: bigtea
Commit-by: bigtea
Merged-by: openharmony_ci
Description: ![image.png](https://raw.gitcode.com/user-images/assets/4390047/e9d7e521-e66d-4548-89fe-7c4d22465cc2/image.png 'image.png')
### 关联的issue:

### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
不涉及
2、XTS:
不涉及
3、手工用例(自验证步骤/预期结果/实际结果):
不涉及
4、FUZZ
已测试通过
### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4616
2026-06-24 09:02:16 +08:00
bigtea 571e274028 Add install mock fuzz
Co-Authored-By: Agent
Signed-off-by: bigtea <tianqushen@h-partners.com>
2026-06-23 15:42:24 +08:00
openharmony_ci 81f28e7696 !4547 merge addkey into master
Add sec comp enhance key store and get

Created-by: panyongchaox
Commit-by: panyongchaox
Merged-by: openharmony_ci
Description: ### 关联的issue:
https://gitcode.com/openharmony/security_access_token/issues/3338

### 修改描述(修改功能描述,规格变更说明):
提供了两个内部接口,供安全控件服务调用,可以让安全控件服务暂存其密钥在atm中

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
![image.png](https://raw.gitcode.com/user-images/assets/4390047/3f021d9e-4605-4a9c-8cef-b0fa3ed2036d/image.png 'image.png')

2、XTS:
不涉及
3、手工用例(自验证步骤/预期结果/实际结果):

### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [x] 是否需要合入权限定义
    - [x] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [x] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [x] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [x] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印
# SecComp Enhance Key 新增接口综合检视报告

## 1. 基本信息

- 检视对象:最新 commit `44b8f1744516c0070fb7908432e63fd67a08c2f9`
- Commit 标题:`Add sec comp enhance key store and get`
- 作者:`panyongchaox <panyongchao3@huawei.com>`
- 作者时间:`2026-06-05T15:51:35+08:00`
- 检视时间:`2026-06-18`
- 检视仓库:`base/security/access_token`
- 变更规模:39 个文件,新增 `StoreSecCompEnhanceKey` / `GetSecCompEnhanceKey` innerkit、IDL、service、agent、UT 和 fuzz 覆盖。

## 2. 检视方法

本次按 `comprehensive_review` 技能做综合审查,覆盖:

- Security Review:鉴权、敏感 key 处理、IPC 输入边界、日志泄露风险。
- Logic Analyzer:epoch 更新规则、并发读写、异常返回、状态清理。
- DFX Reviewer:日志分级、可诊断性、是否需要 HiSysEvent/HiTrace。
- Code Review Checklist:OpenHarmony 常见陷阱、IDL 兼容、编译接入、测试覆盖。

已执行的静态核查:

- `git show --stat --name-status HEAD`
- `git diff HEAD^ HEAD`
- `git diff --check HEAD^ HEAD`
- `rg` 检索新增接口、IPC code、feature flag 和调用链
- 检查已生成的 `access_token_manager_proxy.cpp` / `access_token_manager_stub.cpp`

未重新执行完整编译和 UT。当前 `out` 目录里未发现可直接运行的本次相关测试可执行文件,因此报告结论基于 diff、生成代码和静态路径分析。

## 3. 总体结论

未发现阻塞 PR 合入的安全、逻辑、DFX 或兼容性问题。

新增接口整体设计符合当前 `SECURITY_COMPONENT_ENHANCE_ENABLE` 体系:service 层只允许 `security_component_service` 调用,agent 层对 key size、epoch 回滚、同 epoch 不同 key 做了拦截,parcel 和 agent 临时 key 均有清零处理,UT/fuzz 覆盖了主要边界。

## 4. 风险与建议

### 4.1 低风险建议:client 侧可补充返回 key 的二次校验

位置:

- `interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp:1650`
- 生成代码参考:`out/rk3568/gen/base/security/access_token/services/accesstokenmanager/idl/access_token_manager_proxy.cpp:3479`

当前 `AccessTokenManagerClient::GetSecCompEnhanceKey` 在 proxy 返回 `RET_SUCCESS` 后,直接把 `SecCompEnhanceKeyParcel` 中的 `enhanceKey` 赋给出参。正常情况下 service 只会在 agent 返回成功后写出有效 parcel,因此主路径没有问题。

不过从防御式编程角度,`Get` 路径不像 `Store` 路径一样在 client 侧校验 `key.size`。如果 IPC 返回异常、生成代码读取 out parcel 失败但仍返回成功,client 可能把默认空 key 当作成功结果返回。建议在赋值前补充一次:

- `enhanceKey.key.size > 0`
- `enhanceKey.key.size <= MAX_HMAC_SIZE`

这不是当前主流程可稳定触发的问题,属于健壮性增强建议。

### 4.2 低风险建议:鉴权失败日志可在调试文档中说明

位置:

- `services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp:2637`
- `services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp:2645`

`StoreSecCompEnhanceKey` 和 `GetSecCompEnhanceKey` 都通过 `IsSecCompServiceCalling()` 鉴权,非 `security_component_service` 会直接返回 `ERR_PERMISSION_DENIED`。生成 proxy 的日志会打印类似 `Read result failed, code is: 107`,这里的 `107` 是 IPC command code `COMMAND_GET_SEC_COMP_ENHANCE_KEY`,不是 ATM 的业务错误码。

因此闭源仓单元测试如果没有切到 `security_component_service` native token,会看到 proxy 层日志但不一定看到 ATM service 的本地日志。建议在用例说明或调试文档中明确:测试该接口需要用 `GetNativeTokenId("security_component_service")` + `SetSelfTokenID(token)` 模拟调用方 token。

这属于可诊断性建议,不影响当前实现正确性。

## 5. 关键路径检视结果

### 5.1 鉴权

通过。

- `StoreSecCompEnhanceKey`:`AccessTokenManagerService::StoreSecCompEnhanceKey` 先调用 `IsSecCompServiceCalling()`,非 sec comp service 返回 `ERR_PERMISSION_DENIED`。
- `GetSecCompEnhanceKey`:`AccessTokenManagerService::GetSecCompEnhanceKey` 同样先鉴权。
- UT 覆盖:`SecCompEnhanceKeyService001` 使用 `foundation` token 断言拒绝;`SecCompEnhanceKeyService002` 使用 `security_component_service` token 断言成功。

相关位置:

- `services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp:2637`
- `services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp:2645`
- `services/accesstokenmanager/test/unittest/service/accesstoken_manager_service_test.cpp:3590`
- `services/accesstokenmanager/test/unittest/service/accesstoken_manager_service_test.cpp:3606`

### 5.2 输入边界和内存安全

通过。

- `AccessTokenKit::StoreSecCompEnhanceKey` 在 client API 入口校验 `key.size`,拒绝 0 和超过 `MAX_HMAC_SIZE` 的输入。
- `SecCompEnhanceKeyParcel::Marshalling` / `Unmarshalling` 在 IPC 序列化和反序列化时再次校验 size。
- `SecCompEnhanceAgent::StoreSecCompEnhanceKey` 在最终落状态前再次校验并使用 `memcpy_s`。
- `MAX_HMAC_SIZE` 为 160,所有 copy 目标 buffer 均以 `MAX_HMAC_SIZE` 为上限。

相关位置:

- `interfaces/innerkits/accesstoken/src/accesstoken_kit.cpp:1084`
- `frameworks/accesstoken/src/sec_comp_enhance_key_parcel.cpp:34`
- `frameworks/accesstoken/src/sec_comp_enhance_key_parcel.cpp:45`
- `services/accesstokenmanager/main/cpp/src/seccomp/sec_comp_enhance_agent.cpp:221`

### 5.3 敏感 key 生命周期

通过。

- parcel 析构时清空 `enhanceKey.key.data`,并清零 size/epoch。
- agent 写入新 key 前清理旧 key。
- agent 写入时先复制到局部 `newKey`,更新完成后清理局部副本。
- agent 析构时清理存储 key。
- 日志只输出 epoch 和 size,未输出 key 内容。

相关位置:

- `frameworks/accesstoken/src/sec_comp_enhance_key_parcel.cpp:25`
- `services/accesstokenmanager/main/cpp/src/seccomp/sec_comp_enhance_agent.cpp:43`
- `services/accesstokenmanager/main/cpp/src/seccomp/sec_comp_enhance_agent.cpp:126`
- `services/accesstokenmanager/main/cpp/src/seccomp/sec_comp_enhance_agent.cpp:248`
- `services/accesstokenmanager/main/cpp/src/seccomp/sec_comp_enhance_agent.cpp:255`

### 5.4 epoch 规则

通过。

当前规则:

- 无旧 key 时允许写入。
- 新 epoch 大于旧 epoch 时允许覆盖。
- 新 epoch 小于旧 epoch 时拒绝,防止回滚。
- epoch 相同且 key 相同:幂等成功。
- epoch 相同但 key 不同:拒绝。

UT 已覆盖非法 size、epoch 回滚、同 epoch 不同 key、`UINT64_MAX` 边界。

相关位置:

- `services/accesstokenmanager/main/cpp/src/seccomp/sec_comp_enhance_agent.cpp:237`
- `services/accesstokenmanager/main/cpp/src/seccomp/sec_comp_enhance_agent.cpp:241`
- `services/accesstokenmanager/test/unittest/seccomp/sec_comp_enhance_agent_test.cpp:193`

### 5.5 并发与状态隔离

通过。

- 新增 key 状态使用独立 `secCompEnhanceKeyMutex_` 保护。
- 原有 per-process enhance data 使用 `secCompEnhanceMutex_`,两类状态互不混用。
- `OnProcessDied` 和 `OnAppMgrRemoteDiedHandle` 只清理 per-process enhance data,不清理 stable enhance key;UT 已覆盖。
- 并发读写测试验证不会读到部分写入 key。

相关位置:

- `services/accesstokenmanager/main/cpp/include/seccomp/sec_comp_enhance_agent.h:68`
- `services/accesstokenmanager/main/cpp/include/seccomp/sec_comp_enhance_agent.h:70`
- `services/accesstokenmanager/test/unittest/seccomp/sec_comp_enhance_agent_test.cpp:225`
- `services/accesstokenmanager/test/unittest/seccomp/sec_comp_enhance_agent_test.cpp:254`

### 5.6 IDL / IPC 兼容性

通过。

父 commit 中:

- `RegisterSecCompEnhance` 为 101
- `UpdateSecCompEnhance` 为 102
- `GetSecCompEnhance` 为 103
- `SetPermissionStatusWithPolicy` 为 105
- `DeleteIdentity` 为 106

本 commit 新增:

- `StoreSecCompEnhanceKey` 使用原空档 `104`
- `GetSecCompEnhanceKey` 使用 `107`

已核验生成代码中 105/106 没有被挤动,仍分别对应 `COMMAND_SET_PERMISSION_STATUS_WITH_POLICY` 和 `COMMAND_DELETE_IDENTITY`。

相关位置:

- `services/accesstokenmanager/idl/IAccessTokenManager.idl:122`
- `services/accesstokenmanager/idl/IAccessTokenManager.idl:125`
- `out/rk3568/gen/base/security/access_token/services/accesstokenmanager/idl/iaccess_token_manager.h:136`

### 5.7 构建与符号导出

通过。

- 新 parcel 源文件在 `security_component_enhance_enable` 打开时加入 `frameworks/accesstoken` 构建。
- innerkit 新接口加入 `libaccesstoken_sdk.map` 导出。
- 新接口声明和实现均在 `SECURITY_COMPONENT_ENHANCE_ENABLE` 宏内,和现有 sec comp enhance 接口保持一致。

相关位置:

- `frameworks/accesstoken/BUILD.gn:75`
- `interfaces/innerkits/accesstoken/libaccesstoken_sdk.map:100`
- `interfaces/innerkits/accesstoken/include/accesstoken_kit.h:722`

### 5.8 DFX

通过,暂无必须新增 HiSysEvent/HiTrace 的点。

理由:

- 新逻辑是轻量内存状态读写,无数据库、网络、阻塞 I/O 或复杂跨服务链路。
- 错误路径有基础日志:size 非法、epoch 回滚、同 epoch 不同 key、key 未 ready、copy 失败。
- 日志没有打印 key 内容,符合敏感信息保护要求。

可优化点见 4.2:鉴权失败场景主要由调用侧 proxy 打出 IPC command code,建议在测试说明里解释,避免把 `107` 误认为业务错误码。

## 6. 测试覆盖检查

已有新增覆盖:

- agent UT:store/get、未 ready、非法 size、epoch 回滚、同 epoch 不同 key、最大 epoch、进程/AppMgr 清理不影响 stable key、并发读写、parcel 正反序列化异常输入。
- service UT:非 `security_component_service` 拒绝;`security_component_service` 允许 store/get。
- proxy mock UT:proxy 为空时的 store/get 异常路径。
- innerkit fuzz:`StoreSecCompEnhanceKeyFuzzTest`、`GetSecCompEnhanceKeyFuzzTest`。
- stub fuzz:`StoreSecCompEnhanceKeyStubFuzzTest`、`GetSecCompEnhanceKeyStubFuzzTest`。

建议后续如有时间补一个 client 成功路径的 mock/integration 用例,覆盖 `AccessTokenManagerClient::GetSecCompEnhanceKey` 成功返回后对 out parcel 的赋值和二次校验。

## 7. 结论

本 commit 可以继续提交 PR。当前未发现需要回退或阻塞合入的问题。

建议项均为低风险增强:

1. client `GetSecCompEnhanceKey` 成功返回后补充 `key.size` 校验。
2. 在测试/调试说明中解释 `Read result failed, code is: 107` 的含义,以及单测需要模拟 `security_component_service` token。


See merge request: openharmony/security_access_token!4547
2026-06-22 18:58:47 +08:00
xia-bubai 09e05d334f fix fuzztest
Signed-off-by: xia-bubai <xiacong5@huawei.com>

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

Change-Id: I67ffdfc1afc32a77bc21ea2886038c5fe8e8c727
2026-06-22 09:35:15 +08:00
panyongchaox 44b8f17445 Add sec comp enhance key store and get
Signed-off-by: panyongchaox <panyongchao3@huawei.com>
Change-Id: I0745b2731b9b1dff3b8683f33301a588ca533927
Signed-off-by: panyongchaox <panyongchao3@huawei.com>
2026-06-18 09:47:10 +08:00
wangyinghao c82b2ed728 Remove premigrateuid
Signed-off-by: wangyinghao <wangyinghao12@huawei.com>

🤖 AI[69%] 🔧 Human Fixed[0%] 🧑 Human[31%] 👌 AI Adopted[100%]

Change-Id: Ib23c312416d80662249a618d97a9456eef8e0b3e
2026-06-17 21:46:26 +08:00
openharmony_ci c3e57f80ae !4558 merge lsq_01 into master
补充测试,调整提示词

Created-by: linshuqing
Commit-by: LSQ
Merged-by: openharmony_ci
Description: ### 关联的issue:

### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
![image.png](https://raw.gitcode.com/user-images/assets/4390047/0e10450c-51e1-4b75-ae3d-8903e5a9a522/image.png 'image.png')
2、XTS:

3、手工用例(自验证步骤/预期结果/实际结果):

### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4558
2026-06-13 21:18:15 +08:00
LSQ 171bdfd417 补充测试,调整提示词
Signed-off-by: LSQ <linshuqing2@huawei.com>
2026-06-11 09:29:48 +08:00
chennian 0ef0220414 修改相机和麦克风单次授权切后台不回收权限
Signed-off-by: chennian <chennian1@huawei.com>
Change-Id: I44b530dd108c6035663a6f6226fe6dc8efa66e7d
2026-06-10 09:56:38 +08:00
Haryslee 2e46d8a5c6 delete skill
Signed-off-by: Haryslee <lihao189@huawei.com>

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

Change-Id: I477a717188afc367f3191aacf8706ab6779d6554
2026-06-06 23:24:22 +08:00
chennian 88bbcd1cb3 优化SetUserPolicy和ClearPolicy资料,支持传多个权限和修改userpolicy bug
Co-Authored-By: Agent

Signed-off-by: chennian <chennian1@huawei.com>
Change-Id: I7b865288deb71ad84392392ccfdb4e64f5222a46
2026-06-05 21:39:31 +08:00
openharmony_ci 3772b63233 !4498 merge master into master
Add spm install update

Created-by: bigtea
Commit-by: bigtea
Merged-by: openharmony_ci
Description: ### 关联的issue:

### 修改描述(修改功能描述,规格变更说明):
![image.png](https://raw.gitcode.com/user-images/assets/4390047/9622c90d-9b26-48b8-beb9-2236be3a3224/image.png 'image.png')

报告所有问题已确认,是问题的已修复
### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
用例已通过
2、XTS:
用例已通过
3、手工用例(自验证步骤/预期结果/实际结果):
应用安装,升级,功能正常
### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4498
2026-06-01 11:57:28 +08:00
bigtea 183a1935df Add spm install update
Co-Authored-By: Agent
Signed-off-by: bigtea <tianqushen@h-partners.com>
2026-06-01 09:15:14 +08:00
lihehe 4126e80f87 add deleting identity interface for hap
Signed-off-by: lihehe <lihehao@huawei.com>

🤖‍ AI[38%] 👌 AI Adopted[38%] 🧑 Human[62%]

Change-Id: I22b65028579493c8429da99966af805c36d2807c
2026-05-30 21:57:49 +08:00
wangyinghao 42eb76419e Add spm
Signed-off-by: wangyinghao <wangyinghao12@huawei.com>
Change-Id: Ic6547beb0b1306c436f3bdf2135670f8274c1fb1
Signed-off-by: wangyinghao <wangyinghao12@huawei.com>
2026-05-30 09:40:30 +08:00
openharmony_ci 79e8179815 !4492 merge add_bootverify into master
add boot verify

Created-by: xia-bubai
Commit-by: xia-bubai
Merged-by: openharmony_ci
Description: ### 关联的issue:
https://gitcode.com/openharmony/security_access_token/issues/3303
### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:

2、XTS:

3、手工用例(自验证步骤/预期结果/实际结果):

### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4492
2026-05-30 01:16:56 +08:00
xia-bubai 3f1a5ce7eb add boot verify
Signed-off-by: xia-bubai <xiacong5@huawei.com>

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

Change-Id: Ib5fe9bdd46b0152da0242f60be44f802e82cb696
2026-05-29 16:32:27 +08:00
Haryslee 719ac89316 fix fuzz
Signed-off-by: Haryslee <lihao189@huawei.com>

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

Change-Id: Ic2ca4115fe3cee213a2ddd3ca6090cecfa99c0e6
2026-05-29 11:16:41 +08:00
chennian f034126358 add fuzz test of cli
Co-Authored-By: Agent

Signed-off-by: chennian <chennian1@huawei.com>
Change-Id: Ice6672d7991b37df0b919c1cd08ca26477665db6
2026-05-15 09:49:34 +08:00
chennian 41e3f495df 测试用例支持mock权限
Co-Authored-By: Agent

Signed-off-by: chennian <chennian1@huawei.com>
Change-Id: Ief6ed654d202e4a9412f024a6559f61de4ace74d
2026-05-10 15:03:49 +08:00
Haryslee 499856862a support claw permission request
Co-Authored-By: Agent

Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: Ib5fc7a8ce99aaca819b1d9b96e463246bb1ad75f
2026-04-29 11:59:08 +08:00
Haryslee ee3f83d112 support enhancedIdentity for privacy framework
Co-Authored-By: Agent

Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: Ia4a1483969788458539233257f5c3d4891d3e07f
2026-04-12 16:20:20 +08:00
openharmony_ci 7056dc45bc !4157 merge 0316 into master
add add startUsingWithBundle

Created-by: chennian
Commit-by: chennian
Merged-by: openharmony_ci
Description: ### 关联的issue:
https://gitcode.com/openharmony/security_access_token/issues/3068
### 修改描述(修改功能描述,规格变更说明):

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
![image.png](https://raw.gitcode.com/user-images/assets/4390047/1085a507-1ac9-4580-a357-209cc4d4c9eb/image.png 'image.png')
2、XTS:

3、手工用例(自验证步骤/预期结果/实际结果):

### 兼容性上库自检:
- [x] 不涉及API功能发生变化
- [x] 不涉及改变回调函数或生命周期的触发时机或时序,或删除生命周期和回调函数
- [x] 不涉及参数的规格发生了变化,例如取值范围缩小等
- [x] 不涉及对外接口新增权限校验
- [x] 不涉及接口的使用约束规格收紧,例如权限开放范围变化
- [x] 不涉及系统可创建的实例数量收紧
- [x] 不涉及修改了接口返回的数据
- [x] 未新增错误抛出,包括新增错误码、对已有的场景从不会抛错误码变成会抛出错误
- [x] 未修改已有的错误码,对于相同的输入原本抛出A错误码变成了抛出B错误码
- [x] 接口性能未出现明显劣化

### 权限合入自检:
- [ ] 是否需要合入权限定义
    - [ ] 仅向系统服务开放的权限(availableType为SERVICE的权限)不允许合入global_system_resources仓
    - [ ] 非SERVICE的权限与global_system_resources联合构建,即两笔pr关联同一个issue
    - [ ] 填入必要参数name/grantMode/availableLevel/since/provisionEnable/distributedSceneEnable, 且与global_system_resources中声明(如果有)一致
    - [ ] 声明权限生效的设备平台范围deviceTypes,以列表方式声明("deviceTypes" : [ "xxx", "xxx"]),权限在所有设备通用为"general",非全平台生效按需填写,包括但不限于"phone"、"wearable"、"tablet"、"2in1"、"tv"、"car"

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

### 日志规范自检:
- [x] 【规则】高频代码的正常流程中禁止打印日志
- [x] 【规则】在基本不可能发生的点必须要打印日志
- [x] 【规则】事件记录的日志使用who do what 主谓宾的形式打印
- [x] 【规则】状态变化的日志打印使用state_name:s1->s2, reason:msg的形式打印
- [x] 【规则】参数值的日志打印使用name1=value1, name2=value2…的形式打印


See merge request: openharmony/security_access_token!4157
2026-03-20 18:15:09 +08:00
chennian 499cf76fec add add startUsingWithBundle
Co-Authored-By: Agent

Signed-off-by: chennian <chennian1@huawei.com>
Change-Id: I9ad63b8a72ed9cf7911df35ee05869fca5bd8833
2026-03-20 16:25:52 +08:00
chennian f85b6da5a4 Add validation for extra length
Co-Authored-By: Agent

Signed-off-by: chennian <chennian1@huawei.com>
Change-Id: I39304e0846ecbbd51dba5c441b3484115081a138
2026-03-17 09:04:35 +08:00
bigtea 5ae4827155 Add privacy remote test and compile isolated lite device
Signed-off-by: bigtea <tianqushen@h-partners.com>
2026-03-13 17:26:36 +08:00