Provisionar dispositivos

Há várias maneiras de provisionar dispositivos. Os requisitos comerciais de seus clientes determinam quais métodos de provisionamento você usará.

Noções básicas sobre o provisionamento de dispositivos

Os cenários de implantação do provisionamento de dispositivos que seus clientes querem oferecer (como BYOD ou da empresa) determinam os modos de operação que você usará (como o modo de proprietário do dispositivo ou o modo do proprietário do perfil). Da mesma forma, os modos de operação e as versões do Android que precisam de suporte determinam quais métodos de provisionamento vão ser implementados.

Cenários de implantação

Em um cenário de implantação de propriedade da empresa, a empresa é proprietária e controla totalmente os dispositivos que os funcionários usam. Normalmente, as organizações implantam dispositivos da empresa quando precisam monitorar e gerenciar estritamente todo o dispositivo.

As empresas que oferecem suporte a um cenário de implantação BYOD permitem que os funcionários tragam dispositivos pessoais para o trabalho e os usem para acessar informações e aplicativos privilegiados da empresa.

Modos de operação

As implantações de propriedade da empresa são aceitas pelo modo de operação proprietário do dispositivo. No Android, seu app de gerenciamento é chamado de controlador de política de dispositivo (DPC). O DPC aplica políticas a um dispositivo Android e, quando atua como proprietário, gerencia todo o dispositivo. Como proprietário de um dispositivo, o DPC pode realizar ações em todo o dispositivo, como configurar a conectividade em todo o dispositivo, definir configurações globais e redefinir a configuração original.

As implantações BYOD são compatíveis com o modo de operação do proprietário do perfil. Por meio do DPC, a empresa permite o uso profissional de dispositivos pessoais adicionando um perfil de trabalho à conta de usuário principal no dispositivo. O perfil de trabalho está associado ao usuário principal, mas como um perfil separado. Como proprietário do perfil, o DPC gerencia apenas o perfil de trabalho no dispositivo e tem controle limitado fora desse perfil.

Métodos de provisionamento do proprietário do dispositivo

Você precisa provisionar o modo de operação "Proprietário do dispositivo" durante a configuração inicial de um novo dispositivo ou após uma redefinição para a configuração original. O modo de proprietário do dispositivo não pode ser provisionado em um dispositivo a qualquer momento.

Dependendo do caso de uso, há dois tipos principais de métodos de provisionamento para o modo de proprietário do dispositivo.

  • Em um fluxo orientado a dispositivos, os administradores de TI podem usar NFC para provisionar um grande número de dispositivos. Esse fluxo pode ser usado para cenários com uma conta do Google Play gerenciado ou do Google Workspace.
  • Em um fluxo orientado pelo usuário, as opções dependem de a organização usar o Google Workspace ou não.
    • Em um cenário do Google Workspace, o usuário adiciona a Conta do Google durante a configuração inicial do dispositivo, e o DPC precisa orientá-lo nas etapas para configurar o proprietário do dispositivo. Um fluxo orientado pelo usuário pode ajudar os usuários finais a configurar novos dispositivos e também é uma alternativa quando os dispositivos não são compatíveis com NFC.
    • Quando uma organização não usa o Google Workspace, use o método de contas do Google Play gerenciado.

Observação:se você limitar a distribuição do app a países específicos no Google Play, essas restrições serão ignoradas durante o provisionamento do proprietário do dispositivo. O DPC será transferido por download mesmo que o dispositivo não esteja em um país de destino.

Métodos de provisionamento do proprietário do perfil

O método recomendado para provisionar o modo de operação do proprietário do perfil depende de a organização usar ou não o Google Workspace.

  • No caso do Google Workspace, o método recomendado é um fluxo orientado ao usuário em que ele adiciona a Conta do Google de usuário, e o DPC o orienta nas etapas para configurar o proprietário do perfil.
  • Quando uma organização não usa o Google Workspace, o método recomendado é o método de contas do Google Play gerenciado.

O método tradicional, em que o usuário é instruído a instalar manualmente o DPC, também é compatível. O usuário precisa fazer o download do DPC no Google Play e instalá-lo. Em seguida, o DPC orienta o usuário no restante do processo para configurar o proprietário do perfil.

Principais diferenças de provisionamento nas versões do Android

Cenário de implantação Modo de operação Método de provisionamento 5.0, 5.1 6.0, mais recente 7.0, mais recente
Pertence à empresa Proprietário do dispositivo Código QR
Contas do Google Play gerenciado
Conta do Google
NFC
BYOD Proprietário do perfil Contas do Google Play gerenciado
Conta do Google 5.11
Instalação manual de DPC

Considerações gerais de implementação

Veja alguns pontos a serem considerados na gravação do DPC, independente do modo de operação implementado.

