Android4.0.x 安全模式的分析
来源:互联网 发布:很红的网络翻唱歌曲 编辑:程序博客网 时间:2024/05/16 18:40
进入安全模式的条件
frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java 2254
2254 public boolean detectSafeMode() {
2255 try {
2256 int menuState = mWindowManager.getKeycodeState(KeyEvent.KEYCODE_MENU);
2257 int sState = mWindowManager.getKeycodeState(KeyEvent.KEYCODE_S);
2258 int dpadState = mWindowManager.getDPadKeycodeState(KeyEvent.KEYCODE_DPAD_CENTER);
2259 int trackballState = mWindowManager.getTrackballScancodeState(BTN_MOUSE);
2260 mSafeMode = menuState > 0 || sState > 0 || dpadState > 0 || trackballState > 0;
2261 performHapticFeedbackLw(null, mSafeMode
2262 ? HapticFeedbackConstants.SAFE_MODE_ENABLED
2263 : HapticFeedbackConstants.SAFE_MODE_DISABLED, true);
2264 if (mSafeMode) {
2265 Log.i(TAG, "SAFE MODE ENABLED (menu=" + menuState + " s=" + sState
2266 + " dpad=" + dpadState + " trackball=" + trackballState + ")");
2267 } else {
2268 Log.i(TAG, "SAFE MODE not enabled");
2269 }
2270 return mSafeMode;
2271 } catch (RemoteException e) {
2272 // Doom! (it's also local)
2273 throw new RuntimeException("window manager dead");
2274 }
2275 }
menu键,全键盘的s键,DPAD_CENTER,轨迹球按键。
SystemServer 会在启动过程中,启动所有服务,然后检测是否是安全模式,如果是则通知 ActivityManagerService进入安全模式,ActivityManagerService又通知PackageManagerService进入安全模式,然后在左下角显示一个“安全模式”的文字。PackageManagerService进入安全模式,仅仅是设置了mSafeMode这个局部变量。 安全模式对PackageManagerService的影响: 在获得Persistent应用的时候如果是安全模式,则只返回SystemApp。 在解析ContentProvider的时候,如果是安全模式,只有制定的provider是系统自带的才能解析。 总的来说,如果PackageManagerService处于安全模式下,只有ApplicationInfo.FLAG_SYSTEM的组件才会返回。 设置了persistent标志的应用会在ActivityManagerService执行systemReady的时候,由AM来启动。 如果进入了安全模式,即使设置类persistent标志的第三方应用也不会启动。
launcher在加载桌面的时候,会通过AMS来获得判断是否是SafeMode。 安全模式对广播的影响,AMS最终会通过PM来获得广播的接收着,AppGlobals.getPackageManager().queryIntentReceivers
- Android4.0.x 安全模式的分析
- 核心J2EE设计模式的安全分析
- Android4.2严格模式代码分析
- android4.0 WindowManagerService的分析
- android4.0 WindowManagerService的分析
- Android4.x的RTSP框架学习
- Android4.X数据库的cursor问题
- Android4.x Power按键的处理 : KEYCODE_POWER
- 对Android4.X窗口的认识
- Android4.x Power按键的处理 : KEYCODE_POWER .
- android 4.0 安全模式分析
- Openwrt 安全模式failsafe分析
- android4.x与andriod2.x的datepicker差别大
- Android4.3安全改进
- Mac OS X:“安全启动”和“安全模式”是什么?
- Android4.4 Launcher3的IconCache分析
- Android4种活动的启动模式
- Android4种活动的启动模式
- Windows7与Window2008 64位IIS7上面DCOM配置Excel、Word等
- java 处理大数据
- 轮询方式实现线程间共享变量
- CCTextureCache 和 CCSpriteFrameCache
- C语言中 const 和 static 和 extern
- Android4.0.x 安全模式的分析
- 第七节, 静态成员变量和静态成员函数
- PowerBuilder 9开发技术讲座-PowerBuilder Native Interface(PBNI)
- 如何使用spflashtool备份mtk rom
- iso-开发基础知识-3- 对象组合和类继承
- 海康视频7 和 DropCam
- FORM主从块头行金额汇总
- C语言枚举类型enum
- cocos2dx CCLayer转换不明确