Provisionar dispositivos

Há várias maneiras de provisionar dispositivos. Os requisitos de negócios dos clientes determinam quais métodos de provisionamento você quer usar.

Noções básicas de provisionamento de dispositivos

Os cenários de implantação de provisionamento de dispositivos que seus clientes querem oferecer (como BYOD ou propriedade da empresa) determinam os modos de operação que você usará (como o modo de proprietário do dispositivo ou o modo de proprietário do perfil). Da mesma forma, os modos de operação e as versões do Android que oferecem suporte determinam quais métodos de provisionamento serão 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 de BYOD permitem que os funcionários usem dispositivos pessoais para o trabalho e usem esses dispositivos para acessar informações e aplicativos privilegiados da empresa.

Modos de operação

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

As implantações de BYOD são compatíveis com o modo de operação do proprietário do perfil. Com o 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 do perfil de trabalho.

Métodos de provisionamento do proprietário do dispositivo

Provisione o modo de operação de 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 provisionar o modo de proprietário do dispositivo.

  • Em um fluxo orientado a dispositivos, os administradores de TI podem usar a 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 ao usuário, as opções dependem de a organização usar o Google Workspace.
    • 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 orientar o usuário nas etapas para configurar o proprietário do dispositivo. Um fluxo orientado ao 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 download do DPC será feito 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 o Google Workspace ou não.

  • 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 orienta o usuário 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. Ele depende do usuário para fazer o download do DPC no Google Play e instalá-lo. O DPC orienta o usuário durante o 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 do DPC

Considerações gerais de implementação

Veja aqui alguns pontos a serem considerados ao gravar seu DPC, independente do modo de operação implementado.

Compatibilidade com o Google Play Services

O guia de APK do Google Play Services instrui os desenvolvedores a verificar a versão deles 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 do término do provisionamento do dispositivo.

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

  • O DPC precisa ser executado usando o Google Play Services que acompanha o dispositivo específico.
  • O DPC não pode depender de novos recursos em versões futuras do Google Play Services que vão ser disponibilizadas no momento do provisionamento do dispositivo.

Quando o provisionamento do dispositivo estiver 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 à 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 em 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 perfil de trabalho, sugerimos usar uma tela de progresso no seu DPC e aguardar até que a chamada seja bem-sucedida.

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

Veja aqui 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 operação do proprietário do perfil, 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 está sendo executado dentro dele. O DPC no perfil de trabalho conclui o processo de provisionamento. Nesse momento, o DPC no perfil pessoal precisa ser desativado 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 que o usuário tenha 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 precisará 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 para o modo proprietário do dispositivo

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

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

Provisione o modo de operação de 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 for 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 pela política de EMM.

Se não for possível verificar a propriedade da empresa de um dispositivo, crie um mecanismo de segurança para que o modo de proprietário do dispositivo não seja provisionado por engano. Por exemplo, é possível 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 automaticamente autorizados a serem executados no perfil de trabalho. Os apps do sistema que têm ícones na tela de início são considerados opcionais e podem ser ativados.

Ativar apps do sistema pelo Google Play

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

Ativar apps do sistema usando APIs de framework do Android

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

Há 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 do perfil de trabalho usando PackageManager.GET_DISABLED_COMPONENTS e PackageManager.GET_UNINSTALLED_PACKAGES.

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

Vantagens:

  • oferece aos administradores de TI um panorama completo dos apps em todos os dispositivos.
  • Fornece controle granular sobre quais apps 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 dispositivos.
  • Pode ser desafiador apresentar o volume de apps específicos de OEM de uma 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". 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 uma variedade de dispositivos (pelo menos para casos de uso comuns).

Desvantagens:

  • Limita os apps do sistema àqueles que são compatíveis com todos os tipos de dispositivos.
  • Os administradores de TI podem querer enviar por push uma versão OEM de um app (como um navegador Samsung®), mas não outra (como um navegador LG®).
  • Talvez os administradores de TI não queiram enviar vários apps, mas não podem impedir isso quando há vários gerenciadores de intent.

Suporte apenas a apps do sistema aprovados

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

Vantagens:

  • Simplifique 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 do 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:

  • Ela é menos escalonável e 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 app de DPC. O Test DPC 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 DPC de teste seja destinado principalmente como um veículo para testar sua solução empresarial para o Android, você também pode usá-lo como uma fonte de exemplo de código para recursos do Android.

Personalizar 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 pelo 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 exibida durante o provisionamento do dispositivo. Coloque o extra (constante) em uma intent com ACTION_PROVISION_MANAGED_PROFILE ou ACTION_PROVISION_MANAGED_DEVICE.

