已验证 创建 2026/06/06 更新 2026/06/11
FAQ21526 闪存校准Android P 闪存校准命令和校准数据路径 ( 2019-01-24 )
#camera
#define
Flash 校准
笔记内容
[FAQ21526] [闪存校准] Android P 闪存校准命令和校准数据路径(2019-01-24)
Android P 升级后,反馈部分平台存在以下问题:
- Flash 校准命令不起作用;
- 无法生成 Flash 校准数据。
现针对该问题总结如下。
一、Flash 全面校准命令
1. 校准命令
adb shell setprop vendor.flash_ratio 1
或者:
adb shell setprop vendor.flash_calibration 1
2. 校准结果路径
校准结果会生成在如下目录:
/data/vendor/flash/
生成后的校准结果需要合入到参数文件中。
具体合入方式可参考 DCC 上各个平台对应的 Flash 调优文档,这里不再逐一说明。
二、Flash 快速校准命令
1. 快速校准命令
adb shell setprop vendor.flash_ratio_quick2 1
或者:
adb shell setprop vendor.flash_quick_calibration_2 1
2. 快速校准说明
快速校准的结果会直接读取 NVRAM。
该方式主要用于已经校准过的场景,即“针对校准数据的校准”。
三、校准命令无效或未生成 Cali 结果的排查方法
如果执行以上命令后,仍然遇到以下问题:
- calibration 命令无效;
- 没有生成 Cali 结果;
请先在 flash_mgr 目录下查找并确认如下文件。
四、调试命令查询
1. 查询文件
flash_mgr_m.cpp
2. 查询关键字
在如下函数中搜索:
e_SpModeCalibration
函数位置示例:
int FlashMgrM::doPfOneFrame(FlashExePara *in, FlashExeRep *out)
{
...
getPropInt(PROP_FLASH_CALIBRATION, &propFlashCalibration, 0);
getPropInt(PROP_FLASH_RATIO, &propFlashRatio, 0);
getPropInt(PROP_FLASH_QUICK_CALIBRATION_2, &propFlashQuickCalibration2, 0);
getPropInt(PROP_FLASH_RATIO_QUICK2, &propFlashRatioQuick2, 0);
if (propFlashCalibration || propFlashRatio)
mSpMode = e_SpModeCalibration;
else if (propFlashQuickCalibration2 || propFlashRatioQuick2)
mSpMode = e_SpModeQuickCalibration2;
}
3. 排查思路
根据设置 e_SpModeCalibration 的条件,反查需要设置的 debug 命令。
例如:
PROP_FLASH_RATIO
对应的属性可能是:
vendor.flash_ratio
因此可以通过如下命令触发 Flash 全面校准:
adb shell setprop vendor.flash_ratio 1
五、Cali 结果路径查询
1. 查询文件
可在以下文件中查找:
flash_cct.cpp
或者:
flash_cct.h
2. 查询关键字
搜索关键字:
cali_ae.txt
即可看到对应路径,例如:
/data/vendor/flash/eng_code.txt
六、不同平台代码路径查找方法
不同平台的 Flash 代码路径一般位于:
/vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/
请根据对应平台的 mk 文件,确认当前平台实际使用的 flash_mgr 文件夹。