Eseguire la migrazione dei dispositivi esistenti ad AMAPI

È possibile eseguire la migrazione ad Android Device Policy dei dispositivi già gestiti dal tuo DPC personalizzato e sfruttare l'API Android Management.

Nota:questa procedura è trasparente per gli utenti finali. È un processo unidirezionale (una volta completato) non può essere annullato e non può essere utilizzato per eseguire la migrazione di un dispositivo da un EMM a un altro.

Prerequisiti

  • Il dispositivo è già gestito dal tuo EMM con un DPC personalizzato.
  • Il DPC personalizzato è integrato con l'SDK AMAPI.
  • Il dispositivo sia registrato con l'API EMM di Google Play.
  • Il dispositivo appartiene a un account Google Play gestito per l'azienda.
  • Sul dispositivo è installato Android 9 o versioni successive.
  • Nel caso di profili di lavoro su dispositivi di proprietà dell'azienda, sul dispositivo deve essere installato Android 11 o versioni successive.

Integrazione con l'SDK AMAPI nel tuo DPC personalizzato

Il processo di migrazione richiede che l'applicazione DPC personalizzata integri l'SDK AMAPI. Puoi trovare ulteriori informazioni su questa libreria e su come aggiungerla alla tua applicazione nella guida all'integrazione dell'SDK AMAPI.

Nota:questa procedura richiede la versione 1.1.4 o successive della libreria SDK AMAPI.

Procedura per la migrazione di un dispositivo

  1. Configurare un criterio destinato a essere utilizzato dal dispositivo dopo la migrazione ad AMAPI. Per una migliore esperienza utente, dovrebbe essere equivalente al criterio già applicato sul dispositivo dal tuo DPC.
  2. Crea un token di migrazione per il dispositivo chiamando enterprises.migrationTokens.create.
  3. Invia il valore value di questo token di migrazione al tuo DPC personalizzato.
  4. Assicurati che Android Device Policy sia installato sul dispositivo utilizzando l'API EMM di Play.
  5. Usa DpcMigrationClientFactory per creare un DpcMigrationClient
  6. Su DpcMigrationClient, chiama il metodo migrateDeviceManagementToAndroidManagementApi. Questa operazione completa la migrazione.
  7. deviceState diventa ACTIVE e riceverai un messaggio STATUS_REPORT tramite il canale Pub/Sub.

Al termine della migrazione, l'app per le chiamate perde i suoi privilegi di proprietario del dispositivo o del profilo, che vengono trasferiti ad Android Device Policy.

Nota:per avviare la migrazione, il dispositivo deve essere connesso a internet. Il processo è progettato per essere resiliente alle disconnessioni di rete durante il processo di migrazione, in modo che le operazioni chiave che richiedono la connettività di rete vengano eseguite prima dell'effettivo trasferimento dei diritti del proprietario del dispositivo o del profilo dal tuo DPC ad Android Device Policy.

Token di migrazione

Il server EMM richiede un token di migrazione per segnalare l'intenzione di eseguire la migrazione di un particolare dispositivo gestito da un DPC personalizzato. Un token di migrazione può essere utilizzato fino al completamento della migrazione o fino alla scadenza.

Integrazione DPC personalizzata

Per prima cosa devi creare un DpcMigrationRequest, passando il token e, se necessario, l'elenco delle reti Wi-Fi configurate al relativo strumento di creazione:

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

Puoi quindi utilizzare DpcMigrationClient e avviare la procedura di migrazione con migrateDeviceManagementToAndroidManagementApi:

// Create a DpcMigrationClient
DpcMigrationClient dpcMigrationClient = DpcMigrationClientFactory.create(context);
try {
  // Use helper functiong 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
}

Monitorare l'avanzamento della migrazione

Il processo di migrazione viene monitorato sul dispositivo tramite un DpcMigrationAttempt.

Puoi utilizzare direttamente quello restituito da migrateDeviceManagementToAndroidManagementApi o utilizzare i metodi getMigrationAttempt e listMigrationAttempts per ottenere ed elencare i tentativi di migrazione.

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

var attempt = client.getMigrationAttempt(request);

Facoltativamente, puoi configurare una DpcMigrationListener utilizzando la tua NotificationReceiverService per ascoltare gli aggiornamenti di stato della 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
  }
}