Para ver como os números inteiros são representados, consulte Cor. Para ver 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 do dispositivo. Coloque o extra (constante) em uma intent com ACTION_PROVISION_MANAGED_PROFILE ou ACTION_PROVISION_MANAGED_DEVICE. Verifique se a imagem tem uma densidade de pixels razoável para o dispositivo.

Para ver um exemplo, consulte LOGO_URI no app TestDPC.

Método de código QR

O método de provisionamento de código QR define e configura o modo de proprietário do dispositivo lendo um código QR do 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 eles querem provisionar. O administrador de TI envia os códigos QR aos usuários finais, e eles fazem a leitura dos códigos QR para provisionar 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 têm suporte à NFC. Um administrador de TI pode enviar códigos QR aos usuários para permitir o provisionamento orientado a 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 pode 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 o 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 o assistente 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 de 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 de 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 do DPC. Essa biblioteca de cliente garante o funcionamento tranquilo das contas do Google Play gerenciado. Ele também mantém a compatibilidade com atualizações futuras do processo de provisionamento de contas do Google Play gerenciado.

Pré-requisitos para provisionar dispositivos

  • O ID da empresa é criado e registrado com uma identidade de EMM, e a ESA é definida, 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 credenciais aceitas pelo console de EMM, normalmente credenciais de e-mail corporativo.

Configurar o modo de proprietário do perfil

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

  1. O usuário faz o download manual do DPC no Google Play e o abre.
  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 de 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 da ACME. Cada EMM precisa solicitar um identificador de 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 só é usada para fazer o download do DPC do EMM do 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

Siga 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, esta etapa 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 do EMM. Normalmente, são credenciais de e-mail corporativas.

  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 provisionar o modo proprietário do dispositivo, especifique uma conta de dispositivo (para implantações de dispositivo dedicada) 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 após a adição da conta 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 ao 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 depois que ele adiciona a Conta do Google durante a configuração inicial do dispositivo.

Quando o 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 empresarial 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 de 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 de perfis 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 está sendo 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 foram aplicadas (como a exigência de uma senha).
  6. O DPC no perfil pessoal se desativa ou o usuário o remove.

Configurar o modo proprietário do dispositivo ou COPE

Você precisa provisionar o modo de operação de 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 de 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 o dispositivo não esteja em um estado comprometido e verificando se as políticas foram 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 verdadeiro, o DPC foi iniciado no assistente de configuração antes da conclusão dele, caso contrário, em ou em 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 enviar 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 o sucesso do provisionamento. RESULT_CANCELED indica que o usuário desistiu 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 espera 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 lançamento 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 layout para que a experiência do usuário seja suave e pareça bem integrada.

Método de NFC

Um DPC pode usar o método de provisionamento de NFC para configurar o modo 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 os detalhes de configuração, definições e provisionamento de Wi-Fi exigidos pelo cliente para configurar o modo de operação do proprietário do dispositivo. Quando você ou seu cliente instalam o app programador de 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 encosta no dispositivo do programador ou na tag NFC. O bump 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 será gerenciado pelo DPC.

Depois que um dispositivo é provisionado, 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 programador de NFC e o dispositivo programador

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 do programador de NFC (link em inglês). Você pode usar o exemplo 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 programador ou a tag NFC com um dispositivo novo ou redefinido para a configuração original.
  2. Verifique se o dispositivo permanece na tela inicial de Boas-vindas 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. No caso de um dispositivo de acesso múltiplo por divisão de código (CDMA): o telefone é ativado enquanto uma interface do usuário de telefonia é exibida (nenhuma interação é necessária).
    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 do dispositivo de exemplo em com.example.android.apis como o proprietário do dispositivo.
    7. Mostra um "aviso" de sucesso quando o proprietário do dispositivo é 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 Configurações > Segurança > Administradores do dispositivo, verifique se o Administrador do 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 por vez).

Outros recursos

A NFC avançada descreve tópicos como trabalho 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 de instalação manual do 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 do usuário em vez de solicitar a Conta do Google gerenciada primeiro.

Configurar o modo de proprietário do perfil

Adicionar 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 de criação de 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 é 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 foram 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 é desativado ou removido pelo usuário.

Criar 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 de criação de 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 está sendo 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 foram aplicadas (por exemplo, a exigência de uma senha).
  6. O DPC ativa o perfil de trabalho usando DevicePolicyManager.setProfileEnabled().
  7. O DPC no perfil pessoal é desativado ou removido pelo usuário.

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