解决小米手机不支持camera2 api的问题
最近使用yolov8检测算法的过程中,发现某些小米手机仍然不支持camera2 API,由于我使用的测试手机是7.1版本,而且小米有意未打开camera2 api,最后通过在system/build.prop中添加系统属性persist.camera.HAL3.enabled=1完美解决。简单来说步骤为小米手机解锁->小米手机刷机为开发版本>小米手机解锁>小米手机root->修改system权限->修改build.prop,以下是详细步骤。
此外,既然是系统属性控制着camera2 api,你也可以尝试通过adb命令setprop persist.camera.HAL3.enabled 1动态修改试试,由于我的手机已经root了,所以不确定这种方式是否可用。
小米手机刷机
以下为小米手机刷开发版的详细过程,按顺序操作即可,下载链接请点击超链接:
- 手机解锁 ,解锁前进入开发者模式下的解锁状态进行手机绑定,下载小米官网解锁工具,音量减+电源键进入fastboot模式,USB连接手机,登录小米账号,点击解锁;
- 刷机工具 ,下载刷机工具包,安装驱动;
- 刷机包 ,下载刷机包,根据手机型号、国行/全球下载开发版本的rom,解压备用;
- 刷机 ,一般手机为高通芯片,无需选择,如果是MTK芯片需要选择相应参数,这里以高通为例,点击“选择”按钮>选择刷机包解压后的目录,手机音量减+电源键进入fastboot模式,USB连接手机,点击“加载设备”按钮,如果下面出现一个设备那就连接成功了,点击“刷机”按钮,等待即可,在刷机过程中,千万不要着急拔掉USB线,或者重启。
- 如果变砖 ,如果变砖了,不着急,检查下刷机包,重新下载一个对应版本的刷机包,重新来一遍上面的步骤,记住要再解一次锁才行,不然会出现刷机错误;
小米手机root
如果手机root过,可直接跳过,手机如果不是开发版本,无法进行root,请先通过上面步骤刷机为开发版本,以下为root详细步骤,按顺序执行即可:
- 手机解锁 ,解锁前进入开发者模式下的解锁状态进行手机绑定,下载小米官网解锁工具,音量减+电源键进入fastboot模式,USB连接手机,登录小米账号,点击解锁;
- 获取root权限 ,打开设置>应用设置>授权管理>root授权管理,进行root操作,如果没有这个“root授权管理”,说明你刷机的版本不是开发版本,请执行上面的刷机步骤;
修改/system/build.prop权限
由于修改system下的build.prop需要读写权限,所以需要先将system进行remount,而后通过chmod修改读写权限,以下为详细步骤,按顺序执行即可:
- root ,运行adb root,获取root权限
- disable-verity ,运行adb disable-verity,关闭分区检测
- remount ,运行adb remount,挂载
- adb shell ,运行adb shell命令,进入shell环境
- chmod ,运行chmod 777 /system/build.prop,修改读写权限
添加支持camera2 api的系统属性
从网络上的其他文章得知控制camera2 api的属性为persist.camera.HAL3.enabled,只需要将以下代码
persist.camera.HAL3.enabled=1
添加到system/build.prop即可打开camera2 api,以下为操作方式:
- android studio ,运行上面的root disable-verity remount步骤,而后打开As的Device File Explorer找到system/build.prop修改然后保存即可;
- 其他方式,比如vi vim命令等修改该文件,添加上面的代码即可;