Gerenciamento de dispositivos para automóveis

O gerenciamento de dispositivos permite gerenciar remotamente um veículo que executa o Android Automotive OS (AAOS). Por exemplo, o proprietário de um veículo pode querer redefinir remotamente a unidade de infoentretenimento de fábrica.

No setor automotivo, fornecemos duas categorias de gerenciamento de dispositivos:

  • Dispositivo pessoal. Um veículo é propriedade de um consumidor. O proprietário do veículo gerencia remotamente o carro. Por exemplo, o proprietário usa o aplicativo móvel do veículo para realizar remotamente uma redefinição de fábrica da unidade de infoentretenimento.
  • Dispositivo empresarial. Um veículo é propriedade de uma empresa ou organização. Um administrador gerencia remotamente o carro.

Dispositivos pessoais

Em um cenário de dispositivo pessoal, gerenciar remotamente o veículo requer considerar o estado de condução do carro. Por exemplo, se o proprietário do veículo acionar remotamente uma redefinição de fábrica, o veículo não deve redefinir as configurações de fábrica se o carro for dirigido ativamente por outra pessoa.

Assim, temos um conjunto de APIs de gerenciamento de dispositivos integradas com restrições de estado da unidade. Essas APIs podem ser chamadas por qualquer aplicativo do sistema (aplicativos pré-instalados na partição do sistema) com as permissões corretas.

APIs de gerenciamento de dispositivos pessoais

API Propósito
CarDevicePolicyManager.createUser()

Cria um novo usuário no dispositivo em segundo plano.

Como ele interage com o estado da unidade?

Um novo usuário é criado em segundo plano, independentemente do estado da unidade.

CarDevicePolicyManager.RemoveUser()

Remove um usuário existente no dispositivo.

Como ele interage com o estado da unidade?

Se o usuário de destino estiver no:

  • Antecedentes, a operação prossegue.
  • Em primeiro plano e o carro está ESTACIONADO ou EM LIVRO , a operação prossegue.
  • Foreground e o carro está MOVING , um código de exceção é lançado.
DevicePolicyManager.lockNow()

Bloqueia um usuário existente no dispositivo. Se o usuário tiver credenciais de tela de bloqueio existentes (por exemplo, um PIN ou padrão), a tela permanecerá acesa.

Como isso interage com o estado da unidade?

Se o usuário de destino estiver no:

  • Antecedentes , a operação prossegue.
  • Em primeiro plano e o carro está ESTACIONADO ou IDLING , ou MOVING , ele prosseguirá se o usuário estiver em primeiro plano (independentemente do estado de condução) ou ignorado de outra forma. lockNow() não é restrito pelo estado de distração do UX.
DevicePolicyManager.resetPassword()

Bloqueia um usuário existente no dispositivo definindo uma credencial de tela de bloqueio, se o usuário não tiver credenciais existentes. A tela permanece acesa.

Como ele interage com o estado da unidade?

Se o usuário de destino estiver no:

  • Antecedentes , a operação prossegue.
  • Em primeiro plano e o carro está ESTACIONADO ou, IDLING , a operação prossegue.
  • Foreground e o carro está MOVING , um código de exceção é lançado.
DevicePolicyManager.wipeData()

Aciona uma redefinição de fábrica no dispositivo.

Como ele interage com o estado da unidade?

Independentemente do estado da unidade ( PARKED , IDLING ou MOVING ), a operação continua. O sistema envia uma notificação para informar ao motorista que uma redefinição de fábrica é necessária.

Quando o veículo está ESTACIONADO, o motorista pode interagir com a notificação para optar por redefinir o dispositivo agora ou mais tarde (na próxima partida do carro).

Por exemplo:

Notificação de redefinição de fábrica

Figura 1. O sistema envia uma notificação quando a redefinição de fábrica é acionada.

O veículo está ESTACIONADO

Figura 2. Quando o veículo está ESTACIONADO, o motorista pode interagir com a notificação para optar por reinicializar o dispositivo agora ou mais tarde (na próxima partida do carro).

O motorista escolhe Redefinir

Figura 3. Se o motorista optar por Redefinir mais tarde, uma mensagem de brinde indica que o dispositivo será redefinido de fábrica na próxima vez que o carro for ligado.

Dispositivos empresariais

Os dispositivos Android Automotive OS que executam o Android T (AOSP experimental) SC V2 e posterior podem declarar suporte para o recurso android.software.device_admin para habilitar APIs de gerenciamento de dispositivos empresariais (para saber mais, consulte DevicePolicyManager ). Uma organização pode então usar um aplicativo Device Policy Controller (DPC) para controlar as políticas do dispositivo local e os aplicativos do sistema no dispositivo.

O Automotive não oferece suporte a Perfis de trabalho , o que significa que a única solução de gerenciamento compatível é um dispositivo totalmente gerenciado , destinado a dispositivos de propriedade da empresa sobre os quais a organização tem controle de gerenciamento completo.

As empresas que gerenciam remotamente o veículo também devem considerar o estado de condução do carro. Assim, ações remotas específicas também são integradas ao estado de condução de um veículo. Por exemplo, o fluxo de redefinição de fábrica em DevicePolicyManager.setFactoryResetProtectionPolicy() também se aplica a veículos habilitados para empresas.

Qualquer API do código DevicePolicyManager > pode lançar uma exceção (por exemplo, se o veículo estiver em movimento). Uma lista parcial de código DevicePolicyManager > APIs é fornecida abaixo. Para saber mais, consulte Visão geral da administração do dispositivo .

  • DevicePolicyManager.removeActiveAdmin()
  • DevicePolicyManager.setFactoryResetProtectionPolicy()
  • DevicePolicyManager.installCaCert()
  • DevicePolicyManager.uninstallCaCert()
  • DevicePolicyManager.installKeyPair()
  • DevicePolicyManager.removeKeyPair()

Gerenciamento de dispositivos corporativos para vários usuários

O gerenciamento de dispositivos para o setor automotivo funciona com suporte multiusuário . Isso significa que vários motoristas podem usar o mesmo veículo de propriedade da empresa, mas preservam e evitam que a privacidade de seus dados seja exposta a outros motoristas usando seus próprios usuários.

O administrador pode usar um aplicativo Device Policy Controller (DPC) conforme descrito em Criar um controlador de política de dispositivo para controlar políticas específicas do usuário ou em todo o dispositivo.

As compilações automotivas normalmente usam o modo de usuário do sistema headless, caso em que o Device Policy Controller (DPC) seria definido como o Proprietário do dispositivo (DO) do usuário do sistema e o Proprietário do perfil (PO) de todos os outros usuários. O administrador remoto deve afiliar os usuários PO, pois algumas APIs (como requestBugreport() ) só estão disponíveis se todos os usuários forem afiliados. Em seguida, o administrador remoto deve selecionar o DPC adequado para executar as ações. Se a ação estiver associada ao dispositivo (como reset de fábrica por meio de wipeData() ), ele deve usar o DO DPC. Se estiver associado a um usuário (como addUserRestriction() ), ele deve usar o PO DPC.

O aplicativo DPC precisa de um IPC entre o DO e o PO. Sugerimos a API Connect Apps descrita em Aplicativos pessoais e de trabalho conectados .

Para obter mais informações sobre como um aplicativo DPC gerencia vários usuários, consulte Usuários afiliados .