Compatibilidade com o Google Play Services

O guia APK do Google Play Services instrui os desenvolvedores a verificar a versão do serviço antes de realizar transações de API. Como a tentativa de atualizar o Google Play Services causa interrupções graves no processo de configuração do dispositivo, o DPC não pode tentar atualizar o Google Play Services antes da conclusão do provisionamento de dispositivo.

Os principais pontos sobre a compatibilidade do DPC com o Google Play Services são:

  • O DPC precisa ser executado usando o Google Play Services fornecido com um dispositivo específico.
  • O DPC não pode depender de novos recursos quando versões futuras do Google Play Services estiverem disponíveis no momento do provisionamento de dispositivos.

Quando o provisionamento de dispositivos for concluído, o DPC poderá solicitar que o usuário atualize o Google Play Services para que o DPC possa usar os recursos mais recentes. No entanto, se um recurso não estiver disponível por algum motivo, o DPC precisará retornar corretamente à versão que acompanha o dispositivo.

Recuperar detalhes do dispositivo

Devido a atrasos na propagação, pode levar até dois minutos para que uma chamada para devices.get de um dispositivo recém-registrado retorne os detalhes do dispositivo.

Se o fluxo de trabalho exigir os detalhes antes que o usuário final possa usar o dispositivo ou o perfil de trabalho, sugerimos usar uma tela de progresso no DPC e aguardar até que a chamada seja bem-sucedida.

Considerações de implementação para o modo de proprietário do perfil

Veja alguns pontos a serem considerados ao gravar seu DPC para implementar o modo de operação do proprietário do perfil.

Remover ou desativar o DPC pessoal

Ao provisionar o modo de proprietário do perfil de operação, o DPC começa a ser executado no perfil pessoal e inicia o processo para criar um perfil de trabalho. Depois que o perfil de trabalho é criado, o DPC também é executado dentro dele. O DPC no perfil de trabalho conclui o processo de provisionamento. Nesse momento, o DPC no perfil pessoal precisa desativar a si mesmo ou o usuário do dispositivo precisa removê-lo.

O usuário remove o DPC pessoal

  1. O DPC pessoal detecta ACTION_MANAGED_PROFILE_PROVISIONED. Para dispositivos Android 5.1, o DPC pessoal precisa detectar ACTION_MANAGED_PROFILE_ADDED.
  2. O DPC pessoal inicia uma solicitação de desinstalação ACTION_UNINSTALL_PACKAGE. Isso solicita que o usuário desinstale o DPC pessoal. Para a melhor experiência do usuário, o processo de desinstalação precisa ocorrer durante o fluxo de provisionamento.

O DPC pessoal é desativado automaticamente

  1. O DPC pessoal detecta ACTION_MANAGED_PROFILE_PROVISIONED. Para dispositivos Android 5.1, o DPC pessoal precisa detectar ACTION_MANAGED_PROFILE_ADDED.
  2. Se aplicável, o DPC pessoal precisa liberar privilégios de administrador do dispositivo antes de se desativar.
  3. O DPC pessoal inicia uma solicitação de desativação setApplicationEnabledSetting com o parâmetro COMPONENT_ENABLED_STATE_DISABLED.
  4. O usuário pode reativar o DPC pessoal no Google Play.

Considerações de implementação do modo proprietário do dispositivo

Veja alguns pontos a serem considerados ao gravar seu DPC para implementar o modo de operação do proprietário do dispositivo.

O dispositivo precisa ser novo ou redefinido para a configuração original

Você precisa provisionar o modo de operação "Proprietário do dispositivo" durante a configuração inicial de um novo dispositivo ou após uma redefinição para a configuração original. O modo de proprietário do dispositivo não pode ser provisionado em um dispositivo a qualquer momento.

O modo "Proprietário do dispositivo" dá ao DPC controle total sobre um dispositivo. Se o provisionamento do modo de proprietário do dispositivo após a configuração inicial fosse permitido:

  • Um malware pode criar um proprietário e assumir o controle do dispositivo.
  • Problemas de privacidade podem ocorrer se já houver alguns dados ou apps do usuário no dispositivo.

Configurar o modo "Proprietário do dispositivo" apenas em dispositivos da empresa

Provisione o modo proprietário do dispositivo apenas nos dispositivos que você identificar como sendo da empresa do seu cliente. É possível verificar isso detectando um identificador de dispositivo exclusivo (como um número de série) ou usando um conjunto dedicado de contas autorizadas para registro de dispositivos por meio da política de EMM.

Se não for possível verificar a propriedade da empresa de um dispositivo, crie um mecanismo de proteção contra falhas para que o modo de proprietário do dispositivo não seja provisionado por engano. Por exemplo, você pode solicitar que o usuário do dispositivo confirme ou realize alguma ação afirmativa antes de provisionar o modo de proprietário do dispositivo.

