APK无法识别gsensor问题剖析

APK无法识别gsensor问题的原因有很多,这里只是提供一条思路,解决现有项目遇到的问题。


1、确保驱动层可以工作。

2、打印LOGCAT数据,分析sensorservice流程


1、移植流程:

步骤:
移植gsensor驱动,mc3413,大概步骤如下:

1、移植kernel驱动文件;

2、修改HAL层文件

vendor\sprd\open-source\libs\libsensors_sprd\Acc_Mc3xxx.cpp

3、修改device\sprd\scx35l\sp9820w_6c10\BoardConfig.mk 


USE_SPRD_SENSOR_LIB := true
BOARD_HAVE_ACC := Mc3xxx
BOARD_ACC_INSTALL := 6

4、修改权限:

device\sprd\scx35l\common\sepolicy\file_contexts增加:/dev/mc3xxx u:object_r:sensors_device:s0
device\sprd\scx35l\common\rootdir\root\ueventd.sc8830.rc 增加:/dev/mc3xxx  0660   system  system

现象:


现在kernel部分已经可以工作,通过getevent -rl 可以获取gsensor数据:

add device 1: /dev/input/event0
  name:     "sci-keypad"
add device 2: /dev/input/event4
  name:     "headset-keyboard"
add device 3: /dev/input/event3
  name:     "mc3xxx_accelerometer"
add device 4: /dev/input/event1
  name:     "HALL"
add device 5: /dev/input/event2
  name:     "sprd-gpio-keys"

/dev/input/event3: EV_ABS       ABS_X               fffffff7
/dev/input/event3: EV_ABS       ABS_Y               fffffff4
/dev/input/event3: EV_ABS       ABS_Z               000003e1
/dev/input/event3: EV_SYN       SYN_REPORT          00000000

使用sensor test apk测试加速度传感器无法识别。也尝试了几种其他的手机传感器APK无法识别。

 

 

2、分析与解决

 

①抓取HALL层的log

使用展讯工程模式*#83781#*#*,进入log设置,选择slog,抓取log。

或者直接使用adb 抓取logcat

Z:\project\hk811\idh.code\vendor\sprd\open-source\libs\libsensors_sprd\Acc_Mc3xxx.cpp

里面的log并没有搜到!!

 

继续搜索

Z:\project\hk811\idh.code\vendor\sprd\open-source\libs\libsensors_sprd\sensors.cpp



Z:\project\hk811\idh.code\frameworks\native\services\sensorservice\SensorDevice.cpp

 

②分析sensorservice

Z:\project\hk811\idh.code\frameworks\native\services\sensorservice\SensorService.cpp

logcat中搜索nuSensorServicestarting

 

发现了并没有找到HAL层的.so文件!

检查Z:\project\hk811\idh.code\vendor\sprd\open-source\libs\libsensors_sprd\Android.mk

 

使用adb 查找system/lib下面发现了

 

一般的硬件的hal层都会放在system/lib/hw下面,修改android.mk

重新编译模块,放到system/lib/hw,问题解决!



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值