Android5.0L下因sensorservice crash导致systemserver重启的另外一种场景分析
来源:互联网 发布:网络交换机与PLC通讯 编辑:程序博客网 时间:2024/04/29 00:20
一、出问题的场景
1、Sensorservice线程正在处理compass sensor事件的过程中,检查了一次buffer的指针的有效性,并在稍后会传递到AKM获取数据的函数接口中使用
2、Sensorservice线程所在进程的负责跨进程通信的Binder线程在sensorservice线程检查buffer指针之后没有真正使用之前,
收到了disable compass sensor的请求,从log中可以看到compass sensor先是被disable,disable的同时会free上面sensorservice检查过并正在使用的buffer指针,同时置空buffer指针
3、紧接着sensorservice线程继续执行AKM获取数据的函数接口,并使用到了已经被disable置空的buffer指针,然后产生异常
二、具体log和代码
Disable compass sensor并free buffer的代码:
Free buffer 3ms之后sensorservice马上因为访问空指针异常的log:
传递buffer指针并使用的代码:
使用buffer指针产生异常的地方log:
1 0
- Android5.0L下因sensorservice crash导致systemserver重启的另外一种场景分析
- Android5.0L中SensorService crash导致的systemserver重启问题分析
- Android5.0L因SystemUI ANR导致的黑屏问题分析
- 另外一种重启手机的方法:
- Android5 Zygote 与 SystemServer 启动流程分析
- Android5.0L退出APP横竖屏切换导致的触摸屏输入(Touch Event)无效(冻屏)问题分析(Key Event仍然有效)
- 一个因中断导致的死锁分析
- 一个因中断导致的死锁分析
- SensorService 分析
- 【Android】【问题分析】G-sensor因数据交互问题导致手机crash
- Android M原生BUG,手机使用过程中SystemServer空指针异常导致手机重启
- AndroidStudio因电脑意外重启,导致所有的import都出错
- l另外一种侧滑菜单MenuDrawerDemo
- 笔记本电脑因安装软件重启导致黑屏?
- Android5.1--SystemServer进程
- Android5.0开关机模块——SystemServer进程
- android L 之 SystemServer
- android L 之SystemServer
- mysql学习7备份和导出导入
- Mysql Select 语句中实现的判断
- OpenCV与相机的关系
- IOS中的基础动画CABasicAnimation的运用指南
- 使用 Spring Boot 快速构建 Spring 框架应用
- Android5.0L下因sensorservice crash导致systemserver重启的另外一种场景分析
- cf451E Devu and Flowers 卢卡斯定理+容斥定理
- Leetcode|Populating Next Right Pointers in Each Node
- Mysql中时间加减和比较大小的方法
- hdu 2871 Memory Control(成段更新,区间合并)
- php soap实例讲解
- 2. CSS 结构
- 屏蔽/禁止双击选中文字
- 求一个整形数组的最大元素