Suporte a vários usuários

O Android oferece suporte a vários usuários em um único dispositivo Android, separando o usuário e dados de aplicativos. Por exemplo, os pais podem permitir que as crianças usam o tablet da família, uma família pode compartilhar um automóvel ou uma equipe de resposta crítica compartilhar um dispositivo móvel para serviço de plantão.

Terminologia

O Android usa os termos a seguir ao descrever usuários e contas do Android.

Geral

O gerenciamento de dispositivos Android usa os seguintes termos gerais:

  • Usuário: cada usuário deve ser utilizado por uma entidade física diferente pessoa. Cada usuário tem dados de aplicativo distintos e algumas configurações exclusivas, como bem como uma interface do usuário para alternar explicitamente entre usuários. Um usuário pode executar em segundo plano quando outro usuário está ativo. o sistema gerencia o desligamento para economizar recursos quando apropriado. É possível criar usuários secundários seja diretamente por meio da interface do usuário ou de um Dispositivo Administration.
  • Conta: as contas estão contidas em um usuário, mas não são definidas. por um usuário, nem um usuário é definido ou vinculado a uma determinada conta. Usuários e perfis contêm suas próprias contas exclusivas, mas não precisam ter para funcionarem. A lista de contas varia de acordo com o usuário. Para mais detalhes, consulte o Conta classe.
  • Perfil:um perfil tem dados separados de apps, mas compartilha alguns. configurações gerais do sistema (por exemplo, Wi-Fi e Bluetooth). Um perfil é um subconjunto e vinculado à existência de um usuário. Um usuário pode ter vários perfis. Os perfis são criados por uma Dispositivo Administration. Um perfil sempre tem uma associação imutável a um usuário pai, definido pelo usuário que criou o perfil. Os perfis não têm existem além da vida útil do usuário de criação.
  • App:os dados de um aplicativo existem dentro de cada usuário associado. Os dados do app são colocados no sandbox de outros aplicativos do mesmo usuário. Aplicativos do mesmo usuário podem interagir entre si via IPC. Para mais detalhes, consulte para o Android para empresas.

Categorias de usuários

A administração de dispositivos Android usa as seguintes categorias de usuários.

  • Usuário do sistema:primeiro usuário adicionado a um dispositivo. O usuário do sistema não pode ser removido, exceto por redefinição de fábrica e está sempre em execução mesmo quando e outros usuários estão em primeiro plano. Este usuário também tem privilégios especiais e que só ele pode definir.
  • Usuário do sistema headless:primeiro usuário adicionado a um dispositivo se este estiver configurado seja executada no modo de usuário do sistema headless (definindo ro.fw.mu.headless_system_user=true). Como o usuário do sistema headless sempre é executado em segundo plano, esses dispositivos exigem usuários em primeiro plano para ativar a interação do usuário.
  • Usuário secundário:qualquer usuário adicionado ao dispositivo, exceto o sistema usuário. Os usuários secundários podem ser removidos (por conta própria ou por um administrador) usuário) e não pode afetar outros usuários em um dispositivo. Esses usuários podem executar segundo plano e continuar a ter conectividade de rede.
  • Usuário convidado:usuário secundário temporário. Os usuários convidados têm uma permissão para excluir rapidamente o usuário convidado quando a utilidade estiver acabando. Não é possível ser apenas um usuário convidado por vez.
  • Usuário administrador:um usuário que tem permissão para criar e remover outros usuários. além de controlar algumas configurações gerais multiusuário. Por padrão, apenas o usuário do sistema é um administrador.

Categorias de perfis

O Android usa as seguintes categorias de perfis:

  • Perfil gerenciado:criado por um aplicativo para conter dados de trabalho. e apps. Eles são gerenciados exclusivamente pelo proprietário do perfil, o aplicativo que criou o perfil corporativo). O acesso rápido, as notificações e as tarefas recentes compartilhada pelo usuário pai e pelo perfil corporativo.
  • Perfil restrito:usa contas com base no usuário pai, que pode controlar quais apps ficam disponíveis no perfil restrito. Disponível apenas em tablets e dispositivos de televisão.
  • Clonar perfil:o Android oferece suporte à criação de um usuário de perfil clone separado. para ativar a execução de duas instâncias de um único app no dispositivo. O AOSP não oferece suporte completo para o recurso. Os OEMs precisam adicionar personalizações para oferecer a versão para usuários do Android.
  • Perfil particular:é um espaço em sandbox separado do restante do dispositivo, que podem ser bloqueadas separadamente do usuário principal. Um perfil particular só pode existir para usuário principal. Quando o perfil particular é desbloqueado, os apps ficam visíveis nas configurações, ShareSheet, Photopicker e DocsUI, mas os apps ficam ocultos quando bloqueados. O perfil particular pode existir no mesmo dispositivo com o perfil de trabalho e clonar o perfil.

