Как указано в официальный документ, можно включить многопользовательскую функцию Android во время сборки, но нет документа о ее включении в существующем образе Android. Есть ли способ включить многопользовательский режим на существующем устройстве (например, с помощью adb), учитывая, что доступен root-доступ?
Установка свойства fw.max_users
на желаемое значение может включить многопользовательскую поддержку. Что-то вроде setprop fw.max_users $MAX_USERS
. На самом деле андроид сам считывает это свойство, чтобы узнать, поддерживает ли устройство многопользовательский режим или нет. Вы можете обратиться к исходному коду Менеджер пользователей, чтобы узнать, как Android считывает максимальное количество пользователей. Следующий фрагмент скопирован из источника UserManager:
/**
* Returns the maximum number of users that can be created on this device.
A return value of 1 means that it is a single user device.
* @hide
* @return a value greater than or equal to 1
*/
@UnsupportedAppUsage
public static int getMaxSupportedUsers() {
// Don't allow multiple users on certain builds
if (android.os.Build.ID.startsWith("JVP")) return 1;
return SystemProperties.getInt("fw.max_users",
Resources.getSystem().getInteger(R.integer.config_multiuserMaximumUsers));
}
Это API, который будет считываться при запросе от максимального количества пользователей.
Вопрос был не в этом - и даже этот геттер нельзя вызвать из приложения.
Это указывает на то, как мы можем изменить No . пользователей
setprop fw.max_users 8
работало на моем устройстве, где 8 было желаемым максимальным количеством пользователей. Я думаю, что @MartinZeitler неправильно прочитал ваш ответ, возможно, его редактирование сделает его более понятным.
Можно отредактировать /system/build.prop
на корневом устройстве и добавить многопользовательскую поддержку, а затем перезагрузиться:
fw.max_users=3
fw.show_multiuserui=1
Это читается как
@UnsupportedAppUsage
, что означает, что приложение недоступно.