1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Qcom平台 Camera 之单刷调试

Qcom平台 Camera 之单刷调试

时间:2022-01-02 07:26:52

相关推荐

Qcom平台 Camera 之单刷调试

前言

有关Android平台camera调试的一些知识点,有助于调试验证。

目录

一些知识点

调试vendor镜像问题

调试device-vendor.mk

调试msm8953_camera.xml

调试xxx_chromatix.xml

调试 安装测试三摄APK Android9.0

你再快,也永远有人比你快!Fighting ~~

一些知识点

修改配置好所有驱动后,全编后,刷入 vendor和kernel镜像,进行验证。

Android5.0 vendor驱动在system.img 中,需要刷 system和kernel镜像,进行验证。

调试vendor镜像问题

vendor中各个驱动是以so库模块的形式加载的,若改了某个模块对应的文件后,

可以单编,然后单独push 更新这个模块/或者全编全刷整个vendor镜像(建议全刷vendor)。

对应模块位置

文件对应的模块so名称在本目录或者上一级目录的Android.mk中可以找到。

形如:LOCAL_MODULE := libmmcamera2_mct

生成的so文件位置:

路径:out/target/product/xxx/vendor/lib/libmmcamera2_mct.so

更新方式

adb rootadb remountadb push out/target/product/xxx/vendor/lib/libmmcamera2_mct.so /vendor/libadb shell syncadb reboot // 必须执行同步 sync和reboot重启后生效

例如:

如修改了帧检测函数的等待时间,可以单刷 libmmcamera2_mct.so

vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\mct\bus\mct_bus.c#define MCT_BUS_NANOSECOND_SCALER 1000000000+ #define MCT_BUS_NANOSECOND_SCALER 2000000000 // 2s

找到上一级目录对应的module 名称:

vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\mct\Android.mk

LOCAL_MODULE := libmmcamera2_mct

按照上方的方式单刷这个镜像

out/target/product/xxx/vendor/lib/libmmcamera2_mct.so

调试device-vendor.mk

camera 配置修改device-vendor.mk 中如下:

包含3种文件:

驱动lib库文件效果库文件效果配置文件

代码如:

MM_CAMERA += libmmcamera_imx307 // lib 驱动文件MM_CAMERA += libchromatix_imx307_common // chromatix 效果文件MM_CAMERA += libchromatix_imx307_postprocMM_CAMERA += libchromatix_imx307_snapshotMM_CAMERA += libchromatix_imx307_videoMM_CAMERA += libchromatix_imx307_cpp_previewMM_CAMERA += libchromatix_imx307_cpp_snapshotMM_CAMERA += libchromatix_imx307_cpp_videoMM_CAMERA += libchromatix_imx307_cpp_liveshotMM_CAMERA += libchromatix_imx307_zsl_previewMM_CAMERA += libchromatix_imx307_zsl_videoMM_CAMERA += imx307_chromatix.xml // 效果配置文件

这里要注意:

对应的驱动文件所在的Android.mk 中的作用是,是否把对应的文件编译成一个so库。

device-vendor.mk 的作用是,在编译整个vendor镜像的时候,是否把这些对应的camera驱动和配置文件打包进入vendor镜像,

(这个是必须的,因为将来出版本是全编,所以必须打包进入vendor镜像)。

imx307_chromatix.xml 这个文件跟随vendor镜像更新

在 adb 下, vendor/data/camera/ 下可以找到对应文件

xxx:/vendor/etc/camera # lscamera_config.xml // 这个就是对应的 平台camera 配置文件msm8953_camera.xmlimx307_chromatix.xml // 上面的效果配置文件

调试msm8953_camera.xml

文件名:

camera_config.xml

这个就是对应的平台camera 配置文件msm8953_camera.xml

配置当前项目支持的camera,主摄、景深、前摄。

配置各个camera的属性:cameraId、sensor名字、对焦马达、eeprom、闪光灯、支持模式、安装位置、安装角度、效果配置索引、mipi-csi配置、镜头等信息。

名称转换如下:

vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\configs\project.mk

else ifeq ($(call is-board-platform-in-list, msm8953),true)include $(CLEAR_VARS)LOCAL_MODULE:= camera_config.xmlLOCAL_MODULE_CLASS := EXECUTABLESLOCAL_SRC_FILES := msm8953_camera.xmlLOCAL_MODULE_TAGS := optionalLOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/cameraLOCAL_MODULE_OWNER := qtiinclude $(BUILD_PREBUILT)endif

adb 下:

vendor/data/camera/camera_config.xml

调试xxx_chromatix.xml

包含一个camera sensor 所配置支持的效果搭配组合。根据实际需求配置。

对应lib.h中的,对应lib.h中几组不同的寄存器组配置。

路径:

vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\configs

代码如:

<ChromatixConfigurationRoot><CommonChromatixInfo><ChromatixName><ISPCommon>imx307_common</ISPCommon><PostProc>imx307_postproc</PostProc></ChromatixName></CommonChromatixInfo><ResolutionChromatixInfo><ChromatixName sensor_resolution_index="0"><ISPPreview>imx307_snapshot</ISPPreview><ISPSnapshot>imx307_snapshot</ISPSnapshot><ISPVideo>imx307_snapshot</ISPVideo><CPPPreview>imx307_cpp_preview</CPPPreview><CPPSnapshot>imx307_cpp_snapshot</CPPSnapshot><CPPVideo>imx307_cpp_video</CPPVideo><CPPLiveshot>imx307_cpp_liveshot</CPPLiveshot><A3Preview>imx307_zsl_preview</A3Preview><A3Video>imx307_zsl_video</A3Video></ChromatixName><ChromatixName sensor_resolution_index="1"><ISPPreview>imx307_snapshot</ISPPreview><ISPSnapshot>imx307_snapshot</ISPSnapshot><ISPVideo>imx307_video</ISPVideo><CPPPreview>imx307_cpp_preview</CPPPreview><CPPSnapshot>imx307_cpp_snapshot</CPPSnapshot><CPPVideo>imx307_cpp_video</CPPVideo><CPPLiveshot>imx307_cpp_liveshot</CPPLiveshot></ChromatixName></ResolutionChromatixInfo></ChromatixConfigurationRoot>

调试Android9.0安全机制

Android9.0 的安全机制,如过单刷的镜像和版本不是同一台服务器编译出来的,系统会启动异常。

不利于单刷镜像,调试功能。

不能安装apk

不能remount

必须使用debug版本,执行以下命令。

代码如:

adb rootadb disable-verityadb rebootadb remount

然后去remount或者安装Apk

adb install -r xxx.apk

调试 安装测试三摄APK Android9.0

1. 把apk push到 /system/priv-app/SnapdragonCamera 这个目录

需要解除 verity 安全机制,见上方

2. 把odex和vdex push到 /system/priv-app/SnapdragonCamera/oat/arm64 下

3. 重启设备

你再快,也永远有人比你快!Fighting ~~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。