Tipos de usuários

O Android 11 formou a classificação de usuários e perfis acima em tabelas bem definidas tipos de usuário que representam todos os diferentes tipos de usuários e perfis permitidos pelo ambiente multiusuário do Android .

Os tipos de usuário predefinidos do AOSP são definidos em frameworks/base/core/java/android/os/UserManager.java e atualmente incluem:

  • android.os.usertype.full.SYSTEM
  • android.os.usertype.full.SECONDARY
  • android.os.usertype.full.GUEST
  • android.os.usertype.full.DEMO
  • android.os.usertype.full.RESTRICTED
  • android.os.usertype.profile.MANAGED
  • android.os.usertype.system.HEADLESS
  • android.os.usertype.profile.CLONE
  • android.os.usertype.profile.PRIVATE

Os OEMs podem configurar esses tipos de usuários sobrepondo a frameworks/base/core/res/res/xml/config_user_types.xml. Isso facilita a alteração da configuração padrão para cada tipo de usuário, incluindo as restrições padrão, ícones, distintivos e o número máximo permitido de usuários.

Além dos tipos de usuário configuráveis do AOSP, os OEMs podem definir novos tipos de perfil usando as frameworks/base/core/res/res/xml/config_user_types.xml. Isso permite que os OEMs introduzam os próprios tipos de perfil não gerenciados, se quiserem. No entanto, é responsabilidade do OEM fazer as modificações na plataforma conforme necessário para oferecer suporte ao mudanças, incluindo a modificação de qualquer código que verifique se há perfis gerenciados para passar a lidar com o novo perfil se apropriado.

Ativar a autenticação multiusuário

O recurso multiusuário fica desativado por padrão. Para ativar o recurso, os fabricantes de dispositivos devem definir uma sobreposição de recurso que substitua os seguintes valores em frameworks/base/core/res/res/values/config.xml:

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>

Para aplicar essa sobreposição e permitir usuários convidados e secundários no dispositivo, use o recurso DEVICE_PACKAGE_OVERLAYS do sistema de build do Android para substituir os valores de:

  • config_multiuserMaximumUsers com um valor maior que 1
  • config_enableMultiUserUI com true

Os fabricantes de dispositivos podem decidir qual é o número máximo de usuários. Se o dispositivo fabricantes ou outros modificaram configurações, eles devem garantir que o envio de SMS e de telefonia, conforme definido nos Compatibilidade do Android Documento de definição de terceiros (CDD, na sigla em inglês).

Como gerenciar vários usuários

Gerenciamento de usuários e perfis (exceto perfis restritos) é realizada por aplicativos que invocam a API de forma programática no DevicePolicyManager para restringir o uso.

As empresas podem empregar usuários e perfis para gerenciar o ciclo de vida de aplicativos e dados nos dispositivos, usando os tipos descritos acima em conjunto com o DevicePolicyManager (link em inglês) e UserManager APIs para criar soluções exclusivas personalizadas para os casos de uso.

Comportamento do sistema multiusuário

Quando usuários são adicionados a um dispositivo, algumas funcionalidades são limitadas e outro usuário está em primeiro plano. Como os dados do app são separados por usuário, a o estado desses apps varia de acordo com o usuário. Por exemplo, um e-mail destinado a uma conta de um usuário que não está em foco no momento não estará disponível até que o usuário e a conta ativos no dispositivo.

Observação: para ativar ou desativar o telefone e o SMS para um usuário secundário, vá para Configurações > Usuários, selecione o Desative a configuração Permitir chamadas telefônicas e SMS.

Algumas restrições existem quando um usuário secundário está em segundo plano. Por exemplo: o usuário secundário em segundo plano não pode exibir a interface do usuário ou fazer Serviços Bluetooth ativos. Além disso, o processo do sistema interromperá o segundo plano usuários secundários se o dispositivo precisar de memória adicional para operações na usuário em primeiro plano.

Ao empregar vários usuários em um dispositivo Android, considere o seguinte: em mente:

  • As notificações aparecem para todas as contas de um único usuário de uma só vez.
  • As notificações de outros usuários não aparecem até que estejam ativas.
  • Cada usuário tem um espaço de trabalho para instalar e posicionar apps.
  • Nenhum usuário tem acesso aos dados do app de outro usuário.
  • Qualquer usuário pode afetar os apps instalados para todos os usuários.
  • Um usuário administrador pode remover apps ou até mesmo todo o espaço de trabalho estabelecido por usuários secundários.
  • Por padrão, as informações de uma sessão de visitante não são mantidas ao sair desse modo. Se quiser que as informações de uma sessão de usuário convidado sejam mantidas, você precisa criar um recurso de sobreposição que define o config_guestUserAllowEphemeralStateChange como false. Para mais informações sobre como criar arquivos de sobreposição, consulte Personalizar o build com sobreposições de recursos.