Ativar apps do sistema

Quando o DPC provisiona um perfil de trabalho, todos os apps do sistema sem ícones na tela de início são considerados essenciais para o dispositivo e podem ser executados automaticamente no perfil de trabalho. Os apps do sistema que têm ícones na tela de início são considerados opcionais, e você pode decidir se eles serão ativados.

Ativar apps do sistema pelo Google Play

Ativar apps do sistema usando o Google Play é fácil, e os usuários vão receber atualizações de apps conforme elas forem disponibilizadas.

Ativar apps do sistema usando as APIs do framework do Android

Se você quiser que os usuários vejam apps do sistema assim que começarem a usar os dispositivos, ative esses apps como parte do processo de provisionamento de dispositivo. O DPC permite apps do sistema por nome de pacote ou por intent, usando DevicePolicyManager.enableSystemApp().

Existem algumas maneiras de identificar os apps do sistema que você quer ativar e apresentar no console de EMM para administradores de TI.

Criar catálogos de apps do sistema

Nesse método, cada dispositivo determina quais apps estão nele e envia esses dados de volta ao console de EMM. O console de EMM exibe esses dados dinamicamente ao criar a política do dispositivo, o que permite que o administrador de TI gerencie apps por app.

  1. Se o perfil de trabalho ainda não estiver provisionado no dispositivo, extraia uma lista de todos os apps com ícones na tela de início em um dispositivo usando queryIntentActivities():

    private List<ResolveInfo> getAppsWithLauncher() {
      Intent i = new Intent(Intent.ACTION_MAIN);
      i.addCategory(Intent.CATEGORY_LAUNCHER);
      return getPackageManager().queryIntentActivities(i, 0);
    }
    
  2. Se o perfil de trabalho já estiver provisionado no dispositivo, extraia uma lista de todos os apps usando PackageManager.GET_DISABLED_COMPONENTS e PackageManager.GET_UNINSTALLED_PACKAGES.

  3. Para encontrar apps do sistema na lista de apps, confira FLAG_SYSTEM, que indica se um app está instalado na imagem do sistema do dispositivo.

Vantagens:

  • oferece aos administradores de TI uma visão completa dos apps em todos os dispositivos.
  • Fornece controle granular sobre quais aplicativos são ativados.

Desvantagens:

  • Como cada dispositivo tem um catálogo de apps diferente, é difícil aplicar um modelo de configuração de política única a vários tipos de dispositivo.
  • Pode ser desafiador apresentar o volume de apps específicos de OEM de maneira significativa para administradores de TI.

Categorizar apps do sistema por funcionalidade

Quando um administrador de TI quer ativar um app do sistema para um grupo de dispositivos, ele seleciona um app genérico com base na funcionalidade, por exemplo, "Navegador do sistema". Em seguida, o DPC permite todos os apps do sistema para essa intent.

Vantagens:

  • Ativação simples e baseada em funcionalidades para administradores de TI.
  • Garante a funcionalidade consistente em vários dispositivos, pelo menos para casos de uso comuns.

Desvantagens:

  • Limita os apps do sistema àqueles que têm suporte em todos os tipos de dispositivos.
  • Os administradores de TI podem querer enviar uma versão de OEM de um app (por exemplo, um navegador Samsung®), mas não outra (como um navegador LG®).
  • Os administradores de TI podem não querer enviar vários apps, mas não podem impedir isso quando há vários gerenciadores de intents.

Suporte apenas a apps do sistema aprovados

Você trabalha com o OEM para identificar pacotes específicos de OEM e oferecer suporte apenas a eles no console de EMM. Isso também permite catalogar as configurações gerenciadas para o app do OEM, que você não saberia de outra forma, porque o app do OEM não está hospedado no Google Play.

Vantagens:

  • Simplifica bastante o fluxo de trabalho de integração e elimina os casos extremos que são problemáticos nas duas primeiras opções.
  • É possível catalogar as configurações gerenciadas para o app de OEM e apresentá-las no console de EMM para administradores de TI.
  • Permite relacionamentos próximos com OEMs para oferecer suporte a dispositivos principais.

Desvantagens:

  • Menos escalonável e, como resultado, reduz a escolha do consumidor.

Cenários de teste para seu DPC

O Test DPC é um app de código aberto fornecido pelo Google para testar recursos empresariais no seu app de DPC. O DPC de teste está disponível no github ou no Google Play. É possível usar o DPC de teste para:

  • Simular recursos no Android
  • Definir e aplicar políticas
  • Definir restrições de apps e intents
  • Configurar perfis de trabalho
  • Configurar dispositivos Android totalmente gerenciados

