O gerenciamento de dispositivos permite gerenciar remotamente um veículo com Android Automotive OS (AAOS). Por exemplo, o proprietário de um veículo pode querer redefinir remotamente a unidade de infoentretenimento para os padrões de fábrica.
No setor automotivo, oferecemos duas categorias de gerenciamento de dispositivos:
- Dispositivo pessoal. Um veículo é propriedade de um consumidor. O proprietário do veículo gerencia o carro remotamente. 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 corporativo. Um veículo é propriedade de uma empresa ou organização. Um administrador gerencia remotamente o carro.
Dispositivos pessoais
Num cenário de dispositivo pessoal, a gestão remota do veículo requer a consideração do 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 deverá ser redefinido para os padrõ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 de 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 alvo estiver em:
|
DevicePolicyManager.lockNow() | Bloqueia um usuário existente no dispositivo. Se o usuário tiver credenciais de tela de bloqueio (por exemplo, um PIN ou padrão), a tela permanecerá ligada. Como isso interage com o estado da unidade? Se o usuário alvo estiver em: |
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. O display permanece ligado. Como ele interage com o estado da unidade? Se o usuário alvo estiver em:
|
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 publica uma notificação para informar ao motorista que é necessária uma redefinição de fábrica. Quando o veículo está ESTACIONADO, o motorista pode interagir com a notificação para optar por reiniciar o dispositivo agora ou mais tarde (na próxima vez que o carro for ligado). |
Por exemplo:
Figura 1. O sistema envia uma notificação quando a redefinição de fábrica é acionada.
Figura 2. Quando o veículo está ESTACIONADO, o motorista pode interagir com a notificação para optar por reiniciar o dispositivo agora ou mais tarde (na próxima vez que o carro for ligado).
Figura 3. Se o motorista optar por Redefinir mais tarde, uma mensagem avisa que o dispositivo será redefinido para os padrões de fábrica na próxima vez que o carro for ligado.
Dispositivos empresariais
Os dispositivos Android Automotive OS que executam o Android 13 e versões posteriores podem declarar suporte para o recurso android.software.device_admin
para ativar 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 políticas de dispositivos locais e aplicativos de sistema no dispositivo.
O setor automotivo 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 direção do carro. Conseqüentemente, ações remotas específicas também são integradas ao estado de direçã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 gerar uma exceção (por exemplo, se o veículo estiver em movimento). Uma lista parcial de APIs de código> DevicePolicyManager
é fornecida abaixo. Para saber mais, consulte Visão geral da administração de dispositivos .
-
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 automotivos funciona com suporte multiusuário . Isso significa que vários motoristas podem usar o mesmo veículo 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 de todo o dispositivo.
As compilações automotivas normalmente usam o modo de usuário do sistema headless; nesse caso, o Device Policy Controller (DPC) seria definido como o Device Owner (DO) do usuário do sistema e o Profile Owner (PO) de todos os outros usuários. O administrador remoto deve afiliar os usuários do PO, pois algumas APIs (como requestBugreport()
) só estarão disponíveis se todos os usuários forem afiliados. Em seguida, o administrador remoto deve selecionar o DPC adequado para executar ações. Se a ação estiver associada ao dispositivo (como redefinição de fábrica através de wipeData()
), ele deverá usar o DO DPC. Se estiver associado a um usuário (como addUserRestriction()
), deverá usar o PO DPC.
Para obter mais informações sobre como um aplicativo DPC gerencia vários usuários, consulte Usuários afiliados .