Preparare le app Android per i criteri di protezione delle app con il Intune App Wrapping Tool

Usare il Microsoft Intune App Wrapping Tool per Android per modificare il comportamento delle app Android locali limitando le funzionalità dell'app senza modificare il codice dell'app stessa.

Lo strumento è un'applicazione da riga di comando di Windows eseguita in PowerShell e crea un wrapper per l'app Android. Dopo aver eseguito il wrapping dell'app, è possibile modificare le funzionalità dell'app configurando i criteri di gestione delle applicazioni mobili in Intune.

Prima di eseguire lo strumento, vedere Considerazioni sulla sicurezza per l'esecuzione del App Wrapping Tool. Per scaricare lo strumento, passare alla Microsoft Intune App Wrapping Tool per Android in GitHub.

Nota

In caso di problemi con l'uso del Intune App Wrapping Tool con le app, inviare una richiesta di assistenza su GitHub.

Soddisfare i prerequisiti per l'uso del App Wrapping Tool

  • L'app deve usare librerie aggiornate

  • L'app deve essere compatibile con i requisiti di Google Play

  • Se l'app è complessa, deve essere integrata con Intune App SDK per Android

  • È necessario eseguire il App Wrapping Tool in un computer Windows che esegue Windows 10 o versioni successive.

  • L'app di input deve essere un pacchetto di applicazione Android valido con l'estensione di file .apk e:

    • Non può essere crittografato.
    • Il wrapping non deve essere stato eseguito in precedenza dal Intune App Wrapping Tool.
    • Deve essere scritto per Android 9.0 o versione successiva.

    Nota

    Se l'app di input è un bundle di app Android (con estensione aab), sarà necessario convertirla in un APK prima di usare il Intune App Wrapping Tool. Per informazioni dettagliate, vedere Convertire il bundle di app Android (AAB) in APK. A partire da agosto 2021, le nuove app private possono ancora essere pubblicate in Google Play Store come APK.

  • L'app deve essere sviluppata da o per l'azienda. Non è possibile usare questo strumento nelle app disponibili in Google Play Store. Ciò include il download o l'acquisizione dell'app da Google Play Store.

  • Per eseguire il App Wrapping Tool, è necessario installare la versione più recente di Java Runtime Environment e quindi assicurarsi che la variabile di percorso Java sia stata impostata su C:\ProgramData\Oracle\Java\javapath nelle variabili di ambiente Windows. Per altre informazioni, vedere la documentazione di Java.

    Nota

    In alcuni casi, la versione a 32 bit di Java può causare problemi di memoria. È consigliabile installare la versione a 64 bit.

  • Android richiede la firma di tutti i pacchetti dell'app (.apk). Per il riutilizzo dei certificati esistenti e le indicazioni generali sui certificati di firma, vedere Riutilizzo dei certificati di firma e wrapping delle app. Dopo aver eseguito il wrapping del file .apk usando il Intune App Wrapping Tool, è consigliabile usare lo strumento Apksigner fornito da Google. In questo modo, una volta che l'app arriva ai dispositivi dell'utente finale, l'app può essere avviata correttamente dagli standard Android.

  • (Facoltativo) A volte un'app può raggiungere il limite di dimensioni DEX (Dalvik Executable) a causa delle Intune classi MAM SDK aggiunte durante il wrapping. I file DEX fanno parte della compilazione di un'app Android. Il Intune App Wrapping Tool gestisce automaticamente l'overflow del file DEX durante il wrapping per le app con un livello API minimo pari o superiore a 21 (a partire dalla versione 1.0.2501.1). Per le app con un livello API minimo pari < a 21, è consigliabile aumentare il livello minimo dell'API usando il flag del -UseMinAPILevelForNativeMultiDex wrapper. Per i clienti che non riescono ad aumentare il livello api minimo dell'app, sono disponibili le soluzioni alternative di overflow DEX seguenti. In alcune organizzazioni potrebbe essere necessario collaborare con chi compila l'app (ad esempio, il team di compilazione dell'app):

    • Usa ProGuard per eliminare i riferimenti alle classi inutilizzati dal file DEX primario dell'app.
    • Per i clienti che usano la versione 3.1.0 o successiva del plug-in Android Gradle, disabilitare il dexer D8.

Con quale frequenza è necessario ripetere il wrapping dell'applicazione Android con il Intune App Wrapping Tool?

Gli scenari principali in cui è necessario rieseguire il wrapping delle applicazioni sono i seguenti:

  • L'applicazione stessa ha rilasciato una nuova versione. La versione precedente dell'app è stata sottoposta a wrapping e caricata nell'interfaccia di amministrazione Microsoft Intune.

  • Il Intune App Wrapping Tool per Android ha rilasciato una nuova versione che abilita correzioni di bug chiave o nuove funzionalità specifiche Intune criteri di protezione delle applicazioni. Questo avviene ogni 6-8 settimane tramite il repository GitHub per il Microsoft Intune App Wrapping Tool per Android.

Alcune procedure consigliate per il rewrapping includono:

Installare il App Wrapping Tool

  1. Dal repository GitHub scaricare il file di installazione InstallAWT.exe per il Intune App Wrapping Tool per Android in un computer Windows. Aprire il file di installazione.

  2. Accettare il contratto di licenza, quindi completare l'installazione.

Si noti la cartella in cui è stato installato lo strumento. Il percorso predefinito è: C:\Programmi (x86)\Microsoft Intune Gestione applicazioni mobili\Android\App Wrapping Tool.

Eseguire il App Wrapping Tool

Importante

Intune rilascia regolarmente gli aggiornamenti alla Intune App Wrapping Tool. Controllare regolarmente la Intune App Wrapping Tool per Android per gli aggiornamenti e incorporare nel ciclo di rilascio dello sviluppo software per assicurarsi che le app supportano le impostazioni più recenti dei criteri di protezione delle app.

  1. Nel computer Windows in cui è stato installato il App Wrapping Tool aprire una finestra di PowerShell.

  2. Dalla cartella in cui è stato installato lo strumento importare il modulo App Wrapping Tool PowerShell:

    Import-Module .\IntuneAppWrappingTool.psm1
    
  3. Eseguire lo strumento usando il comando invoke-AppWrappingTool , con la sintassi di utilizzo seguente:

    Invoke-AppWrappingTool [-InputPath] <String> [-OutputPath] <String> [<CommonParameters>]
    

    La tabella seguente illustra in dettaglio le proprietà del comando invoke-AppWrappingTool :

Proprietà Informazioni
-InputPath<Stringa> Percorso dell'app Android di origine (.apk).
-Outputpath<Stringa> Percorso dell'app Android di output. Se si tratta dello stesso percorso della directory di InputPath, la creazione del pacchetto avrà esito negativo.
<CommonParameters> (Facoltativo) Il comando supporta parametri di PowerShell comuni, ad esempio verbose e debug.
  • Per un elenco dei parametri comuni, vedere Microsoft Script Center.

  • Per visualizzare informazioni dettagliate sull'utilizzo dello strumento, immettere il comando :

    Help Invoke-AppWrappingTool
    

Esempio:

Importare il modulo PowerShell.

Import-Module "C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool\IntuneAppWrappingTool.psm1"

Eseguire il App Wrapping Tool nella HelloWorld.apk dell'app nativa.

invoke-AppWrappingTool -InputPath .\app\HelloWorld.apk -OutputPath .\app_wrapped\HelloWorld_wrapped.apk -Verbose

L'app di cui è stato eseguito il wrapping e un file di log vengono generati e salvati nel percorso di output specificato.

Riutilizzo dei certificati di firma e wrapping delle app

Android richiede che tutte le app siano firmate da un certificato valido per essere installate nei dispositivi Android.

Le app incapsulate possono essere firmate dopo il wrapping usando gli strumenti di firma esistenti (tutte le informazioni di firma nell'app prima che il wrapping venga rimosso). Se possibile, le informazioni di firma già usate durante il processo di compilazione devono essere usate durante il wrapping. In alcune organizzazioni potrebbe essere necessario collaborare con chi possiede le informazioni dell'archivio chiavi (ad esempio, il team di compilazione dell'app).

Se non è possibile usare il certificato di firma precedente o l'app non è stata distribuita in precedenza, è possibile creare un nuovo certificato di firma seguendo le istruzioni riportate nella Guida per gli sviluppatori Android.

Se l'app è stata distribuita in precedenza con un certificato di firma diverso, non è possibile caricarla in Intune dopo l'aggiornamento. Gli scenari di aggiornamento dell'app verranno interrotti se l'app è firmata con un certificato diverso da quello con cui viene compilata l'app. Di conseguenza, tutti i nuovi certificati di firma devono essere mantenuti per gli aggiornamenti delle app.

Considerazioni sulla sicurezza per l'esecuzione del App Wrapping Tool

Per evitare potenziali attacchi di spoofing, divulgazione di informazioni e elevazione dei privilegi:

  • Assicurarsi che l'applicazione line-of-business (LOB) di input e l'applicazione di output si trovino nello stesso computer Windows in cui è in esecuzione il App Wrapping Tool.

  • Importare l'applicazione di output in Intune nello stesso computer in cui è in esecuzione lo strumento. Per altre informazioni sullo strumento di gestione delle chiavi Java, vedere keytool .

  • Se l'applicazione di output e lo strumento si trovano in un percorso UNC (Universal Naming Convention) e non si eseguono lo strumento e i file di input nello stesso computer, configurare l'ambiente in modo che sia protetto tramite la firma IPsec (Internet Protocol Security) o SMB (Server Message Block).

  • Assicurarsi che l'applicazione provenga da un'origine attendibile.

  • Proteggere la directory di output con l'app di cui è stato eseguito il wrapping. È consigliabile usare una directory a livello di utente per l'output.

Convertire il bundle di app Android (AAB) in APK

Il Intune App Wrapping Tool attualmente supporta solo gli input APK. I bundle di app Android devono prima essere convertiti in un APK per l'uso con lo strumento.

Un bundle di app Android può essere convertito in un APK usando lo strumento da riga di comando di Google, bundletool. La versione più recente di bundle-tool può essere scaricata dal repository GitHub dello strumento bundle di Google.

bundletoolpuò essere usato per produrre un singolo APK universale da usare con il Intune App Wrapping Tool usando il comando seguente:

bundletool build-apks --bundle=input.aab --mode=universal --output=input.apks

Il .apks file di output è un archivio ZIP contenente un singolo file APK universale. Decomprimere l'archivio e usare il file APK come input per il Intune App Wrapping Tool.

Vedere anche