Embora o objetivo principal do DPC de teste seja um veículo para testar sua solução empresarial para o Android, ele também pode ser usado como uma fonte de exemplo de código para recursos do Android.

Personalizar o provisionamento

Durante o provisionamento de dispositivos, a interface do usuário do sistema mostra uma cor padrão na barra de status e um logotipo padrão na parte de cima da tela. Defina cores e logotipos personalizados para fornecer uma transição visual consistente entre o DPC e a interface do sistema ou permita que os administradores façam isso usando o console de EMM. Por exemplo, um administrador pode fazer upload do logotipo de uma empresa ou personalizar a aparência das telas que mostram notificações.

O DPC aplica as opções de cor e logotipo usando os extras DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR e DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI.

Para definir uma cor personalizada, use EXTRA_PROVISIONING_MAIN_COLOR para definir um número inteiro que indique a cor predominante a ser mostrada durante o provisionamento de dispositivos. Coloque o extra (constante) em uma intent com ACTION_PROVISION_MANAGED_PROFILE ou ACTION_PROVISION_MANAGED_DEVICE.

Para saber como os números inteiros são representados, consulte Cor. Para conferir um exemplo, consulte MAIN_COLOR no app TestDPC.

Para definir um logotipo personalizado, use EXTRA_PROVISIONING_LOGO_URI para definir uma imagem que será exibida na parte superior da tela durante o provisionamento de dispositivos. Coloque o extra (constante) em uma intent com ACTION_PROVISION_MANAGED_PROFILE ou ACTION_PROVISION_MANAGED_DEVICE. Confira se a imagem tem uma densidade de pixels razoável para o dispositivo.

Para conferir um exemplo, consulte LOGO_URI no app TestDPC.

Método de código QR

O método de provisionamento de código QR configura o modo de proprietário do dispositivo lendo um código QR no assistente de configuração. O código QR contém um payload de pares de chave-valor com todas as informações necessárias para que o DPC provisione um dispositivo.

Seu console de EMM precisa fornecer uma maneira para os administradores de TI criarem códigos QR para os dispositivos que querem provisionar. O administrador de TI envia os códigos QR para os usuários finais, e eles fazem a leitura dos códigos QR para fornecer os dispositivos.

Casos de uso para provisionamento de código QR

Alguns dispositivos, como tablets, não são compatíveis com NFC. O provisionamento de código QR é uma maneira conveniente de provisionar uma frota distribuída de dispositivos que não são compatíveis com NFC. Um administrador de TI pode enviar códigos QR aos usuários para permitir o provisionamento orientado pelos usuários.

O provisionamento de código QR não requer uma identidade do Google, como um domínio ou uma Conta do Google. As organizações que usam o Android, mas não usam o Google Workspace, não têm uma identidade do Google.

Assim como a NFC, o provisionamento de código QR permite implantações de quiosque e de uso único em que uma identidade do Google (ou qualquer identidade) não é necessária ou desejável. Por exemplo, um dispositivo de quiosque em uma loja não pertence a ninguém e não deve ter uma identidade de usuário final.

Criar um código QR

Um código QR válido para o provisionamento de código QR é uma string JavaScript® Object Notation (JSON) codificada em UTF-8. É possível incluir estas propriedades em códigos QR válidos:

Sempre obrigatório

Obrigatório se um DPC ainda não estiver instalado no dispositivo

Recomendado se o dispositivo ainda não estiver conectado ao Wi-Fi

Opcional

Este exemplo cria um código QR válido:

{
"android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME":
"com.emm.android/com.emm.android.DeviceAdminReceiver",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM":
"gJD2YwtOiWJHkSMkkIfLRlj-quNqG1fb6v100QmzM9w=",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION":
"https://path.to/dpc.apk",
    "android.app.extra.PROVISIONING_SKIP_ENCRYPTION": false,
    "android.app.extra.PROVISIONING_WIFI_SSID": "GuestNetwork",
    "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": {
        "dpc_company_name": "Acme Inc.",
        "emm_server_url": "https://server.emm.biz:8787",
        "another_custom_dpc_key": "dpc_custom_value"
    }
}

Processo de provisionamento de código QR

  1. O assistente de configuração solicita que o usuário toque na tela de boas-vindas seis vezes. Os toques precisam ser feitos no mesmo lugar da tela.
  2. O assistente de configuração solicita que o usuário se conecte à Internet para que possa fazer o download de um leitor de código QR.
  3. O Google Play Services faz o download de um módulo que contém um mecanismo de reconhecimento de código QR.
  4. O usuário lê o código QR fornecido pelo administrador de TI.
  5. O assistente de configuração faz o download do app DPC e inicia o processo de provisionamento do proprietário do dispositivo usando ACTION_PROVISION_MANAGED_DEVICE.

