CodeEggDailyInterview icon indicating copy to clipboard operation
CodeEggDailyInterview copied to clipboard

App 是如何沙箱化,为什么要这么做?

Open kukyxs opened this issue 6 years ago • 1 comments

kukyxs avatar Dec 30 '19 11:12 kukyxs

Android沙箱本质是为了实现不同应用程序之间的互相隔离,而这种隔离策略是通过让不同的应用程序运行于各自己的虚拟机进程中实现的。

沙箱,对使用者来说可以理解为一种安全环境,对恶意访问者来说是一种限制。

在Android系统中,应用(通常)都在一个独立的沙箱中运行,即每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik经过优化,允许在有限的内存中同时高效地运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。Android这种基于Linux的进程“沙箱”机制,是整个安全设计的基础之一。

Android从Linux继承了已经深入人心的类Unix进程隔离机制与最小权限原则,同时结合移动终端的具体应用特点,进行了许多有益的改进与提升。具体而言,进程以隔离的用户环境运行,不能相互干扰,比如发送信号或者访问其他进程的内存空间。因此,Android沙箱的核心机制基于以下几个概念: 1)标准的Linux进程隔离 2)大多数进程拥有唯一的用户ID(UID) 3)以及严格限制文件系统权限。

参考:https://blog.csdn.net/fei20121106/article/details/84023953

lydlovezjr avatar Dec 31 '19 14:12 lydlovezjr