已开启
【bug】SystemAbility profile libpath 缺少源码/构建闭合证据:libdistributed_camera_provider_proxy_1.1.z.so #841
HPP_ISCAS创建于  7月4日
HPP_ISCAS
7月4日 创建

SystemAbility profile libpath 缺少源码/构建闭合证据:libdistributed_camera_provider_proxy_1.1.z.so

检查出的组件和 Git 哈希

检查出的对象/组件:

  • SystemAbility profile 检查出的 libpath:libdistributed_camera_provider_proxy_1.1.z.so
  • 该对象应对应一个可由源码/BUILD 产出的共享库,通常形如 lib*.z.so

涉及仓库及 Git 哈希:

  • foundation/distributedhardware/distributed_cameraa90f7293b373dc63b912a8eb6237ae3463215c25

当前逻辑

当前 SystemAbility profile 中出现 libpath 指向 libdistributed_camera_provider_proxy_1.1.z.so。SA profile 的语义是:系统能力服务注册/按需加载时应能找到该共享库,并且该库应由对应模块源码和构建规则产出。

涉及代码和组件

涉及的主要源码/配置路径包括:

  • foundation/distributedhardware/distributed_camera/sa_profile/common/4803.json
  • foundation/distributedhardware/distributed_camera/sa_profile/4804.json
  • foundation/distributedhardware/distributed_camera/sa_profile/4803.json
  • foundation/distributedhardware/distributed_camera/sa_profile/common/4804.json
  • 已排除 out/ 等生成目录路径;本草稿只展示源码/配置证据。

为什么是问题

问题在于 profile 声明的 libdistributed_camera_provider_proxy_1.1.z.so 没有在当前源码证据中找到对应的非 profile 实现或构建闭合证据。这会造成 profile 声明与实际可产出的共享库之间不一致;如果该 profile 被产品选择,运行时按 libpath 加载服务时可能找不到库,或者打包阶段缺少对应产物。当前审计原因:当前 SA profile 仍声明 libpath libdistributed_camera_provider_proxy_1.1.z.so,但当前源码搜索没有发现非 profile 的 BUILD/source 同名引用。本审计按源码边界排除 out/ 生成目录,避免过期生成物污染判断。

正确逻辑应该是什么样

正确逻辑应是:声明 libpath=libdistributed_camera_provider_proxy_1.1.z.so 的 SA profile 应能连接到一个会产出 libdistributed_camera_provider_proxy_1.1.z.so 的 GN/BUILD 目标,并最终进入对应产品镜像或服务加载路径;如果该库已改名,profile 应同步改名;如果服务废弃,应删除 stale profile。

建议修改方案

建议检查声明 libdistributed_camera_provider_proxy_1.1.z.so 的 profile 所在模块是否仍需要该 SystemAbility 服务。若需要,请补齐生成 libdistributed_camera_provider_proxy_1.1.z.so 的 GN/BUILD 目标和打包规则;若库名已经变化,请同步修改 profile 的 libpath;若服务已废弃,请删除 profile 或迁移到新的服务声明。

相关源码上下文

foundation/distributedhardware/distributed_camera/sa_profile/common/4803.json

  • path_state:file
  • repo_commit_or_unknown:foundation/distributedhardware/distributed_camera@a90f7293b373dc63b912a8eb6237ae3463215c25
  • matched_needle:libdistributed_camera_provider_proxy_1.1.z.so
5:             "name": 4803,
6:             "libpath": "libdistributed_camera_source.z.so",
7:             "run-on-create": false,
8:             "distributed": true,
9:             "dump_level": 1,
10:             "min_hdi_proxy_version": [
11:                 "libdistributed_camera_provider_proxy_1.1.z.so",
12:                 "libdisplay_buffer_hdi_impl_v1_1.z.so"
13:             ]
14:         }
15:     ]
16: }

foundation/distributedhardware/distributed_camera/sa_profile/4804.json

  • path_state:file
  • repo_commit_or_unknown:foundation/distributedhardware/distributed_camera@a90f7293b373dc63b912a8eb6237ae3463215c25
  • matched_needle:libdistributed_camera_provider_proxy_1.1.z.so
5:             "name": 4804,
6:             "libpath": "libdistributed_camera_sink.z.so",
7:             "run-on-create": false,
8:             "distributed": false,
9:             "dump_level": 1,
10:             "min_hdi_proxy_version": [
11:                 "libdistributed_camera_provider_proxy_1.1.z.so"
12:             ]
13:         }
14:     ]
15: }

foundation/distributedhardware/distributed_camera/sa_profile/4803.json

  • path_state:file
  • repo_commit_or_unknown:foundation/distributedhardware/distributed_camera@a90f7293b373dc63b912a8eb6237ae3463215c25
  • matched_needle:libdistributed_camera_provider_proxy_1.1.z.so
5:             "name": 4803,
6:             "libpath": "libdistributed_camera_source.z.so",
7:             "run-on-create": false,
8:             "distributed": false,
9:             "dump_level": 1,
10:             "min_hdi_proxy_version": [
11:                 "libdistributed_camera_provider_proxy_1.1.z.so",
12:                 "libdisplay_buffer_hdi_impl_v1_1.z.so"
13:             ]
14:         }
15:     ]
16: }

foundation/distributedhardware/distributed_camera/sa_profile/common/4804.json

  • path_state:file
  • repo_commit_or_unknown:foundation/distributedhardware/distributed_camera@a90f7293b373dc63b912a8eb6237ae3463215c25
  • matched_needle:libdistributed_camera_provider_proxy_1.1.z.so
5:             "name": 4804,
6:             "libpath": "libdistributed_camera_sink.z.so",
7:             "run-on-create": false,
8:             "distributed": true,
9:             "dump_level": 1,
10:             "min_hdi_proxy_version": [
11:                 "libdistributed_camera_provider_proxy_1.1.z.so"
12:             ]
13:         }
14:     ]
15: }
likedislike
openharmony_ci
openharmony_ci成员
7月4日 评论:

感谢提交Issue!关于Issue的交互操作,请访问OpenHarmony社区支持命令清单。如果有问题,请联系 [@hwzhangchuang](https://gitcode.com/hwzhangchuang) [@hobbycao](https://gitcode.com/hobbycao) [@renguang1116](https://gitcode.com/renguang1116) 。如果需要调整订阅PR、Issue的变更状态,请访问链接


Thanks for submitting the issue. For more commands, please visit OpenHarmony Command List. If you have any questions, please refer to committer gitcode for help. If you need to change the subscription of a Pull Request or Issue, please visit the link.

likedislike
openharmony_ciopenharmony_ci成员
7月4日 添加了label:waiting_for_assign
HPP_ISCAS
27 天前 评论:

补充最新源码复核结果:

  • 复核分支:master
  • 主仓 revision:41299078a634883c1b578fab663d68ad1a5b8fbc(提交时间:2026-08-06T16:13:31+08:00)。
  • 复核契约:sa_profile_libpath_to_source_or_build_output
  • 当前结论:最新 SA profile 中已找不到原 issue 涉及的 libpath。

客观证据:

  • 当前相关 libpath:未找到

边界说明:该结论表示原静态主张在本次最新源码复核范围内不再成立,不证明历史 issue 当时错误。

likedislike