Método de contas do Google Play gerenciado

Um DPC pode usar o método de provisionamento de contas do Google Play gerenciado para configurar o modo de proprietário do dispositivo ou o modo de proprietário do perfil. Esse método de provisionamento é destinado a organizações que não usam o Google Workspace.

O método de provisionamento de contas do Google Play gerenciado usa a Biblioteca de Suporte DPC. Essa biblioteca de cliente garante o bom funcionamento das contas do Google Play gerenciado. Ele também mantém a compatibilidade com futuras atualizações do processo de provisionamento de contas do Google Play gerenciado.

Pré-requisitos para provisionar dispositivos

  • O ID corporativo é criado e registrado com uma identidade de EMM, e o ESA é definido, conforme descrito em Criar e registrar uma empresa.
  • A identidade corporativa do usuário é conhecida pelo console de EMM.
  • O usuário pode fazer login no app de DPC usando as credenciais aceitas pelo console de EMM, geralmente credenciais de e-mail corporativo.

Configurar o modo de proprietário do perfil

É possível provisionar o modo de proprietário do perfil de operação em um dispositivo usado em um cenário BYOD como um dispositivo pessoal.

  1. O usuário faz o download manual do DPC no Google Play e o inicia.
  2. O DPC provisiona o perfil de trabalho usando ACTION_PROVISION_MANAGED_PROFILE.
  3. Conclua as etapas finais de configuração.

Configurar o modo proprietário do dispositivo

Você precisa provisionar o modo de operação "Proprietário do dispositivo" durante a configuração inicial de um novo dispositivo ou após uma redefinição para a configuração original. O modo de proprietário do dispositivo não pode ser provisionado em um dispositivo a qualquer momento.

Durante a configuração do dispositivo, o usuário insere um token especial específico do DPC quando solicitado a adicionar uma conta. Um token está no formato afw#DPC_IDENTIFIER. Para um EMM chamado ACME, o afw#acme instala o DPC padrão do EMM do ACME. Cada EMM precisa solicitar um identificador DPC específico do Google antes de usá-lo no processo de provisionamento.

  1. O usuário ativa um dispositivo novo ou redefinido para a configuração original, e o assistente de configuração é iniciado.
  2. Ao ser solicitado a adicionar uma conta, o usuário insere um token especial no formato afw#DPC_IDENTIFIER que identifica o DPC para o EMM.
  3. Usando o identificador DPC no token, o assistente de configuração adiciona uma Conta do Google temporária ao dispositivo. Essa conta temporária é usada apenas para fazer o download do DPC do EMM no Google Play e é removida nas etapas finais de configuração.
  4. O DPC provisiona o dispositivo usando ACTION_PROVISION_MANAGED_DEVICE.
  5. Conclua as etapas finais de configuração.

Etapas finais de configuração para todos os modos de operação

Execute essas etapas somente após a conclusão das etapas iniciais para configurar o modo de proprietário do perfil ou o modo de proprietário do dispositivo.

  1. O DPC garante que o dispositivo ofereça suporte a contas do Google Play gerenciado inicializando a Biblioteca de Suporte do DPC:

    AndroidForWorkAccountSupport androidForWorkAccountSupport =
      new AndroidForWorkAccountSupport(context, admin);
    androidForWorkAccountSupport.ensureWorkingEnvironment(callback);
    

    Se você estiver configurando o modo proprietário do dispositivo em um dispositivo, esta etapa vai remover a Conta do Google temporária adicionada para fazer o download do DPC.

  2. O usuário faz login no DPC com as credenciais de EMM. Elas normalmente são credenciais de e-mail corporativo.

  3. O DPC solicita credenciais da conta do Google Play gerenciado para o usuário corporativo autenticado no console de EMM.

  4. Se o console de EMM não tiver um userId do Google Play para o usuário, ele vai criar um novo usuário chamando Users.insert(). Se você estiver provisionando o modo proprietário do dispositivo, especifique uma conta de dispositivo (para implantações dedicadas de dispositivos) ou uma conta de usuário (para implantações da empresa).

  5. Defina a política do dispositivo chamando Devices.update. Defina a política antes de adicionar a conta do Google Play gerenciado ao dispositivo. Caso contrário, a política não será aplicada por um curto período depois que a conta for adicionada ao dispositivo.

  6. O console de EMM solicita as credenciais da conta para o userId chamando Users.generateAuthenticationToken(). Esse token de autenticação é de curta duração e não pode ser reutilizado. O DPC precisa usar o token para adicionar a conta de maneira programática. Ele não é útil para o usuário final.

  7. A API Google Play EMM retorna o token de autenticação para o console de EMM.

  8. O console de EMM encaminha o token de autenticação para o DPC.

  9. O DPC adiciona a conta do Google Play gerenciado ao dispositivo usando

    androidForWorkAccountSupport.addAndroidForWorkAccount(token,
      accountAddedCallback);
    

