Migrar dispositivos existentes para AMAPI

Dispositivos já gerenciados pelo seu DPC personalizado podem ser migrados para o dispositivo Android Policy (ADP) e aproveitar a API Android Management.

Pré-requisitos

  • O dispositivo já é gerenciado pelo EMM com um DPC personalizado.
  • Seu DPC personalizado está integrado ao SDK da AMAPI.
  • O dispositivo está inscrito na API Google Play EMM.
  • O dispositivo pertence a um pacote de contas do Google Play gerenciado.
  • O dispositivo usa o Android 9 ou mais recente.
  • No caso de perfis de trabalho em dispositivos da empresa, o dispositivo precisa ser executado Android 11 ou mais recente.

Integrar com o SDK da AMAPI no seu DPC personalizado

O processo de migração exige que o aplicativo DPC personalizado integre a SDK da AMAPI. Encontre mais informações sobre a biblioteca e como adicioná-la ao seu aplicativo no guia de integração do SDK da AMAPI.

Etapas para migrar um dispositivo

  1. Configure uma política para ser usada pelo dispositivo depois da migração para a AMAPI. Para a melhor experiência do usuário, isso precisa ser equivalente à política aplicada no dispositivo pelo DPC.
  2. Crie um token de migração para o dispositivo chamando enterprises.migrationTokens.create.
  3. Envie o value deste token de migração para seu DPC personalizado.
  4. Verifique se o Android Device Policy está instalado no dispositivo usando API Play EMM.
  5. Use DpcMigrationClientFactory para criar um DpcMigrationClient
  6. No DpcMigrationClient, chame o método migrateDeviceManagementToAndroidManagementApi. Isso conclui a migração.
  7. O deviceState muda para ACTIVE, e você receberá uma STATUS_REPORT por meio do canal Pub/Sub.

Quando a migração for concluída, o app de chamada vai perder o perfil ou o proprietário do dispositivo Privilégios de proprietário, porque eles são transferidos para o Android Device Policy.

Observação:o dispositivo precisa estar conectado à Internet para iniciar a migração. O processo foi projetado para ser resiliente a desconexões de rede durante de migração, para que as principais operações que exigem conectividade de rede sejam feitas antes da transferência real dos direitos do proprietário do dispositivo ou do proprietário do perfil; do seu DPC para o Android Device Policy.

Token de migração

Um token de migração é solicitado pelo servidor de EMM para sinalizar a intenção de migrar um dispositivo específico gerenciado por um DPC personalizado. É possível usar um token de migração até que a migração seja concluída. até expirar.

Integração de DPC personalizada

Primeiro, você precisa criar um DpcMigrationRequest, transmitindo o token e, se necessário, a lista de redes Wi-Fi configuradas para o construtor:

// Create a DpcMigrationRequest
DpcMigrationRequest request =
        DpcMigrationRequest.builder()
            .setMigrationToken(token)
            .build();

Você pode usar um DpcMigrationClient e iniciar o o processo de migração com migrateDeviceManagementToAndroidManagementApi:

// Create a DpcMigrationClient
DpcMigrationClient dpcMigrationClient = DpcMigrationClientFactory.create(context);
try {
  // Use helper function to retrieve Admin component name
  var adminComponentName = getAdminComponent(context);

  ListenableFuture<DpcMigrationAttempt> futureAttempt =
          dpcMigrationClient.migrateDeviceManagementToAndroidManagementApi(
              new ComponentName(context, DpcMigrationNotificationReceiver.class),
              adminComponentName,
              request);
  // handle futureAttempt
} catch (RuntimeException e) {
  // send failure feedback: "Error: " + e
}

Acompanhar o progresso da migração

O processo de migração é rastreado no dispositivo por uma DpcMigrationAttempt

Você pode usar diretamente aquela retornada pelo migrateDeviceManagementToAndroidManagementApi ou use getMigrationAttempt e listMigrationAttempts para conseguir e lista as tentativas de migração.

// Passing an empty name, we retrieve the last attempt 
var request = GetDpcMigrationAttemptRequest.builder().build();

var attempt = client.getMigrationAttempt(request);

Você também pode configurar um DpcMigrationListener usando seu NotificationReceiverService, para ouvir atualizações de status para DpcMigrationAttempt.

