本博客地址:https://security.blog.youkuaiyun.com/article/details/82924988
六、账户管理
6.1、多用户支持概述
多用户支持机制,对每个用户提供一个隔离的私人环境,从而允许多个用户之间共享一个设备。用户使用互不相同的user ID来识别,并且只有系统才可以在用户间切换。
Android最大支持8个用户,但是只能同时运行3个用户。
Android使用UserManagerService服务管理用户,它负责读取和维护用户信息,并且维护一个活动用户的列表。
6.2、用户添加流程
用户添加是通过调用UserManager的:
public UserInfo createUser(String name, int flags)
方法进行的。其具体实现在UserManagerService的同名方法中。
在调用时,系统进行如下操作:
1、检查调用者是否具有所需权限。
2、对安装和软件包流程加锁,保证线程安全。
3、检查多用户环境是否到达用户数量限制。如果没有,创建用户实例。
4、为新用户创建相关目录。
5、序列化用户列表。
6、发送用户建立广播,MountService在收到此广播后,调用createEmulatedVolumeForUserLocked方法为用户建 立相应的数据目录。