Método da Conta do Google

Um DPC pode usar o método de provisionamento da Conta do Google para configurar o modo de proprietário do dispositivo ou o modo de proprietário do perfil. Com o método de provisionamento da Conta do Google, o DPC orienta o usuário nas etapas de provisionamento após a adição da Conta do Google durante a configuração inicial do dispositivo.

Quando um usuário digita as credenciais da Conta do Google:

  • O servidor de autenticação do Google autentica a conta de usuário.
  • O servidor de autenticação se comunica com o servidor corporativo para verificar se o domínio da conta está registrado como um domínio do Google Workspace ou um domínio gerenciado por EMM.
  • Nesse caso, o sistema faz o download automático do DPC associado ao domínio do Google Play e o instala.

Configurar o modo de proprietário do perfil

É possível provisionar o modo de operação do proprietário do perfil durante a configuração inicial de um dispositivo ou quando o usuário está adicionando uma conta. Para isso, use Configurações > Adicionar conta.

  1. A autenticação da conta é iniciada por um usuário no assistente de configuração ou em Configurações > Adicionar conta.
  2. O GMSCore inicia o provisionamento do perfil de trabalho usando o ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE.
  3. O DPC é transferido por download automaticamente para o dispositivo e iniciado usando o gerenciador ACTION_GET_PROVISIONING_MODE para verificar se o provisionamento do perfil de trabalho tem suporte do DPC.
  4. A plataforma realiza o provisionamento do perfil de trabalho.
  5. Quando o perfil de trabalho é provisionado, o DPC recebe a transmissão ACTION_PROFILE_PROVISIONING_COMPLETE. O gerenciador ACTION_ADMIN_POLICY_COMPLIANCE do DPC é iniciado no perfil de trabalho. Depois que o perfil de trabalho é criado, o DPC também passa a ser executado dentro dele. O DPC envia políticas para essa Conta do Google gerenciada, garante que o dispositivo não esteja em um estado comprometido e verifica se as políticas são aplicadas (como a exigência de uma senha).
  6. O DPC no perfil pessoal desativa a si mesmo ou o usuário o remove.

Configurar o modo proprietário do dispositivo ou COPE

Você precisa provisionar o modo de operação "Proprietário do dispositivo" durante a configuração inicial de um novo dispositivo ou após uma redefinição para a configuração original. O modo de proprietário do dispositivo não pode ser adicionado a um dispositivo em nenhum outro momento.

  1. A autenticação da conta é iniciada por um usuário no assistente de configuração.
  2. O GMSCore inicia o provisionamento do proprietário do dispositivo usando o ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE. 3.O DPC é transferido por download automaticamente para o dispositivo e iniciado usando o gerenciador GET_PROVISIONING_MODE para escolher o modo de provisionamento desejado.
  3. A plataforma provisiona o dispositivo para o modo de provisionamento desejado.
  4. Quando o dispositivo é provisionado, o DPC recebe essas transmissões e o gerenciador ACTION_ADMIN_POLICY_COMPLIANCE do DPC é iniciado:
  5. O DPC usa o valor de Global.DEVICE_PROVISIONED para verificar se o dispositivo é novo ou foi redefinido para a configuração original (não provisionado):
    • 0 Não aprovisionado.
    • 1 Provisionado.
  6. O DPC conclui o processo de provisionamento enviando políticas para esse dispositivo gerenciado, garantindo que ele não esteja em um estado comprometido e verificando se as políticas são aplicadas (como a exigência de uma senha).

