前言

有关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 root
adb remount
adb push out/target/product/xxx/vendor/lib/libmmcamera2_mct.so  /vendor/lib
adb shell sync
adb 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种文件:

  1. 驱动lib库文件
  2. 效果库文件
  3. 效果配置文件

代码如:

MM_CAMERA += libmmcamera_imx307  // lib 驱动文件
MM_CAMERA += libchromatix_imx307_common  // chromatix 效果文件
MM_CAMERA += libchromatix_imx307_postproc
MM_CAMERA += libchromatix_imx307_snapshot
MM_CAMERA += libchromatix_imx307_video
MM_CAMERA += libchromatix_imx307_cpp_preview
MM_CAMERA += libchromatix_imx307_cpp_snapshot
MM_CAMERA += libchromatix_imx307_cpp_video
MM_CAMERA += libchromatix_imx307_cpp_liveshot
MM_CAMERA += libchromatix_imx307_zsl_preview
MM_CAMERA += libchromatix_imx307_zsl_video
MM_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 # ls
camera_config.xml  // 这个就是对应的 平台camera 配置文件msm8953_camera.xml
imx307_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.xml
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_SRC_FILES    := msm8953_camera.xml
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/camera
LOCAL_MODULE_OWNER := qti
include $(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 ~~

Qcom平台 Camera 之单刷调试相关推荐

  1. Qcom平台 Camera 之开启调试 log

    本文是针对Android5.1.8.1.9.0版本的camera调试,log相关的配置做一个记录.如有错误,请交流指正. 调试 打开 kernel cam log 用于观察上电时序,match_id ...

  2. Qcom平台 Camera 之调试单刷验证

    前言 由于调试camera 过程中,遇到的问题琐碎繁杂,在此将已经掌握和常用的调试技巧和一些知识点罗列出来,便于快速的开发调试camera. 平台包含msm8909.msm8953,软件平台包含And ...

  3. android camera2 qcom,Qcom平台 Camera的一些知识点 之MCLK

    前言 MCLK 是平台 baseband 提供给 cam sensor的正常工作的频率, Qcom 平台一般未24MHz,由其他时钟源分频而来,实测在23.8MHz左右. 在打开相机的时候,才可以测到 ...

  4. Qcom平台 Camera 之常见错误和问题

    本文主要记载了一些在调试过程中遇到的错误和问题,及相关的设置.log.解决方法等.如有错误,请交流指正. 目录 调试 帧冻结错误 调试 相机 App 闪退错误 调试 cam banding 现象 调试 ...

  5. android camera2 qcom,Qcom平台 camera的一些知识点 之RAW图抓取

    前言 介绍camera sensor 输出的 raw 图,用于验证cam显示效果问题. 参考文档 : KBA-161204073328 目录 的 mask bit 定义 参数解释: /** * 参数解 ...

  6. 【qcom Android camera调试纪要】

    qcom Android camera调试纪要 1.平台适配 1.1.kernel端 1.2.vendor端 1.2.1.cameraService lib代码 注意:需要在vendor\qcom\p ...

  7. 高通平台camera 移植过程

    1  camera基本代码架构 高通平台对于camera的代码组织,大体上还是遵循Android的框架:即上层应用和HAL层交互,高通平台在HAL层里面实现自己的一套管理策略:在kernel中实现se ...

  8. android拷机工具,Android8.0平台Camera monkey拷机卡死异常解决方案

    android8.0平台camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...

  9. android烤机按键变慢,Android8.0平台Camera monkey拷机卡死异常

    Android8.0平台Camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...

最新文章

  1. 使用OpenCV,Python进行图像哈希(差分哈希 dHash)处理
  2. 黄聪:BackGroundWorker解决“线程间操作无效: 从不是创建控件的线程访问它” (C# VS2008)...
  3. 《数学之美》第23章 布隆过滤器
  4. Linux下防火墙iptables用法规则详及其防火墙配置
  5. [Microsoft][SQL Server 2000 Driver for JDBC]Error establishing socket
  6. 六招让你成职场超男超女
  7. IBM AIX RISC System/6000 Error: 110: Media surface error错误处理
  8. Java定义字符串(2种方式)
  9. 小米电视4A核心技术之语音识别浅析
  10. 数字图像处理 色差计算
  11. 农村三资管理平台app_农村集体经济管理平台、“三资”信息公开手机APP招标公告...
  12. 【利用EXCEL进行数据爬虫】数据爬虫学习
  13. (转载) Android RecyclerView 使用完全解析 体验艺术般的控件
  14. Sencha Cmd自动构建ExtJs项目框架
  15. 信息学奥赛一本通:1413:确定进制
  16. 疯狂android讲义目录
  17. javascript之动态时钟
  18. L5W3作业2 关键字语音识别
  19. php表格设置标题,每页表格标题字PHPWord
  20. java aba问题_JAVA与ABA问题

热门文章

  1. OpenFalcon线上初步部署
  2. EBAZ4205 ZYNQ 7Z010原始LINUX系统的修改与使用
  3. C# 打开excel
  4. 记录一次使用JS生成word后端转换PDF功能
  5. 正版photoshop2022购买体验经历分享
  6. Docker入门实战
  7. [实验室每日一题][20201124][Zip已知明文攻击]
  8. 典型相关分析原理(例题+代码)
  9. 软件工程课程设计·SOA架构搭建SSM框架的网上商城系统
  10. RabbitMQ学习【尚硅谷】