Skip to content

fix: remove setResolution to avoid camera initialization lag#55

Closed
fly602 wants to merge 1 commit into
linuxdeepin:masterfrom
fly602:master
Closed

fix: remove setResolution to avoid camera initialization lag#55
fly602 wants to merge 1 commit into
linuxdeepin:masterfrom
fly602:master

Conversation

@fly602

@fly602 fly602 commented Jun 16, 2026

Copy link
Copy Markdown
Contributor
  1. Remove explicit setResolution call for 800x600 in both ErollThread and VerifyThread
  2. Prevent potential camera initialization lag caused by resolution setting operation
  3. Allow camera to use default resolution from system settings
  4. Simplify initialization process by removing unnecessary resolution configuration

Influence:

  1. Test camera initialization performance before and after the change
  2. Verify image capture still works correctly with default resolution
  3. Test both ErollThread and VerifyThread camera functionality
  4. Monitor for any performance improvement during camera startup
  5. Verify captured images maintain acceptable quality
  6. Test on different camera devices to ensure compatibility

fix: 移除 setResolution 以避免摄像头初始化卡顿

  1. 移除 ErollThread 和 VerifyThread 中 800x600 分辨率的显式设置调用
  2. 防止分辨率设置操作可能导致的摄像头初始化卡顿
  3. 允许摄像头使用系统设置中的默认分辨率
  4. 通过移除不必要的分辨率配置简化初始化流程

Influence:

  1. 测试更改前后的摄像头初始化性能
  2. 验证图像捕获在使用默认分辨率时仍能正常工作
  3. 测试 ErollThread 和 VerifyThread 的摄像头功能
  4. 监控摄像头启动期间是否有任何性能改善
  5. 验证捕获的图像保持可接受的质量
  6. 在不同摄像头设备上测试以确保兼容性

PMS: BUG-364933

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @fly602, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: fly602

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@fly602 fly602 closed this Jun 16, 2026
@deepin-ci-robot

Copy link
Copy Markdown

deepin pr auto review

★ 总体评分:60分

■ 【总体评价】

代码修复了人脸识别服务在沙箱下的硬件访问权限问题,但引入了设备权限过度放宽的安全风险
逻辑正确但因过度授权违反最小权限原则导致安全扣分,触发安全上限

■ 【详细分析】

  • 1.语法逻辑(完全正确)✓

systemd.service 配置文件语法符合规范,DeviceAllow 指令格式正确,设备通配符和具体设备节点路径书写无误
建议:保持当前语法标准

  • 2.代码质量(存在严重问题)✕

使用 char-media 和 char-drm 等粗粒度通配符放宽权限,缺乏精确的设备节点控制,硬编码 /dev/vpu0 缺乏多硬件兼容性注释
潜在问题:在安全敏感的沙箱配置中使用粗粒度白名单;未说明为何需要完整的媒体和DRM读写权限
建议:细化设备白名单至具体节点路径,并添加详细注释说明每个设备节点的用途

  • 3.代码性能(无性能问题)✓

systemd 设备策略配置在服务启动时加载,属于内核级静态策略,无运行时性能损耗
建议:无需优化

  • 4.代码安全(存在 2 个安全漏洞)✕

漏洞对比统计:新增漏洞 2 个,减少漏洞 0 个,持平 0 个
在 DevicePolicy=closed 的严格沙箱中过度放宽了设备访问白名单,扩大了攻击面,若服务存在被利用的漏洞,攻击者可借此访问非必要的硬件设备

  • 安全漏洞1(中危):权限过度放宽 在 deepin-face.service 中,DeviceAllow=char-media rw 放通了所有字符媒体设备(包括音频设备 /dev/snd/* 等),人脸识别服务通常仅需摄像头,过度授权违反最小权限原则,若服务被攻破可导致窃听或干扰系统音频 ——非常重要

  • 安全漏洞2(中危):权限过度放宽 在 deepin-face.service 中,DeviceAllow=char-drm rw 放通了所有直接渲染管理器设备(包括主显卡 /dev/dri/card0),允许读写可能导致屏幕内容泄露或GPU内存越界破坏,应仅授权 render 节点(如 /dev/dri/renderD128)用于硬件加速计算 ——非常重要

  • 建议:移除 char-media 和 char-drm 通配符,替换为精确的设备节点路径;将 /dev/vpu0 配置改为动态发现或增加设备存在性检查逻辑

■ 【改进建议代码示例】

--- a/msic/systemd/deepin-face.service
+++ b/msic/systemd/deepin-face.service
@@ -16,7 +16,11 @@ ProtectSystem=strict
 #ReadOnlyPaths=/usr/share/seetaface-models/
 ReadWritePaths=/var/log/deepin-face.log
 
-DeviceAllow=char-video4linux
+DeviceAllow=char-video4linux rw
+# 仅放通特定的硬件加速渲染节点,避免放通 /dev/dri/card0 导致屏幕泄露
+DeviceAllow=/dev/dri/renderD128 rw
+# 仅放通特定的 VPU 硬件节点,按需配置
+DeviceAllow=/dev/vpu0 rw
 DevicePolicy=closed
 
 NoNewPrivileges=yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants