Suporte a vários usuários

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

Terminologia

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

Em geral

O gerenciamento de dispositivos Android usa os seguintes termos gerais.

  • Usuário . Cada usuário deve ser usado por uma pessoa física diferente. Cada usuário possui dados de aplicativos distintos e algumas configurações exclusivas, bem como uma interface de usuário para alternar explicitamente entre os usuários. Um usuário pode executar em segundo plano quando outro usuário estiver ativo; o sistema gerencia o desligamento de usuários para conservar recursos quando apropriado. Os usuários secundários podem ser criados diretamente por meio da interface do usuário ou de um aplicativo de administração de dispositivos .
  • 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. Os usuários e perfis contêm suas próprias contas exclusivas, mas não precisam ter contas para funcionar. A lista de contas difere por usuário. Para obter detalhes, consulte a definição da classe Account .
  • Perfil . Um perfil separou os dados do aplicativo, mas compartilha algumas configurações de todo o 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 meio de um aplicativo Device Administration . Um perfil sempre tem uma associação imutável a um usuário pai, definida pelo usuário que criou o perfil. Os perfis não existem além do tempo de vida do usuário criador.
  • Aplicativo Os dados de um aplicativo existem em cada usuário associado. Os dados do aplicativo são colocados em sandbox de outros aplicativos dentro do mesmo usuário. Aplicativos dentro do mesmo usuário podem interagir uns com os outros via IPC. Para obter detalhes, consulte 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 pela redefinição de fábrica e está sempre em execução mesmo quando outros usuários estão em primeiro plano. Este usuário também tem privilégios e configurações especiais que só ele pode definir.
  • Usuário secundário . Qualquer usuário adicionado ao dispositivo que não seja o usuário do sistema. Os usuários secundários podem ser removidos (por eles mesmos ou por um usuário administrador) e não podem afetar outros usuários em um dispositivo. Esses usuários podem ser executados em 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 opção explícita de excluir rapidamente o usuário convidado quando sua utilidade terminar. Só pode haver um usuário convidado por vez.
  • Usuário administrador . Um usuário que tem permissão para criar e remover outros usuários, bem como controlar algumas configurações gerais de vários usuários. Por padrão, apenas o usuário do sistema é um administrador.

Categorias de perfis

A administração de dispositivos Android usa as seguintes categorias de perfis.

  • Perfil gerenciado . Criado por um aplicativo para conter dados de trabalho e aplicativos. Eles são gerenciados exclusivamente pelo proprietário do perfil (o aplicativo que criou o perfil corporativo). Iniciador, notificações e tarefas recentes são compartilhadas pelo usuário pai e pelo perfil corporativo.
  • Perfil restrito . Usa contas baseadas no usuário pai, que pode controlar quais aplicativos estão disponíveis no perfil restrito. Disponível apenas em tablets e aparelhos de televisão.

Tipos de usuário

O Android 11 formulou a classificação acima de usuários e perfis em tipos de usuários bem definidos, representando todos os diferentes tipos de usuários e perfis permitidos pelo recurso multiusuário do Android.

Os tipos de usuário AOSP predefinidos 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

Os OEMs têm a capacidade de configurar esses tipos de usuário sobrepondo o arquivo 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 suas restrições padrão, ícones, emblemas e o número máximo permitido de usuários.

Além dos tipos de usuário AOSP configuráveis, os OEMs podem definir novos tipos de perfil usando o arquivo frameworks/base/core/res/res/xml/config_user_types.xml . Isso permite que os OEMs introduzam seus próprios tipos de perfil não gerenciados, se desejado. No entanto, é responsabilidade do OEM fazer as modificações da plataforma conforme necessário para dar suporte às alterações, incluindo a modificação de qualquer código que verifique os perfis gerenciados para agora lidar com o novo tipo de perfil, se apropriado.

Ativando multiusuário

A partir do Android 5.0, o recurso multiusuário está desabilitado por padrão. Para habilitar o recurso, os fabricantes de dispositivos devem definir uma sobreposição de recursos 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 habilitar usuários convidados e secundários no dispositivo, use o recurso DEVICE_PACKAGE_OVERLAYS do sistema de compilação 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 sobre o número máximo de usuários. Se os fabricantes de dispositivos ou outros tiverem modificado as configurações, eles devem garantir que o SMS e a telefonia funcionem conforme definido no Documento de definição de compatibilidade do Android (CDD).

