Files
security_access_token/bundle.json
T
openharmony_ci 0cf4d33bf0 !4634 merge master into master
napi整改

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

### 测试用例(附上截图,不涉及不需要说明不涉及原因):
1、TDD:
![image.png](https://raw.gitcode.com/user-images/assets/4390047/771d89ec-e387-4cfb-af75-29df3134d637/image.png 'image.png')
2、XTS:

3、手工用例(自验证步骤/预期结果/实际结果):
# 📋 综合代码修改检视报告

## 基本信息

| 字段 | 值 |
|------|------|
| **提交哈希** | `526b148ed50f2adfce28628e4ce9c2f29db78b0d` |
| **提交标题** | napi整改 |
| **作者** | zhenghui25 \<zhenghui25@h-partners.com\> |
| **提交日期** | 2026-06-26 10:00:44 +0800 |
| **变更文件** | 2 个 |
| **新增行数** | 2 |
| **删除行数** | 0 |
| **检视日期** | 2026-07-14 |

---

## 📋 检视摘要 (Executive Summary)

### 变更概览

本次提交在两个文件中添加了 **libuv** 依赖声明:

| 文件 | 变更 | 行号 |
|------|------|:----:|
| [`bundle.json`](bundle.json:57) | 在 `deps.components` 中添加 `"libuv"` | L57 |
| [`frameworks/js/napi/el5filekeymanager/BUILD.gn`](frameworks/js/napi/el5filekeymanager/BUILD.gn:40) | 在 `external_deps` 中添加 `"libuv:uv"` | L40 |

---

###  检查项目清单

#### 🔐 Security Review(安全检查)
-  内存安全: 无问题(纯构建配置变更,无代码逻辑修改)
-  输入验证: 无问题
-  权限控制: 无问题
-  敏感信息: 无问题
-  并发安全: 无问题
-  整数安全: 无问题

**小计**: 6/6 通过 

---

#### 🔍 Logic Analyzer(逻辑分析)
-  libuv 依赖: ace_napi 已改为 public 依赖 libuv,调用方需显式链接(L-001 已澄清)
-  控制流: 无问题
-  数据流: 无问题
-  边界条件: 无问题
-  错误处理: 无问题
-  并发控制: 无问题

**小计**: 6/6 通过 

---

#### 📊 DFX Reviewer(DFX检查)
-  客户端事件禁令: 无涉及(构建配置变更)
-  HiSysEvent 覆盖: 无涉及
-  事件场景区分: 无涉及
-  条件编译: 无涉及

**小计**: 4/4 通过 

---

#### 📋 Code Review Checklist(规范检查)
-  兼容性: 无破坏性变更(仅新增构建依赖)
-  API 变更: 无 API 变更
-  IDL 接口: 无 IDL 变更
-  日志规范: 无涉及
-  命名规范: 字母序排列正确
-  范围性整改: 本次仅针对 el5 模块,其他 NAPI 模块将在后续提交中处理(C-001 已澄清)
-  构建语法: 正确

**小计**: 7/7 通过 

---

#### 🧪 Test Coverage Reviewer(测试覆盖度检查)
-  修改点为0个功能逻辑变更:纯构建配置变更,无需测试覆盖
-  不影响任何功能代码路径

**小计**: 不适用 / 无需测试 

---

#### 🎨 Coding Style Review(编码风格检查)
-  格式:两个文件的插入位置均保持了字母序排列
-  命名风格:符合项目惯例
-  注释风格:无涉及

**小计**: 通过 

---

### 🎯 总体评价

| 维度 | 通过率 | 等级 | 评价 |
|------|:------:|:----:|------|
| Security Review | 100% (6/6) | 🟢 优秀 | 无安全问题 |
| Logic Analyzer | 100% (6/6) | 🟢 优秀 | 依赖已澄清:ace_napi public 依赖整改 |
| DFX Reviewer | 100% (4/4) | 🟢 优秀 | 无 DFX 问题 |
| Code Review Checklist | 100% (7/7) | 🟢 优秀 | 范围性整改,无问题 |
| Test Coverage Reviewer | N/A | 🟢 N/A | 无需测试覆盖 |
| Coding Style Review | 100% | 🟢 优秀 | 编码风格正确 |

**整体评分**: 100/100 🟢 优秀
**整体风险等级**: 🟢 **无风险**
**是否建议上库**:  **可直接合入**

---
### 兼容性上库自检:
- [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!4634
2026-07-14 17:04:00 +08:00

280 lines
9.8 KiB
JSON

{
"name": "@ohos/access_token",
"description": "access_token",
"version": "3.1.0",
"license": "Apache License 2.0",
"publishAs": "code-segment",
"segment": {
"destPath": "base/security/access_token"
},
"dirs": {},
"scripts": {},
"component": {
"name": "access_token",
"subsystem": "security",
"syscap": [
"SystemCapability.Security.AccessToken",
"SystemCapability.Security.ScreenLockFileManager"
],
"hisysevent_config": [
"//base/security/access_token/hisysevent.yaml"
],
"features": [
"access_token_feature_coverage",
"access_token_camera_float_window_enable",
"access_token_with_distributed_capability",
"access_token_enhance_capability"
],
"adapted_system_type": [ "standard" ],
"rom": "10000KB",
"ram": "5000KB",
"deps": {
"components": [
"ability_base",
"ability_runtime",
"asset",
"audio_framework",
"ace_engine",
"bounds_checking_function",
"bundle_framework",
"c_utils",
"camera_framework",
"cJSON",
"common_event_service",
"config_policy",
"device_manager",
"dsoftbus",
"eventhandler",
"ffrt",
"hicollie",
"hisysevent",
"hitrace",
"hilog",
"init",
"ipc",
"json",
"memmgr",
"libuv",
"napi",
"openssl",
"os_account",
"power_manager",
"relational_store",
"safwk",
"samgr",
"screenlock_mgr",
"selinux_adapter",
"security_guard",
"sqlite",
"window_manager",
"zlib",
"runtime_core",
"appverify"
],
"third_party": []
},
"build": {
"group_type": {
"base_group": [
"//base/security/access_token/tools:tools_atm"
],
"fwk_group": [
"//base/security/access_token/interfaces/kits/capi:capi_packages",
"//base/security/access_token/interfaces/kits/cj:cj_packages",
"//base/security/access_token/frameworks/js/napi:napi_packages",
"//base/security/access_token/frameworks/ets/ani:arkts_package"
],
"service_group": [
"//base/security/access_token/interfaces/innerkits/tokensync:libtokensync_sdk",
"//base/security/access_token/services/accesstokenmanager:accesstoken_manager_service",
"//base/security/access_token/services/accesstokenmanager/main/sa_profile:accesstoken_sa_profile_standard",
"//base/security/access_token/services/el5filekeymanager:el5filekeymanager",
"//base/security/access_token/services/tokensyncmanager:tokensyncmanager",
"//base/security/access_token/services/privacymanager:privacymanager",
"//base/security/access_token/services/accesstokenmanager/etc:access_token.para",
"//base/security/access_token/services/accesstokenmanager/etc:access_token.para.dac",
"//base/security/access_token/services/common:accesstoken_common"
]
},
"inner_kits": [
{
"name": "//base/security/access_token/interfaces/innerkits/accesstoken:libaccesstoken_sdk",
"header": {
"header_files": [
"access_token_error.h",
"access_token.h",
"accesstoken_callback_stubs.h",
"accesstoken_callbacks.h",
"accesstoken_kit.h",
"accesstoken_state_change_ipc_interface_code.h",
"atm_tools_param_info.h",
"hap_token_info_for_sync_parcel.h",
"hap_token_info.h",
"i_permission_state_callback.h",
"i_token_sync_callback.h",
"native_token_info.h",
"perm_state_change_callback_customize.h",
"permission_def.h",
"permission_grant_info.h",
"permission_list_state.h",
"permission_state_change_info.h",
"permission_state_full.h",
"permission_status.h",
"sec_comp_enhance_data.h",
"access_token_basic_type.h",
"token_sync_kit_interface.h",
"tokenid_kit.h",
"tokensync_callback_ipc_interface_code.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/accesstoken/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/accesstoken:libaccesstoken_compat_sdk",
"header": {
"header_files": [
"access_token_error.h",
"accesstoken_compat_kit.h",
"access_token_basic_type.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/accesstoken/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/accesstoken:libtokenid_sdk",
"header": {
"header_files": [
"tokenid_kit.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/accesstoken/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/nativetoken:libnativetoken",
"header": {
"header_files": [
"nativetoken_kit.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/nativetoken/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/nativetoken:libnativetoken_shared",
"header": {
"header_files": [
"nativetoken_kit.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/nativetoken/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/privacy:libprivacy_sdk",
"header": {
"header_files": [
"active_change_response_info.h",
"add_perm_param_info.h",
"on_permission_used_record_callback.h",
"perm_active_status_customized_cbk.h",
"permission_used_request.h",
"permission_used_result.h",
"permission_used_type_info.h",
"permission_used_type.h",
"privacy_error.h",
"privacy_kit.h",
"privacy_param.h",
"privacy_permission_record_ipc_interface_code.h",
"state_customized_cbk.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/privacy/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/token_callback:libtoken_callback_sdk",
"header": {
"header_files": [
"token_callback_stub.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/token_callback/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/token_setproc:libtoken_setproc",
"header": {
"header_files": [
"perm_setproc.h",
"setproc_common.h",
"spm_setproc.h",
"token_setproc.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/token_setproc/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/token_setproc:libtokensetproc_shared",
"header": {
"header_files": [
"perm_setproc.h",
"setproc_common.h",
"spm_setproc.h",
"token_setproc.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/token_setproc/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/token_setproc:libpermsetproc_shared",
"header": {
"header_files":[
"perm_setproc_c.h",
"setproc_common.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/token_setproc/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/analysis_model:libcodesignature_analysis",
"header": {
"header_files": [
"code_signature_analysis_kit.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/analysis_model/include"
}
},
{
"name": "//base/security/access_token/interfaces/inner_api/el5filekeymanager:el5_filekey_manager_sdk",
"header": {
"header_files": [
"app_key_info.h",
"data_lock_type_ext.h",
"el5_filekey_callback_stub.h",
"el5_filekey_manager_error.h",
"el5_filekey_manager_kit.h"
],
"header_base": "//base/security/access_token/interfaces/inner_api/el5filekeymanager/include"
}
},
{
"name": "//base/security/access_token/interfaces/innerkits/tokensync:libtokensync_sdk",
"header": {
"header_files": [
"token_sync_kit.h",
"token_sync_kit_loader.h"
],
"header_base": "//base/security/access_token/interfaces/innerkits/tokensync/include"
}
},
{
"name": "//base/security/access_token/interfaces/kits/cj/accesstoken:cj_ability_access_ctrl_ffi"
},
{
"name": "//base/security/access_token/interfaces/kits/cj/screenlockfilemanager:cj_screen_lock_file_manager_ffi"
}
],
"test": [
"//base/security/access_token:accesstoken_build_fuzz_test",
"//base/security/access_token:accesstoken_build_module_test"
]
}
}
}