启动Java时获取IMSI导致冻屏
来源:互联网 发布:图书管理系统程序算法 编辑:程序博客网 时间:2024/04/28 07:25
启动Java时冻屏,如果此时使用catcher assert手机抓取memory dump发现,JVM task在jvm_get_imsi_XXX()的接口因为kal_retrieve_eg_events()而卡死,多是植入其它native AP导致,请参照如下SOP解决。
[SOLUTION]
分析:
JVM task在调用jvm_get_imsi_XXX()后会使用event挂起自己,同步等待底层返回get IMSI的rsp。该rsp最初由MMI收到,并转发给所有需要的AP。底层的rsp在MMI注册了multiple handler,可以有多个AP注册此类handler,MMI按照register的顺序,依序调用每一个handler(包括Java)。对于multiple handler有一个重要规则,即必须返回false(0),一旦返回非0值(TRUE/void),则其后的其它multiple handler就不会再被调用。
问题一般发生在某个客制化的AP先于Java注册了IMSI rsp的handler,导致rsp返回MMI时,Java注册的handler不被执行,于是JVM task永远无法等到IMSI的到来而卡死。
[SOLUTION]
分析:
JVM task在调用jvm_get_imsi_XXX()后会使用event挂起自己,同步等待底层返回get IMSI的rsp。该rsp最初由MMI收到,并转发给所有需要的AP。底层的rsp在MMI注册了multiple handler,可以有多个AP注册此类handler,MMI按照register的顺序,依序调用每一个handler(包括Java)。对于multiple handler有一个重要规则,即必须返回false(0),一旦返回非0值(TRUE/void),则其后的其它multiple handler就不会再被调用。
问题一般发生在某个客制化的AP先于Java注册了IMSI rsp的handler,导致rsp返回MMI时,Java注册的handler不被执行,于是JVM task永远无法等到IMSI的到来而卡死。
- 启动Java时获取IMSI导致冻屏
- debuggerd阻塞问题导致冻屏
- android 冻屏
- 获取SIM卡号(IMSI)
- 怎样获取IMSI
- 如何获取IMSI号
- 获取SIM卡号(IMSI)
- C#获取IMEI,IMSI
- MTK获取IMSI号
- 获取手机imsi,imei
- 获取手机IMSI IMEI
- android 获取IMSI
- IPhone 获取IMSI序列号
- MTK 冻屏问题分析
- 获取sim卡IMSI信息
- 如何获取SIM2的imsi
- android 如何获取IMSI号
- android获取手机IMSI号
- 关闭Java时后台的FM无法恢复
- linux系统文件流、缓冲及描述符与进程间关系详解
- LINUX 下BOOST完整编译与安装
- 关闭Java音量后仍能听到系统提示音
- 【转载】上接Linux MTD下获取Nand flash各个参数的过程的详细解析【转】
- 启动Java时获取IMSI导致冻屏
- 软考复习之Decorator模式的理解
- Excel 求列名称
- 如何修改network profile的默认值
- 如何允许可以删除java default game
- 剖析VMware、微软和Citrix的虚拟化路线
- 如何开机启动某个Java应用
- 如何限制安装Java应用的数量
- 将预置的JAVA应用与JAVA Setting放在一起