Gerenciando vários usuários

O gerenciamento de usuários e perfis (com exceção de perfis restritos) é realizado por aplicativos que invocam a API programaticamente na classe DevicePolicyManager para restringir o uso.

Escolas e empresas podem empregar usuários e perfis para gerenciar a vida útil e o escopo de aplicativos e dados nos dispositivos, usando os tipos descritos acima em conjunto com a API UserManager para criar soluções exclusivas adaptadas aos seus casos de uso.

Comportamento do sistema multiusuário

Quando os usuários são adicionados a um dispositivo, algumas funcionalidades são reduzidas quando outro usuário está em primeiro plano. Como os dados do aplicativo são separados por usuário, o estado desses aplicativos difere de acordo com o usuário. Por exemplo, o email 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 estejam ativos no dispositivo.

Por padrão, apenas o usuário do sistema tem acesso total a chamadas telefônicas e textos. O usuário secundário pode receber chamadas de entrada, mas não pode enviar ou receber textos. Um usuário administrador deve habilitar essas funções para outros.

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

Existem algumas restrições 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 ativar os serviços Bluetooth. Além disso, o processo do sistema interromperá os usuários secundários em segundo plano se o dispositivo precisar de memória adicional para operações no usuário em primeiro plano.

Ao empregar vários usuários em um dispositivo Android, lembre-se do seguinte comportamento:

  • As notificações aparecem para todas as contas de um único usuário de uma só vez.
  • As notificações para outros usuários não aparecem até que estejam ativas.
  • Cada usuário recebe um espaço de trabalho para instalar e colocar aplicativos.
  • Nenhum usuário tem acesso aos dados do aplicativo de outro usuário.
  • Qualquer usuário pode afetar os aplicativos instalados para todos os usuários.
  • Um usuário administrador pode remover aplicativos ou até mesmo todo o workspace estabelecido por usuários secundários.

O Android 7.0 inclui vários aprimoramentos, incluindo:

  • Alternar perfil de trabalho . Os usuários podem desativar seu perfil gerenciado (como quando não estão no trabalho). Essa funcionalidade é alcançada parando o usuário; UserManagerService chama ActivityManagerNative#stopUser() .
  • VPN sempre ativa . Os aplicativos VPN agora podem ser definidos como sempre ativos pelo usuário, DPC de dispositivo ou DPC de perfil gerenciado (aplica-se apenas a aplicativos de perfil gerenciado). Quando ativado, os aplicativos não podem acessar a rede pública (o acesso aos recursos da rede é interrompido até que a VPN seja conectada e as conexões possam ser roteadas por ela). Os dispositivos que relatam device_admin devem implementar a VPN sempre ativa.

Para obter mais detalhes sobre os recursos de administração de dispositivos Android 7.0, consulte Android for Work .

Multiusuário do Android Automotive

O Android Automotive conta com a implementação multiusuário do Android para fornecer uma experiência de dispositivo compartilhado.

Tipos de usuário automotivo

Além dos tipos de usuário listados acima, as compilações automotivas são notáveis ​​para esses tipos de usuários:

  • Usuário do sistema sem cabeça. 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 deve ser headless . Há apenas um usuário sem cabeça. Um usuário de sistema sem cabeça:
    • Deve sempre ser executado em segundo plano.
    • Não pode ser removido ou acessado diretamente pelo usuário, exceto no caso de Provisionamento de Dispositivo. Por exemplo, os usuários não podem alternar para esse tipo de usuário para executar tarefas como baixar aplicativos ou adicionar contas.
    • Só pode ser apagado por uma redefinição de fábrica.
  • Usuários regulares. O mesmo que Usuários Secundários , descritos acima, exceto que os usuários secundários:
    • Não execute em segundo plano (depois de ter sido desligado).
    • Pode ser criado diretamente através da interface do usuário.
    • Separe os dados do aplicativo, mas compartilhe algumas configurações de todo o sistema. Por exemplo, Wi-Fi e Bluetooth.

Ressalvas

As seguintes exceções se aplicam a usuários do sistema headless e usuários regulares (secundários) no setor automotivo:

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

Habilitando o usuário do sistema headless

A partir do Android 10, o recurso multiusuário pode ser usado para casos de uso automotivo. As distinções importantes incluem:

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

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

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

Para obter mais informações, consulte Suporte multiusuário no setor automotivo.