// DpcMigrationNotificationReceiver for callback handling
public class DpcMigrationNotificationReceiver extends NotificationReceiverService
    implements DpcMigrationListener {

  @Override
  protected DpcMigrationListener getDpcMigrationListener() {
    // getDpcMigrationListener"
    return this;
  }

  @Override
  public void onMigrationStateChanged(DpcMigrationAttempt migrationAttempt) {
    // send success feedback
  }
}

Gerenciar redes Wi-Fi

Se houver redes Wi-Fi gerenciadas pelo DPC personalizado, política de ONC da AMAPI devem corresponder às configurações dessas redes para que a AMAPI comece a gerenciá-las suavemente. A interação da migração do DPC com o gerenciamento de Wi-Fi varia dependendo do modo de gerenciamento.

Dispositivos totalmente gerenciados e perfis de trabalho em dispositivos da empresa

Durante a migração, o Android Device Policy presume que qualquer rede Wi-Fi configurados na política com o mesmo SSID e tipo de segurança de um rede Wi-Fi configurada no dispositivo é idêntica à correspondente configurada Rede Wi-Fi. Assim, as redes Wi-Fi configuradas por DPCs personalizados não são alteradas após a migração até que haja uma mudança na política de ONC correspondente ao em uma rede VPC. No entanto, se o DPC personalizado for desinstalado após a migração, o As redes Wi-Fi configuradas por DPCs personalizados são removidas automaticamente. O Android Device Policy continua a aplicar a política, e se uma dessas redes forem configuradas na política, as redes configuradas na política serão adicionadas de costume.

Perfil de trabalho em um dispositivo pessoal

Por motivos técnicos, as redes Wi-Fi configuradas pelo DPC personalizado precisam ser removidos pelo DPC personalizado do Android Device Policy para começar a gerenciá-los Redes Wi-Fi. O SDK da AMAPI cuida disso e remove essas redes Wi-Fi. antes de transferir a propriedade do DPC personalizado para o Android Device Policy. mas exige que o DPC personalizado transmita informações sobre essas redes DpcMigrationRequest Após a migração, as redes configurados na política serão adicionados normalmente, por isso recomendamos que as redes adicionadas pelo DPC personalizado também devem ser configuradas na política.

Há alguns pontos que você precisa considerar:

  • Se a rede ativa for uma rede Wi-Fi configurada por um DPC personalizado, o dispositivo podem ficar off-line por um tempo durante a migração.
  • Somente as redes Wi-Fi configuradas pelo DPC personalizado devem ser transmitidas DpcMigrationRequest. Caso contrário, a migração falhará se um a rede não pode ser removida pelo SDK da AMAPI (por exemplo, o usuário adicionou uma rede Wi-Fi).
  • As redes Wi-Fi devem ser transmitidas DpcMigrationRequest somente quando o DPC personalizado é um proprietário do perfil em um dispositivo pessoal. Caso contrário, a migração falhará.
  • Por motivos técnicos, o Android 12 é um caso excepcional em que as redes transmitidos em DpcMigrationRequest são ignorados, e todas as redes as redes configuradas pelo DPC personalizado são removidas automaticamente. Além disso, é um requisito para que o DPC personalizado tenha ACCESS_WIFI_STATE. permissão no Android 12 para perfis de trabalho em dispositivos pessoais, caso contrário, a migração vai falhar.

Advertências

Aqui estão algumas ressalvas relacionadas a esse recurso.

ID específico da empresa

Para perfis de trabalho no Android 12 e versões mais recentes, o ID específico da empresa, que pode ser acessado em DevicePolicyManager.getEnrollmentSpecificId não muda no momento da migração. No entanto, se um perfil de trabalho gerenciado pelo Android Device Policy é criado novamente no dispositivo (por exemplo, após excluir o antigo ou depois de redefinir o dispositivo para a configuração original), o o ID específico da empresa muda nesse momento.

Perfis de trabalho em dispositivos totalmente gerenciados

Este recurso não é compatível com dispositivos totalmente gerenciados que tenham um um perfil com o Android 9 ou 10. Não é permitido tentar migrar esses dispositivos, e, independentemente do surgimento de um erro, esses dispositivos não são compatíveis para a migração de DPC.