android系统的开发人员已经在android平台的设计中引入了安全的机制,android系统强制所有的android应用程序使用双层安全模型,在android底层核心,依靠Linux内核提供安全特性,即每一个android的应用程序作为单独的进程运行,其他进程不能干扰其运行,每个应用程序拥有自己的一组数据。

在应用层,android系统采用更加细化的权限设置允许(或禁止)应用程序或组件同其他应用程序组件的交互,对关键资源的访问,Mainfest.xml中的权限的配置。

每一个android应用程序都是运行在一个独立的Dalvik虚拟机上,这样就形成了一个安全的沙箱。但是这种沙箱也不是没有不被打破的可能,所以android的权限检查没有放在Dalvik虚拟机中实现,而是放在了Linux内核的代码中,在运行的时候强制的执行。


在android的系统的安全的方面,底层Linux设备资源的访问主要通过验证用户和群组的ID来确保安全。同时通过manifest.xml的权限设置,又提供了另外的一种更加的细化的安全的特性。


Linux的权限机制:

android系统为每一个新安装的应用程序分配一个唯一的UID(user ID )和一个GID(Group ID)。每一个新安装的应用程序都有一组与UID和GID关联的数据结构和文件,只有应用程序本身(通过其UID)或者是超级用户(即Root用户)具有访问这些数据和文件的权限。其他用户不具有超级用户的权限。

当应用程序需要同其他应用程序或者是组件共享信息的时候,则通过应用层采用MAC(mandatory Access Control,强制访问控制)安全模型实现。

每一个android系统上的应用程序在/data/data/目录下都有各自的文件夹。

     当android应用程序调用getSharedPreferences()、openFileOutput()或者是openOrCreateDatabase()函数创建文件的时候,可以使用MODE_WORLD_READABLE和/或MODE_WORLD_WRITEABLE标志。若是程序的开发人员没有谨慎的设置这两个标志,则将会导致其他应用程序能够读写该应用创建文件,即使这些文件仅属于该应用程序。

更多相关文章

  1. [AndroidTips]通过广播Intent控制Android系统自带的音乐播放器
  2. 安卓应用开发基础:android Dev Guide的Application Fundamentals
  3. Android(安卓)应用程序分析之Settings
  4. [Android分享] Android(安卓)Manifest.xml里内容介绍
  5. Android应用程式编译成系统程序
  6. Android中主题知识
  7. Android系统进程Zygote启动过程的源代码分析(1)
  8. 在线看Android系统源码,AndroidXRef的简易使用方法
  9. Android系统的过滤机制大揭秘——原创

随机推荐

  1. Android(安卓)shell 系统命令
  2. android常用框架
  3. 【Android(安卓)Developer Blog】Android
  4. Android: Linear Layout and weight
  5. Android之MotionLayout(三),用 MotionLay
  6. ToggleButton
  7. 初探Android
  8. UI组件
  9. Android(安卓)布局 LinearLayout与Relati
  10. 通过app打包修改app名称