Considerações de implementação para o método da Conta do Google

  • O DPC precisa detectar o fluxo de autenticação da Conta do Google procurando extras específicos na intent de inicialização usada. Consulte LaunchIntentUtil:

    • Conta do tipo android.accounts.Account : indica que a conta foi adicionada no assistente de configuração ou em , o que exige que o DPC iniciado gerencie o dispositivo ou perfil.
    • is_setup_wizard do tipo booleano : se for verdadeiro, o DPC foi iniciado no assistente de configuração antes da conclusão dele. Caso contrário, acesse ou outro fluxo.

    Uma verificação para saber se o DPC foi lançado como parte do método da Conta do Google é:

    boolean isSynchronousAuthLaunch(Intent launchIntent) {
      return launchIntent.hasExtra("is_setup_wizard");
    }
    
  • O DPC não pode chamar finish() antes de concluir a configuração. Ela também precisa retornar um código de resultado positivo (como RESULT_OK), já que o DPC é iniciado com startActivityForResult() e aguarda um resultado.

    O DPC precisará aguardar um código de resultado do processo de provisionamento antes de chamar finish() se o fluxo de configuração do DPC atingir o ponto de envio de uma intent ACTION_PROVISION_*. Use os callbacks startActivityForResult() e onActivityResult() ao iniciar intents ACTION_PROVISION_*. Consulte LaunchActivity e SetupSyncAuthManagement para ver exemplos.

    Devido à natureza potencialmente assíncrona do processo de configuração, o DPC não pode confiar em um código de resultado de RESULT_OK para indicar que o provisionamento foi bem-sucedido. A única maneira garantida é confiar nos callbacks DeviceAdminReceiver para garantir o sucesso do provisionamento. RESULT_CANCELED indica que o usuário saiu em uma parte síncrona do fluxo de configuração, e o DPC precisa reagir a isso.

    Neste exemplo, o DPC inicia o provisionamento e aguarda o código de resultado de uma atividade:

    Intent intent = new Intent(ACTION_PROVISION_MANAGED_PROFILE);
    startActivityForResult(intent, REQUEST_MANAGED_PROFILE);
    ...
    
    @Override
    public void onActivityResult(int req, int res, Intent i) {
        if (req == REQUEST_MANAGED_PROFILE) {
            if (res == Activity.RESULT_OK) {
                setResult(Activity.RESULT_OK);
                finish();
            } else {
                Toast.makeText(this, “Provisioning failed”,
                        Toast.LENGTH_SHORT).show();
            }
        }
    }
    
  • O DPC não deve tentar configurar o modo de operação do proprietário do dispositivo se o dispositivo já estiver provisionado (consulte ProvisioningStateUtil.isDeviceProvisioned()). Neste exemplo, o DPC verifica se o dispositivo está provisionado:

    public static boolean isDeviceProvisioned(Context context) {
    ContentResolver cr = context.getContentResolver();
        return
    Settings.Global.getInt(cr, DEVICE_PROVISIONED, 0) != 0;
    }
    
  • Opcional. O DPC pode usar o extra EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE ao iniciar o provisionamento para transmitir informações de estado de volta ao DeviceAdminReceiver, que, no caso do proprietário do perfil, é executado no perfil de trabalho. O TestDPC usa esse extra para inserir um conjunto diferente de atividades no fluxo da Conta do Google após a conclusão do provisionamento. Para mais detalhes, consulte DeviceAdminReceiver.

    public class DeviceAdminReceiver extends android.app.admin.DeviceAdminReceiver
    {
      @Override
      public void onProfileProvisioningComplete(Context context, Intent intent) {
        // Retrieve the admin extras bundle, which we can use to determine the original context for
        // Test DPC's launch.
        PersistableBundle extras = intent.getParcelableExtra(
                EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE);
        ...
    
  • Para configurar um perfil de trabalho, o DPC precisa migrar a conta adicionada para o novo perfil de trabalho. Para fazer isso, o DPC precisa transmitir a conta fornecida na intent de inicialização para ACTION_PROVISION_MANAGED_PROFILE.

  • O DPC precisa fornecer ao usuário uma call-to-action clara (como um botão "Concluir") para sair do app ao final da configuração, para que o usuário não pense que chegou a um beco sem saída no fluxo.

  • O DPC precisa usar o tema do assistente de configuração ou a biblioteca de layouts para que a experiência do usuário seja tranquila e pareça bem integrada.

Método NFC

Um DPC pode usar o método de provisionamento de NFC para configurar o modo de proprietário do dispositivo. No método de provisionamento de NFC, ou tag NFC, você cria um app de programador NFC que contém as políticas iniciais e as configurações, definições e detalhes de provisionamento de Wi-Fi exigidos pelo cliente para configurar o modo de operação do proprietário do dispositivo. Quando você ou o cliente instalam o app de programação NFC em um dispositivo Android, esse dispositivo se torna o programador.

Para provisionar um dispositivo, o administrador de TI pega um novo dispositivo e o coloca no dispositivo do programador ou na tag NFC. A sobrecarga transfere configurações para o dispositivo para que ele se conecte à Internet e faça o download das políticas e configurações adequadas. O dispositivo é gerenciado pelo DPC.

Após o provisionamento de um dispositivo, por um curto período, o Google Play exibe conteúdo de consumidor não gerenciado em vez dos apps e coleções aprovados que serão exibidos. Esse atraso pode durar de alguns minutos a uma hora.

Criar o app para programador de NFC e o dispositivo de programação

Para dispositivos que usam o Android 10 ou versões anteriores, é possível usar o Android Beam para concluir um provisionamento de NFC:

  1. Faça o download do app de exemplo para programador de NFC. Você pode usar o exemplo no estado em que se encontra, sem adições, ou modificá-lo para os valores padrão.
  2. Instale o app do programador no dispositivo escolhido.
  3. Inicie o app de programador de NFC e selecione Load Defaults para com.example.android.apis. Esse texto pode variar dependendo dos parâmetros padrão definidos.

Provisionar um dispositivo do cliente

  1. Encoste o dispositivo do programador ou a tag NFC com um dispositivo novo ou redefinido para a configuração original.
  2. Verifique se o dispositivo permanece na tela de boas-vindas inicial que é exibida quando é iniciado. O texto é especificado em Ready to send:{...} no app do programador.
  3. Aguarde enquanto o DPC:
    1. Criptografa o dispositivo.
    2. Se for um dispositivo de acesso múltiplo por divisão de código (CDMA, na sigla em inglês): ativa o smartphone enquanto uma interface do usuário de telefonia é exibida (não é necessária interação).
    3. Configura a conexão Wi-Fi.
    4. Faz o download do arquivo APK para com.example.android.apis.
    5. Instala com.example.android.apis.
    6. Define o administrador de dispositivos de exemplo em com.example.android.apis como proprietário do dispositivo.
    7. Mostra um "aviso" de sucesso quando o proprietário do dispositivo está ativado.
  4. Depois de retornar à página inicial (o assistente de configuração é ignorado automaticamente), verifique se com.example.android.apis está definido como proprietário do dispositivo:
    1. Em Settings > Security > Device admins, verifique se o administrador de dispositivo de exemplo não pode ser removido.
    2. Em Configurações > Usuários > Usuários e perfis > Você (proprietário), verifique se "Proprietário" é a única conta disponível (um dispositivo pode ter apenas um proprietário ativo do dispositivo por vez).

Outros recursos

A seção NFC avançada descreve tópicos como trabalhar com várias tecnologias de etiqueta, gravação em tags NFC e envio em primeiro plano.

Método de instalação manual do DPC

Para configurar o modo de proprietário do perfil usando o método de provisionamento manual de instalação de DPC, o usuário faz o download do DPC no Google Play e o instala. Em seguida, o DPC orienta o usuário durante o restante do processo para configurar o proprietário do perfil da Conta do Google gerenciada.

O DPC pode adicionar a Conta do Google gerenciada antes ou depois de criar o perfil de trabalho. Por exemplo, o DPC pode criar um perfil de trabalho com base nas credenciais de EMM de um usuário em vez de solicitar a Conta do Google gerenciada primeiro.

Configurar o modo de proprietário do perfil

Adicione a Conta do Google gerenciada primeiro

  1. O usuário faz o download do DPC no Google Play e o instala.
  2. O DPC adiciona a Conta do Google gerenciada antes de criar o perfil de trabalho usando AccountManager.addAccount().
  3. O DPC começa a ser executado no perfil pessoal e inicia o processo para criar um perfil de trabalho usando:
  4. O DPC no perfil de trabalho conclui o processo de provisionamento. Depois que o perfil de trabalho é criado, o DPC também passa a ser executado nele. O DPC no perfil de trabalho conclui o processo de provisionamento enviando políticas para essa Conta do Google gerenciada, garantindo que o dispositivo não esteja em um estado comprometido e verificando se as políticas são aplicadas (como a exigência de uma senha).
  5. Quando o perfil de trabalho é provisionado, o DPC recebe a transmissão ACTION_PROFILE_PROVISIONING_COMPLETE.
  6. O DPC no perfil pessoal desativa a si mesmo ou o usuário o remove.

Crie o perfil de trabalho primeiro

  1. O usuário faz o download do DPC no Google Play e o instala.
  2. O DPC começa a ser executado no perfil pessoal e inicia o processo para criar um perfil de trabalho usando:
  3. O DPC adiciona a Conta do Google gerenciada usando AccountManager.addAccount().
  4. O DPC recebe a transmissão ACTION_PROFILE_PROVISIONING_COMPLETE e lê EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE.
  5. O DPC no perfil de trabalho conclui o processo de provisionamento. Depois que o perfil de trabalho é criado, o DPC também é executado dentro dele. O DPC no perfil de trabalho conclui o processo de provisionamento enviando políticas para essa Conta do Google gerenciada, garantindo que o dispositivo não esteja em um estado comprometido e verificando se as políticas são aplicadas, como a exigência de uma senha.
  6. O DPC ativa o perfil de trabalho usando DevicePolicyManager.setProfileEnabled().
  7. O DPC no perfil pessoal desativa a si mesmo ou o usuário o remove.

  1. O método Conta do Google no Android 5.1 é compatível apenas com o modo de operação do proprietário do perfil, e o usuário só pode configurá-lo em Configurações > Adicionar conta