Moto Z2 Play Camera2 API硬件能力识别异常技术咨询
Moto Z2 Play Camera2 API 硬件等级解锁指南
嘿,兄弟,我太懂你这种憋屈了——明明原生相机能拍慢动作、能手动对焦,结果用Camera2 API一查,居然显示是LEGACY硬件等级,连高帧率录制和手动传感器控制都不让用,这明显是厂商给系统加了限制,硬件本身明明扛得住!你说的改build.prop确实是解决这个问题的核心思路,我给你捋清楚具体怎么操作,分临时和永久两种方案,按需来:
一、先明确核心问题
Moto Z2 Play的硬件本身是支持LIMITED级别的Camera2 API能力的(对应你需要的慢动作、手动对焦/传感器控制),只是系统默认把硬件等级上报成了LEGACY。我们要做的就是让系统在返回CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL时,输出正确的等级。
二、具体修改方案
方案1:无需Root(临时生效,重启就没了)
适合先测试效果,不用动系统文件:
- 先把你的设备打开开发者选项,开启USB调试(不知道怎么开?设置里找「关于手机」,连续点版本号7次就行)
- 用USB线连电脑,打开命令提示符/终端,输入这几条ADB命令:
adb shell setprop persist.camera.HAL3.enabled 1 adb shell setprop persist.camera.eis.enabled 1 adb shell setprop camera.hardware.level limited - 输完之后,要么重启相机应用,要么直接重启设备,再用Camera2 API查询硬件等级,应该就不是LEGACY了。
方案2:永久生效(需要Root权限)
如果测试下来没问题,想一直用这个设置,就得改build.prop:
- 先给设备Root(比如用Magisk,这个是目前比较安全的方式)
- 找个带Root权限的文件管理器(比如Solid Explorer),把/system分区挂载成可读写模式
- 找到
/system/build.prop文件,编辑它,添加或者修改以下几行:persist.camera.HAL3.enabled=1 persist.camera.eis.enabled=1 camera.hardware.level=limited - 保存修改,重启设备,以后开机就自动生效了。
三、验证修改是否成功
修改完之后,你可以用Google官方的Camera2Basic示例APP来检测,或者直接写一段简单的Camera2 API代码查询CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL的返回值。如果是LIMITED,那你需要的慢动作录制、手动传感器控制这些功能应该就能通过Camera2 API调用了。
四、一些小提醒
- 别贪心把等级设成FULL,Moto Z2 Play的硬件其实达不到FULL级别的要求,设成LIMITED就足够满足你的需求了
- 临时修改的方式适合先试手,确定好用再搞永久修改
- 改系统文件有风险,一定要先备份原build.prop,万一出问题可以恢复回来
内容的提问来源于stack exchange,提问作者Mateus




