Eseguire la migrazione dei dispositivi esistenti ad AMAPI

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

Prerequisiti

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

Integrazione con l'SDK AMAPI nel DPC personalizzato

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

Procedura per la migrazione di un dispositivo

  1. Configura un criterio che deve essere utilizzato dal dispositivo dopo la migrazione ad AMAPI. Per una migliore esperienza utente, questo dovrebbe corrispondere al criterio già applicato al dispositivo dal DPC (controller criteri dispositivi).
  2. Crea un token di migrazione per il dispositivo chiamando enterprises.migrationTokens.create.
  3. Invia il 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. Utilizza DpcMigrationClientFactory per creare un DpcMigrationClient
  6. Su DpcMigrationClient, chiama il metodo migrateDeviceManagementToAndroidManagementApi. La migrazione verrà completata.
  7. Lo deviceState diventa ACTIVE e riceverai un messaggio STATUS_REPORT tramite il canale Pub/Sub.

Al termine della migrazione, l'app per le chiamate perderà i privilegi di Proprietario del dispositivo o Proprietario 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 connettività di rete vengano eseguite prima del trasferimento effettivo dei diritti di proprietario del dispositivo o del profilo dal 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 determinato dispositivo gestito da un DPC personalizzato. Il token di migrazione può essere utilizzato fino al completamento della migrazione o fino alla scadenza.

Integrazione DPC personalizzata

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

// 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 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
}

Monitorare l'avanzamento della migrazione

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

Puoi utilizzare direttamente quello restituito da migrateDeviceManagementToAndroidManagementApi oppure usare i metodi getMigrationAttempt e listMigrationAttempts per recuperare 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 NotificationReceiverService per rimanere in ascolto degli aggiornamenti di stato per il 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 senza problemi. 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 nei criteri che abbia 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 tramite DPC personalizzato rimangono invariate dopo la migrazione finché non viene apportata una modifica al criterio ONC corrispondente alla rete. Tuttavia, se il DPC personalizzato viene disinstallato dopo la migrazione, le reti Wi-Fi configurate dal DPC personalizzato vengono rimosse automaticamente. Android Device Policy continua ad applicare i criteri e, se una di queste reti è configurata nei criteri, le reti configurate nel criterio vengono aggiunte come al solito.

Profilo di lavoro su un dispositivo personale

Per motivi tecnici, le reti Wi-Fi configurate dal DPC personalizzato devono essere rimosse dal DPC personalizzato per Android Device Policy per iniziare a gestire queste reti Wi-Fi. L'SDK AMAPI se ne occupa e rimuove queste reti Wi-Fi prima di trasferire la proprietà dal DPC personalizzato ad Android Device Policy, ma richiede che il DPC personalizzato passi le informazioni su queste reti in DpcMigrationRequest. Dopo la migrazione, le reti configurate nel criterio verranno aggiunte normalmente, quindi è consigliabile configurare anche le reti aggiunte dal DPC personalizzato.

Tieni a mente alcuni punti:

  • Se la rete attiva è una rete Wi-Fi configurata tramite DPC personalizzato, il dispositivo può essere offline per un breve periodo 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, la rete Wi-Fi aggiunta dall'utente).
  • Le reti Wi-Fi devono essere trasmesse in DpcMigrationRequest solo se il DPC personalizzato è il proprietario del profilo su un dispositivo di proprietà personale, altrimenti la migrazione non riesce.
  • 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, il DPC personalizzato deve disporre 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 per l'azienda, accessibile da DevicePolicyManager.getEnrollmentSpecificId, non cambia al momento della migrazione. Tuttavia, se sul dispositivo viene creato di nuovo un profilo di lavoro gestito da Android Device Policy (ad esempio dopo aver eliminato quello precedente o dopo avere ripristinato i dati di fabbrica del dispositivo), a quel punto l'ID aziendale specifico cambierà.

Profili di lavoro su dispositivi completamente gestiti

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