下载地址:地址
Android应用程序是执行在一个沙箱中。这个沙箱是基于Linux内核提供的用户ID(UID)和用户组ID(GID)来实现的。
Android应用程序在安装的过程中,安装服务PackageManagerService会为它们分配一个唯一的UID和GID,以及依据应用程序所申请的权限。赋予其他的GID。有了这些UID和GID之后,应用程序就仅仅能限訪问特定的文件,一般就是仅仅能訪问自己创建的文件。此外,Android应用程序在调用敏感的API时,系统检查它在安装的时候会没有申请对应的权限。假设没有申请的话。那么訪问也会被拒绝。对于有root权限的应用程序。则不受上述沙箱限制。此外,有root权限的应用程序,还能够通过Linux的ptrace注入到其他应用程序进程,以及系统进程。进行各种函数调用拦截。