返回首页
当前位置: 主页 > 网络编程 > Android教程 >

关于部分高通芯片机器遇到camera权限导致相机不可用新解决办法

时间:2014-01-09 10:04来源:2018年最新注册送彩金www.zhixing123.cn 编辑:麦田守望者

由于原来做C8812E和U8825D,N970遇到的/data/socket0 权限不足导致相机无法链接,除了R大师的解决办法,其实还有另外一个解决办法,这个办法已经在N970上得到过验证,
现在把方法公布:

原理:高通代码很多时候用的东西跟AOSP其实有差别,例如相机,很多厂商使用高通芯片或者做相机的时候会增加一些新的服务,这些新的服务如果没有注册赋予权限,就会造成相机无法打开就是这个位置:system/core/init/property_service.c

property_perms 这个里面

很多厂商都增加了camera.xxxxxx 服务或者 persist.camera.xxxx
服务,但是aosp和CM都是没有这些服务赋予的权限的,所以我们先临时增加权限进去,看看是否是这些服务导致的,在 设备的device里面新建 include
文件夹,然后建立一个 device_perms.h 文件

前提是你的源码是 CM 或者AOKP,如果你是aosp原生请到system/core/init/property_service.c增加

device_perms.h 里面写法如下:
 

#ifndef DEVICE_PERMS_H
#define DEVICE_PERMS_H

#define PROPERTY_PERMS_APPEND
{
“camera.”,
AID_MEDIA, 0 },
{ “persist.camera.”,
AID_MEDIA, 0 },

#endif /* DEVICE_PERMS_H */

为啥这样写,不讲述了,大家可以去 system/core/init里面去看 cm的 commit 提交记录

增加完了这里,另外还有地方需要处理,就是设备的rc初始化文件

增加如下,如果你的设备的初始化文件有这一条的话,请注意加色加粗部分
 

#start camera server as daemon
service qcamerasvr
/system/bin/mm-qcamera-daemon
class late_start
user media

group system camera inet input graphics

然后在系统启动 on boot的时候 增加 start qcamerasvr 就可以了

遇到这个问题的大家去试试吧~~

顶一下
(1)
50%
踩一下
(1)
50%
标签(Tag):Android android教程 android技巧 android软件 android开发教程
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
博聚网