多用户模式由UserManager类控制。里面有下面两个函数来获取是否支持多用户。
public static int getMaxSupportedUsers() {
// Don't allow multiple users on certain builds
if (android.os.Build.ID.startsWith("JVP")) return 1;
// Svelte devices don't get multi-user.
if (ActivityManager.isLowRamDeviceStatic()) return 1;
return SystemProperties.getInt("fw.max_users",
Resources.getSystem().getInteger(R.integer.config_multiuserMaximumUsers));
}
public static boolean supportsMultipleUsers() {
return getMaxSupportedUsers() > 1
&& SystemProperties.getBoolean("fw.show_multiuserui",
Resources.getSystem().getBoolean(R.bool.config_enableMultiUserUI));
}
从上面两个函数可以看出需要,修改config.xml里面的config_enableMultiUserUI为true,config_multiuserMaximumUsers值大于1。另外还要修改ActivityManager.isLowRamDeviceStatic()返回false.跟踪代码发现在system/core/init/init_mem_opt.c中的property_set("ro.config.low_ram", "true");里面控制。把true改成false即可。