系统必须支持 android.hardware.usb.host
/system/etc/permissions下需要添加host的声明
此外,还必须启用Kernel的 UVC 设备内核。
+CONFIG_USB_VIDEO_CLASS=y
+CONFIG_MEDIA_USB_SUPPORT=y
要在相应的设备细分版本中启用外接摄像头提供程序,以便添加必要的 SELinux 权限、外接摄像头配置以及外接摄像头提供程序依赖项,请完成以下步骤:
将外接摄像头配置文件和外接摄像头库添加到 device.mk。
+PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-impl
+PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-external-service
+PRODUCT_COPY_FILES +=
+device/manufacturerX/productY/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR )/etc/external_camera_config.xml
将外接摄像头提供程序名称添加到设备 Treble HAL 清单。
android.hardware.camera.provider passthrough 2.4 ICameraProvider legacy/0
+external/0
(选做)如果设备在 Treble 直通模式下运行,请更新 sepolicy,以便 cameraserver 可以访问 UVC 摄像头。
+# for external camera
+allow cameraserver device:dir r_dir_perms;
+allow cameraserver video_device:dir r_dir_perms;
+allow cameraserver video_device:chr_file rw_file_perms;
external_camera_config.xml的示例
0 1
您可以通过修改 external_camera_config.xml 文件来自定义外接摄像头提供程序。具体而言,客户可以自定义以下参数:
内部摄像头的排除视频节点
支持的图片大小和帧速率上限
Inflight 缓冲区数量(在卡顿与内存之间进行权衡)
除了这些参数之外,您还可以添加自己的参数或开发自己的配置。