Android 将安全设计贯穿系统架构的各个层面,覆盖系统内核、虚拟机、应用程序框架层以及应用层各个环节,力求在开放的同时,也能保护用户的数据、应用程序和设备安全。

Android是一种基于Linux的、自由的、开源的操作系统。它主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟开发。Android系统架构可以分为4层结构,由上至下分别是应用程序层、应用程序框架层、系统运行库层以及内核层,如图1所示。

Android应用层允许开发者无须修改底层代码就能对设备的功能进行拓展,Android的应用程序框架层为开发者提供了大量的API来访问Android的设备。

Android 应用和Android 框架都是用 Java 语言开发的,并运行在 DalvikVM 中运行。DalvikVM的作用主要就是为操作系统底层提供一个高效的抽象层。DalvikVM是一种基于寄存器的虚拟机,能够解释执行Dalvik可执行格式DEX的字节码,Android 应用和Android 框架都是用 Java 语言开发的,并运行在 DalvikVM 中运行。DalvikVM的作用主要就是为操作系统底层提供一个高效的抽象层。DalvikVM是一种基于寄存器的虚拟机,能够解释执行Dalvik可执行格式DEX的字节码,

Android 将安全设计贯穿系统架构的各个层面,覆盖系统内核、虚拟机、应用程序框架层以及应用层各个环节,力求在开放的同时,也能保护用户的数据、应用程序和设备安全。

1.Android进程沙箱隔离机制

进程沙箱隔离机制,使Android应用程序在安装时被赋予独特的用户标识(UID),并永久保持。应用程序及其运行的Dalvik虚拟机运行在独立的Linux进程空间,与其他应用程序完全隔离,如图2所示。

在特殊情况下,进程间还可以存在相互信任关系。如源自同一开发者或同一开发机构的应用程序,通过Android提供的共享UID(Shared UserId)机制,使具备信任关系的应用程序可以运行在同一进程空间。

2. 应用程序签名机制

规定 APK 文件必须被开发者进行数字签名,以便标识应用程序作者和在应用程序之间的信任关系。在安装应用程序APK时,系统安装程序首先检查APK是否被签名,有签名才能安装。当应用程序升级时,需要检查新版应用的数字签名与已安装的应用程序的签名是否相同,否则,会被当作一个新的应用程序。Android 开发者有可能把安装包命名为相同的名字,通过不同的签名可以把它们区分开来,也保证签名不同的安装包不被替换,同时防止恶意软件替换安装的应用。

3. 权限声明机制

要想在对象上进行操作,就需要把权限和此对象的操作进行绑定。不同级别要求应用程序行使权限的认证方式也不一样,Normal级申请就可以使用,Dangerous级需要安装时由用户确认,Signature和SignatureOrSystem级则必须是系统用户才可用。

4. 进程通信机制

基于共享内存的 Binder 实现,提供轻量级的远程进程调用(RPC)。通过接口描述语言(AIDL)定义接口与交换数据的类型,确保进程间通信的数据不会溢出越界,如图3所示。

5. 内存管理机制

基于Linux的低内存管理机制,设计实现了独特的LMK,将进程重要性分级、分组,当内存不足时,自动清理级别进程所占用的内存空间。同时,引入的 Ashmem 内存机制,使Android具备清理不再使用共享内存区域的能力。

正是因为Android采用多层架构,在保护信息安全的同时,也保证开放平台的灵活性。

Android系统安全机制相关推荐

  1. Android系统Surface机制的SurfaceFlinger服务的线程模型分析

    在前面两篇文章中,我们分析了SurfaceFlinger服务的启动过程以及SurfaceFlinger服务初始化硬件帧缓冲区的过程.从这两个过程可以知道,SurfaceFlinger服务在启动的过程中 ...

  2. Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过程分析

    出自:http://blog.csdn.net/luoshengyang/article/details/8079456 在前面的一系列文章中,我们学习了Android应用程序与SurfaceFlin ...

  3. Android系统Surface机制的SurfaceFlinger服务的启动过程分析

    在前面一篇文章中,我们简要介绍了Android系统Surface机制中的SurfaceFlinger服务.SurfaceFlinger服务是在System进程中启动的,并且负责统一管理设备的帧缓冲区. ...

  4. Android系统Surface机制的SurfaceFlinger服务对帧缓冲区(Frame Buffer)的管理分析

    在前文中,我们分析了SurfaceFlinger服务的启动过程.SurfaceFlinger服务在启动的过程中,会对系统的硬件帧缓冲区进行初始化.由于系统的硬件帧缓冲区一般只有一个,并且不是谁都可以随 ...

  5. Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划

    前面我们从Android应用程序与SurfaceFlinger服务的关系出发,从侧面简单学习了SurfaceFlinger服务.有了这些预备知识之后,我们就可以从正面来分析SurfaceFlinger ...

  6. 深入理解Android系统多用户机制

    一.引言 这篇文章以Android v28的源码为参考,介绍Android多用户的特性.使用方式和系统原理. 二.初识Android多用户 2.1 Android多用户简介 从Android 4.0开 ...

  7. 【转】android系统的APP消息推送机制

    原文:https://www.jianshu.com/p/f898a2c02b05 参考文章: http://blog.csdn.net/carson_ho/article/details/52862 ...

  8. android屏幕刷新显示机制

    title: android屏幕刷新显示机制 tags: 新建,模板,小书匠 grammar_cjkRuby: true android屏幕刷新显示机制 前言 本文是通过阅读各种文章及代码,总结出来的 ...

  9. 理解Android系统的进程间通信原理(二)----RPC机制

    理解Android系统中的轻量级解决方案RPC的原理,需要先回顾一下JAVA中的RMI(Remote Method Invocation)这个易于使用的纯JAVA方案(用来实现分布式应用).有关RMI ...

最新文章

  1. Leetcode_198_House Robber
  2. 链表 - Part I
  3. 从AI打王者荣耀到自动驾驶,高通一口气公布了5G+AI未来的无数种可能
  4. [bzoj3527][Zjoi2014]力
  5. C99标准的新特性介绍
  6. win10前置耳机插孔没声音_iqoo耳机突然没声音-杰讯手机维修中心
  7. PLC的编程与应用学习笔记
  8. 初级官方卡刷包精简 添加万能ROOT
  9. 多粒度网络(MGN)的结构设计与技术实现
  10. 风雨萧关道【电视专题片解说词】
  11. Win7 + VirtualBox安装Mac OS X雪豹操作系统图文详解[转]
  12. 【UU主机加速】PC无线热点直接加速switch(无需路由器)
  13. vue打包时页面布局出现混乱
  14. 中国云计算行业发展前景
  15. 如何使用Servlet,JSP和MySQL将文件上传到数据库
  16. 阅读笔记 - 20220401
  17. Pytorch的优化器总结归纳
  18. uni发行小程序报错app.json找不到,运行没问题
  19. 知识点滴 - 新员工入职培训 New Employee Orientation (NEO)
  20. 关于Windows10专业版系统提示打印机操作无法完成错误0X000006ba解决方案。

热门文章

  1. 服务器的噪音会影响听力吗,噪声对听力的三大影响
  2. C++--顺时针打印矩阵
  3. 7,词根 - 倒、流
  4. Laravel 权限控制 Gate Policy
  5. ABP VNext学习日记17
  6. c语言程序设计流星雨,流星雨的实现C语言程序设计
  7. 国嵌Linux视频驱动开发
  8. 城市建筑三维白膜数据的制作
  9. 求生之路显示服务器ip,求生之路云服务器开服教程
  10. HBuilderX安装使用教程