Android Automotive multiusuário

O Android Automotive depende da implementação multiusuário do Android para fornecer um dispositivo compartilhado do usuário.

Tipos de usuários automotivos

Além dos tipos de usuário listados acima, os builds do Automotive são importantes para eles de usuários:

  • Usuário do sistema headless. O usuário do sistema hospeda todos os serviços do sistema. Para oferecer suporte a vários usuários no Automotive, o usuário do sistema também precisa estar headless. Há apenas um usuário headless. Um usuário de sistema headless:
    • Precisam ser executados sempre em segundo plano.
    • Não pode ser removido ou acessado diretamente pelo usuário, exceto no caso do Dispositivo Provisionamento. Por exemplo, os usuários não podem alternar para esse tipo de usuário para realizar tarefas como: fazer o download de apps ou adicionar contas.
    • Só podem ser apagados com uma redefinição para a configuração original.
  • Usuários comuns. O mesmo que Usuários secundários, descritos acima, exceto que usuários usuários:
    • Não executar em segundo plano (depois de ter saído do aplicativo).
    • Podem ser criadas diretamente usando a interface do usuário.
    • têm dados de apps separados, mas compartilham algumas configurações do sistema; Por exemplo, Wi-Fi e Bluetooth

Avisos

As exceções a seguir se aplicam a usuários do sistema headless e usuários normais (secundários) em Automóveis:

  • O usuário do sistema headless não oferece suporte a perfis de trabalho.
  • Por padrão, os usuários comuns (secundários) têm acesso total a chamadas telefônicas e mensagens de texto.
  • Por padrão, os usuários comuns (secundários) não são executados em segundo plano.

Como ativar o usuário do sistema headless

No Android 10 e versões mais recentes, o recurso multiusuário pode ser usado para casos de uso automotivos. Importante as distinções incluem:

  • O usuário do sistema é headless e executado apenas em segundo plano.
  • Usuários humanos não interagem com o usuário do sistema.

Para habilitar o usuário do sistema headless, os fabricantes dos dispositivos precisam habilitar o multiusuário, conforme descrito acima.

Quando o usuário headless está ativado:
  1. Para declarar que o dispositivo é automotivo, adicione o recurso android.hardware.type.automotive:
  2. Defina ro.fw.headless_system_user como true.
  3. Defina o valor de config_multiuserMaximumUsers como 2. (ou superior).

Para mais informações, consulte Suporte multiusuário na área automotiva.

Android Automotive multiusuário em várias telas

Um novo recurso experimental no Android 14 permite que usuários secundários completos (que não são o usuário atual em primeiro plano) para iniciar atividades e obter acesso à interface na tela à qual estão atribuídos. Esse recurso permite que várias usuários simultâneos no Android Automotive OS para oferecer suporte a experiências no carro que oferecem várias os passageiros com uma experiência de interface dedicada em uma única instância do Android.

Para ativar esse recurso para uso em desenvolvimento, os fabricantes dos dispositivos precisam definir uma sobreposição de recursos para substituir o seguinte valor no frameworks/base/core/res/res/values/config.xml:

<!-- Whether the device allows users to start in background visible on displays.
    Should be false for all devices in production. Can be enabled only for development use
    in automotive vehicles with passenger displays. -->

<bool name="config_multiuserVisibleBackgroundUsers">false></bool>

Você pode testar uma experiência somente de passageiros (sem motorista) ativando os seguintes configuração adicional:

<!-- Whether the device allows users to start in background visible on the default display.
    Should be false for all devices in production. Can be enabled only for development use
    in passenger-only automotive build (i.e., when Android runs in a separate system in the
    back seat to manage the passenger displays).
    When set to true, config_multiuserVisibleBackgroundUsers must also be true. -->

<bool name="config_multiuserVisibleBackgroundUsersOnDefaultDisplay">false</bool>

No Android 14, é possível ativar a experiência no carro para vários passageiros como usuários convidados. Para permitir o uso de vários usuários convidados no desenvolvimento, o dispositivo os fabricantes precisam definir uma sobreposição de recurso que configure o número máximo permitido de usuários em frameworks/base/core/res/res/xml/config_user_types.xml, como o exemplo abaixo:

<user-types>
   <full-type
       name="android.os.usertype.full.GUEST"
       max-allowed='4'>
       <default-restrictions no_factory_reset="true"
           no_remove_user="true"
           no_modify_accounts="true"
           no_install_apps="true"
           no_install_unknown_sources="true"
           no_uninstall_apps="true"/>
   </full-type>
</user-types>