You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动