开启各模块log前,建议关闭selinux权限,并确定camera logD是已经有打印的,如果没有使用以下命令开启
-
adb shell setenforce 0
-
adb shell setprop prtsist.vendor.mtk.camera.log_lvvel3
-
adb shell pkill camera*
开MTK camera2 APP log
-
adb root
-
adb shell setpropvendor.debug.mtkcam.loglevel 3
开cmaera device hal3 log
-
log tag:mtkcam-dev3
-
adb root
-
adb shellsetprop debug.camera.log.CameraDevice3 2
-
dump session param in configure stage
-
log requests from framework
-
log results from pipeline
开AppStreamMge的log
- logtag: mtkcam-AppStreamMgr
- adb root
- adb shell setprop vendor.debug.camera.log.AppStreamMgr X
- X>=1, dump per-framecallback image/meta/shutter/error message
- X>=2, dump per-frame control metadata
- X>=3, dump per-frame result metadata
- 打开后,会有关键 log: mtkcam-AppStreamMgr:
[x-CallbackHandler::performCallback]
开 Pipeline log
-
log tag: mtkcam-PipelineFrameBuilder
-
adb root
-
adb shell setproppersist.vendor.debug.camera.log X
-
adb reboot
-
X>=2, Log everyIPipelineFrame settings
-
X>=3, Log everyIPipelineFrame settings and its PipelineContext
-
打开后,会有关键 log: mtkcam-PipelineFrameBuilder: App image stream buffers=
开P1Node log和dump P1输出的 imgo
开P1Node log
-
logtag: MtkCam/P1NodeImp
-
adb root
-
adb shell setprop vendor.debug.camera.log.p1node3
-
打开后,会有关键 log: mtkcam-PipelineFrameBuilder: App image stream
-
buffers=adb root
-
adb shell setprop vendor.debug.camera.log.p1nodei3
-
打开后,会有关键 log: MtkCam/P1NodeImp: [setupAction]
dump P1Node 输出的 imgo
-
adb root
-
adb shell setprop vendor.debug.camera.dump.en 1
-
adb shell setpropvendor.debug.feature.forceEnableIMGO 1
-
adb shell setpropvendor.debug.camera.dump.p1.imgo 1
-
Dump Path:/data/vendor/camera_dump
开preview/record时 P2S的log和Streaming buffer dump
开preview/record 时P2S的log
-
开P2StreamingNode下StreamingFeaturePipe层以上(包括DispatchProcessor/StreamingProcessor)的log:
-
adb root
-
adb shell setpropvendor.debug.mtkcam.p2.log 1
-
Open per-frame I/O buffer& cropper info
-
adb shell setprop vendor.debug.trace.p2.{MODULE}1
-
Open module’s trace log,such as P2Util / StreamingProcessor
开StreamingFeaturePipe log
-
adb root
-
adb shell setprop vendor.debug.mtkcam.p2.log 1
-
Open per-frame I/O buffer& cropper info
-
adb shell setprop vendor.debug.trace.p2.{MODULE}1
-
Open module’s trace log, such as P2Util /StreamingProcessor
开StreamingFeaturePipe log
-
adb root
-
adb shell setpropvendor.debug.fpipe.force.printio 1
-
adb shell setprop vendor.debug.tpi.s.log 1
Streaming buffer dump
P2StreamingNode I/O ( such as RRZO / display output) dump:
方法1(NDD mode dump,一般使用这个dump比较方便):方法2(debug modedump): -
adb root
-
adb shell rm -rf/data/vendor/camera_dump/*
-
adb shell setprop vendor.debug.p2f.dump.enable 1
-
adb shell setprop vendor.debug.p2f.dump.mode 1
进camera,需要 dump 时,下adb命令开始dump:
- adb shell setprop vendor.debug.camera.preview.dump1
需要停止 dump 时,先按home键退出camera, 再下adb 命令:
-
adb shell setprop"vendor.debug.camera.preview.dump" 0
dump 完后,dump 出来的 buffer 都放到 /data/vendor/camera_dump 这个目录下了。pull 到本地:
-
adb pull/data/vendor/camera_dump <本地路径>
方法2(debug modedump):
-
adb root
-
adb shell mkdir/data/vendor/p2_dump
-
adb shellsetprop vendor.debug.p2f.dump.enable 1
-
adb shellsetprop vendor.debug.p2f.dump.mode** 2**
-
adb shellsetprop vendor.debug.p2f.dump.start 50 —> P2S FrameNo>= 50 就開始dump
-
adb shellsetprop vendor.debug.p2f.dump.count 70 —> 連續dump70
個frame -
( After 2018/11/13 p0mp3, 可以将 adb shell setprop
vendor.debug.p2f.dump.start 50adb shell setprop
vendor.debug.p2f.dump.count 70替换成adb shell setprop
vendor.debug.camera.continue.dump N ,N代表立刻开始dump,并连续dump N张,Dump
完要记得将这个值reset 为 0)* -
dump path:/data/vendor/p2_dump
Dupmp file filter(方法1和方法2都使用)
-
adb shell setprop vendor.debug.p2f.dump.in 5 --> 只dump RRZO &LCSO,看到IMGO 一律不dump
-
adb shell setprop vendor.debug.p2f.dump.out 9 --> 只dump Display &
PreviewCB
StreamingFeaturePipeInternal buffer dump:
-
adb root
-
adb shell mkdir /data/vendor/dump
-
adb shell setpropvendor.debug.fpipe.force.dump.count //
would liketo dump frames -
adb shell setpropvendor.debug.fpipe.force.dump <frame_num> //
dump start fromframe <frame_num>
TPINode dump:
-
adb root
-
adb shell setprop vendor.debug.tpi.s1
-
dump start when you want to dump:
-
adb shell setpropvendor.debug.tpi.s.dump 1
-
push home key exit the camera, and then dump stop, if you want tostop
dump: -
adb shell setpropvendor.debug.tpi.s.dump 0
-
dump path:/data/vendor/dump
开Capture时P2C log 和 capture buffer dump
开Capture时P2C log
-
adb root
-
adb shell setpropvendor.debug.camera.capture.log 3
capture buffer dump
-
adb shell setenforce 0
P2ANode buffer dump
-
adb root
-
adb shell setprop vendor.debug.camera.p2.dump 1
-
adb shell setpropvendor.debug.camera.upkraw.dump 1
-
dump Path:data/vendor/camera_dump
Depth/bokeh/YuvNode buffer dump
-
adb root
-
adb shell setpropvendor.debug.camera.capture.yuv.img.dump 1
-
adb shell setpropvendor.debug.camera.capture.depth.img.dump 1
-
adb shell setpropvendor.debug.camera.capture.bokeh.img.dump 1
-
dump Path: sdcard/capturePipe(注意要先在sdcard中建立这个路径)
JpegNode buffer dump
-
adb root
-
adb shell setpropvendor.debug.camera.log.JpegNode 2
-
dump Path:/sdcard/DCIM/Camera/
-
adb shell setprop vendor.debug.camera.dump.JpegNode 1
-
dump Path:/data/vendor/camera_dump
Others:
-
adb root
-
adb shellsetprop vendor.debug.camera.img3o.dump 1
-
adb shellsetprop vendor.debug.camera.mfll.dump 1
force enable MFNR 和开 MFNR log, MFNR dump、force enable MFNR, enable MFNR log:
force enable MFLL:
-
adb root
-
adb shell setprop vendor.mfll.force 1
enable MFNR log:
-
adb shell setprop vendor.mfll.log_level 3
-
adb shell stop camerahalserver
-
adb shell start camerahalserver
MFNR dump
dump MNFR 的输入(raw和yuv) -
adb shell setenforce 0
-
adb shell setprop vendor.debug.camera.p2.dump 1
-
adb shell setprop vendor.debug.camera.dump.campipe 1 (Q版本新增)
-
adb shell setprop vendor.debug.camera.mfnr.yuv.dump 1 (Q版本新增)
-
注:HAL3 MFNR 所需的raw和yuv是通过P2A来dump
dump MFNR 各stage的图片
-
adb shell setenforce 0
-
adb shell setprop vendor.mfll.dump.all 1
-
注:dump图片的路径:data/vendor/camera_dump
dump mfnr 的输出(yuv)
-
adb shell setprop vendor.mfll.dump.mixer 1
-
adb shell setprop vendor.mfll.dump.mixer.out 1
-
dump bss之前的raw和rrzo
-
adb shell setenforce 0
-
adb shell setprop vendor.debug.camera.bss.dump 1
强制MFNR几帧
-
adb shell setprop vendor.mfll.capture_num 6
-
adb shell setprop vendor.mfll.blend_num 6
强制bss不丢帧
- adb shell setprop vendor.mfll.drop_num O
开FDlog和FD dump
开FD log:
FDNodeImp log enable:
-
adb shell setprop “vendor.debug.camera.log” 1 或
-
adb shell setprop "vendor.debug.camera.log.FDNode"1
-
设完后,重启下 camerahalserver使设置生效:
-
adb shell stop camerahalserver
-
adb shell start camerahalserver
FD Algo log enable:
-
adb root
-
adb shell setprop vendor.debug.camera.fd.detail.log 1
-
adb shell stop camerahalserver
-
adb shell start camerahalserver
FD dump
-
adb root
-
adb shell mkdir /sdcard/fddata/
-
adb shell setpropvendor.debug.camera.fd.detail.dump 1
-
adb shell setpropvendor.debug.camera.fd.detail.log 1
-
adb shell setpropvendor.debug.camera.log.FDNode 1
-
adb shell setenforce 0
-
open camera, retest, then close camera
-
adb pull /sdcard/fddata
BGService force enable or force disable
force enable BGService:
-
adb shell setprop vendor.debug.camera.bgservice.mode 1
force disable BGService:
-
adb shell setprop vendor.debug.camera.bgservice.mode 2