Gestire le reti Wi-Fi

Se sono presenti reti Wi-Fi gestite dal DPC personalizzato, il criterio AMAPI ONC deve corrispondere alle configurazioni di queste reti affinché AMAPI possa iniziare a gestirle in modo fluido. L'interazione della migrazione DPC con la gestione Wi-Fi varia a seconda della modalità di gestione.

Dispositivi completamente gestiti e profili di lavoro sui dispositivi di proprietà dell'azienda

Durante la migrazione, Android Device Policy presuppone che qualsiasi rete Wi-Fi configurata in un criterio e con lo stesso SSID e tipo di sicurezza di una rete Wi-Fi configurata sul dispositivo sia identica alla rete Wi-Fi configurata corrispondente. Di conseguenza, le reti Wi-Fi configurate da un DPC personalizzato non vengono toccate dopo la migrazione fino a quando non viene modificata il criterio ONC corrispondente alla rete. Tuttavia, se il DPC personalizzato viene disinstallato dopo la migrazione, le reti Wi-Fi configurate da un DPC personalizzato vengono rimosse automaticamente. Android Device Policy continua ad applicare i criteri e, se una di queste reti è configurata nel criterio, le reti configurate nel criterio vengono aggiunte come di consueto.

Profilo di lavoro su un dispositivo personale

Per motivi tecnici, le reti Wi-Fi configurate dal DPC personalizzato devono essere rimosse dal DPC personalizzato affinché Android Device Policy possa iniziare a gestirle. L'SDK AMAPI si occupa di questo problema e rimuove le reti Wi-Fi prima di trasferire la proprietà dal DPC personalizzato ad Android Device Policy, ma richiede che il DPC personalizzato trasferisca le informazioni su queste reti in DpcMigrationRequest. Dopo la migrazione, le reti configurate in un criterio verranno aggiunte normalmente, quindi è consigliabile configurare nel criterio anche le reti aggiunte dall'DPC personalizzato.

Occorre tenere presente alcuni punti:

  • Se la rete attiva è una rete Wi-Fi configurata da un DPC personalizzato, il dispositivo può essere offline per un breve momento durante la migrazione.
  • Solo le reti Wi-Fi configurate dal DPC personalizzato devono essere trasmesse in DpcMigrationRequest, altrimenti la migrazione non va a buon fine se una rete non può essere rimossa dall'SDK AMAPI (ad esempio, una rete Wi-Fi aggiunta dall'utente).
  • Le reti Wi-Fi devono essere trasmesse all'interno di DpcMigrationRequest solo quando il DPC personalizzato è un proprietario del profilo su un dispositivo di proprietà personale, altrimenti la migrazione non va a buon fine.
  • Per motivi tecnici, Android 12 è un caso eccezionale in cui le reti passate in DpcMigrationRequest vengono ignorate e tutte le reti Wi-Fi configurate dal DPC personalizzato vengono rimosse automaticamente. Inoltre, è necessario che il DPC personalizzato disponga dell'autorizzazione ACCESS_WIFI_STATE su Android 12 per i profili di lavoro sui dispositivi di proprietà personale, altrimenti la migrazione non va a buon fine.

Avvertenze

Di seguito sono riportate alcune avvertenze relative a questa funzionalità.

ID specifico per l'azienda

Per i profili di lavoro su Android 12 e versioni successive, l'ID specifico aziendale, a cui è possibile accedere da DevicePolicyManager.getEnrollmentSpecificId, non cambia al momento della migrazione. Tuttavia, se un profilo di lavoro gestito da Android Device Policy viene creato di nuovo sul dispositivo (ad esempio dopo aver eliminato il profilo precedente o dopo aver ripristinato i dati di fabbrica del dispositivo), l'ID specifico per l'azienda cambierà a quel punto.

Profili di lavoro su dispositivi completamente gestiti

Questa funzionalità non è supportata sui dispositivi completamente gestiti con un profilo di lavoro con Android 9 o 10. Non è necessario tentare la migrazione di questi dispositivi e, indipendentemente dal fatto che venga generato un errore, questi dispositivi non sono supportati per la migrazione DPC.