大家都知道iOS系统是一种封闭的系统,iOS系统的应用程序之间都具有严格的沙箱隔离机制。而Android系统同样具备类似沙箱隔离机制,只是Android系统是开源的,开发者的自主性更大。
Sandbox模型是一种能够保证系统安全的关键安全技术。通俗来说,沙箱模型就是系统使用重定向技术,将应用的所有操作都放在一个虚拟的系统汇总运行,就算有病毒,也不会危害到真实的系统。
Android系统是基于Linux 的多用户操作系统,系统会给每一个应用程序分配一个唯一的UID,同时也会为该应用程序下所有的文件与所有的操作都配置相同的权限,只有相同UIID的应用程序才能对这些文件进行读写操作,当然这一切都除了root权限的用户。Android采用了Linuxde UID/GID隔离机制,在Andoird平台上,UID也称为AID。
Android系统中每个应用程序都有自己唯一的UID,每个应用程序之间都是相互隔离的,未经授权,不能相互访问
Android系统应用之间的权限授予机制
Android的权限有很多种,Android系统将不同的系统进行了权限层级分离。Android系统权限虽然多,但是也可以分类三类:API权限、文件权限、IPC权限
1)API权限
API权限包括那些在调用Android API、Framework 和第三方框架中所使用的高级别权限。例如API权限 READ_PHONE_STATE,这是定义在Android许可文件中,表示允许程序“只读访问电话状态”。应用程序,在被授予该权限后可调用各种查询电话信息的方法,例如操作系统版本、DeviceID等。
Android系统在应用安装时就会让用户授予应用权限,代表需要用户的授权,如下
2)文件权限
Android继承了Linux中的文件权限机制,系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限氛围制度、只写、可执行三种
有三种不同类型的用户可以对文件或目录进行访问:文件所有者、同组用户、其他用户。所有者一般是文件的创建者。素有着可以允许同组用户有权限访问文件,还可以将文件的访问权限赋予系统中其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文档或者目录。
3)IPC权限
IPC权限指直接相关组件(和一些系统的IPC设施),尽管有一些重叠API权限。这些权限的申报和执行发生在不同的层次,包括运行时、库函数,或者直接在应用程序本身。具体而言,该权限主要是Android不同进程之间的粘贴剂。