Android 
安全模式的分析
手机安装第三方软件后,有一定的概率出现软件与系统不兼容的情况,例如,系统文件操作,手机无法正常开机或开机或系统程序不停报错的现象.遇到此类现象,可重启,使手机进入安全模式.
手机在安全模式下,系统仅会加载维持系统基本功能运行的部分程序不会启动第三方的软件,同时可以通过此方法测试手机基本功能是否正常使用,且删除最近安装的第三方软件来排除某些不兼容的情况.
安全模式的特点
(1)任何第三方应用程序都不会自动启动,只有系统应用程序可以执行
(2)手机左下角会出现"安全模式"字样
(3)在安全模式下,用户可以接触安装有问题的应用程序
(4)安全模式下不会损坏任何应用程序和个人数据
 
进入安全模式的条件
frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java 
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 
mReceivers.queryIntent()  mReceivers的类型是
ActivityIntentResolver  这个类在解析
receivers的最后,会调用
newResult,这个函数会判断安全模式下,如果不是系统的应用,会排除在外。
 
总结: 
安全模式下,所有的第三方应用服务,不会自动运行,也不会收到广播。如果明确指定第三方的component 
name 还是可以运行的。

android安全模式相关推荐

  1. android 重启后进入安全模式_Android手机如何进入离开安全模式?

    原标题:Android手机如何进入&离开安全模式? Android从版本4.1开始导入[安全模式](Safe Mode).它的原理与微软Windows 的安全模式相似.如果机器发生问题,例如应 ...

  2. Android 中的 安全模式(safe mode)

    前言 安全模式是安卓系统的一种特殊模式,和WINDOWS的安全模式相似,在安全模式下用户可以轻松地修复手机系统的一些错误,方便快捷.由于第三方应用程序,可能会存在一定的兼容性问题,所以在安装软件后会出 ...

  3. 平板电脑怎么启动android,如何将Android手机或平板电脑启动到安全模式 | MOS86

    在Windows PC上,您可以启动进入安全模式,以加载Windows而无需任何第三方软件.您可以使用Android的安全模式在Android上执行相同操作.在安全模式下,Android将不会加载任何 ...

  4. android 重启后进入安全模式_图文详细教程:台式电脑或笔记本也可以运行Android系统,凤凰OS...

    安装完Android系统后会和Windows双系统共存,并不会影响原来系统的数据安全,不用担心! 好了,简单粗暴,第一步:下载凤凰OS安卓系统.附官网下载链接http://www.phoenixos. ...

  5. android 手机一直进安全模式 解决方法

    前几天note2音量下键坏了,导致手机一启动就进入安全模式. 尝试了各种偏方(比说说往手机音量键滴酒精...)未果,又不想送修(水货).只能自己寻找解决方式. 作为一个码农,首先想到的方法就是修改代码 ...

  6. 手机显示android怎么办,手机出现安全模式怎么取消

    [手机出现安全模式怎么取消]手机出现安全模式是不少用户在使用手机过程中遇到的情况.手机安全模式,通常是因为我们错手按错了按钮进入的,当然不排除一些用户需要通过进入手机安全模式来解决正常模式下无法处理的 ...

  7. android上传图片崩溃,导致安卓手机死机的照片拍摄者表示这张照片是无意之举...

    原标题:导致安卓手机死机的照片拍摄者表示这张照片是无意之举 上周,我们报道了在一些安卓手机上将某张图片设置为壁纸会导致手机崩溃,并卡在一个开启和关闭显示屏的循环中,让用户无法进行锁屏.它影响了大多数A ...

  8. 深入解析Android关机

    轉載: http://mobile.51cto.com/aprogram-418981.htm 其他參考: 设备驱动-----Android关机流程总结 下图详细阐释了Android的关机顺序. 第一 ...

  9. 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录

    2019独角兽企业重金招聘Python工程师标准>>> 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录 来源:微信技术团队的公众号WeMobileDev 热 ...

最新文章

  1. 基础通俗讲解集成学习算法
  2. Entity Framework 学习笔记(1)
  3. 《游戏力》读书笔记作文4700字
  4. String, StringBuffer, StringBuilder(转载)
  5. 计算机房英语视频,雅思听力场景词汇:计算机房场景
  6. 201029阶段二Linux动态库、makefile
  7. ipconfig /flushdns 解释
  8. CSS中的块元素,内联元素,内联块元素
  9. .net 根据银行卡获取银行信息
  10. Deep Stream Ai落地--初体验
  11. php 三才五格计算,姓名、名字笔划算命五格测试算命计算方法
  12. NOIP五校联考1-4总结
  13. 什么是FBO (Frame Buffer Object)
  14. 关于研发项目计划排期与项目需求延期的想法
  15. 保护信息安全,实名认证该怎么选?
  16. android培训感想
  17. postman实践与运用
  18. html文本框后面加一个按钮怎么对齐,怎样对齐文本框和图像(image)按钮实现三点一线...
  19. kafka使用教程、快速上手
  20. 《现代通信原理》学习(一)绪论

热门文章

  1. uniapp 浙政钉埋点——小程序
  2. 大数据可视化热门工具
  3. 利用C++制作无敌战机游戏,快乐学习,快乐编程!(源代码展示)
  4. 医学图像处理开源软件
  5. VIE结构是什么?互联网公司
  6. 设计模式之业务实战培训
  7. 中国AI发展报告2018:中国AI专利全球第一,高水平论文最多
  8. Android TV框架 TIF(Android TV Input Framework)入门实践
  9. HD-SDI芯片方案选择及其应用与发展方向
  10. TiDB数据库架构——TiDB Server