使用 Intune App Wrapping Tool 準備 Android 應用程式以取得應用程式保護原則

使用適用於 Android 的 Microsoft Intune App Wrapping Tool,藉由限制應用程式的功能,而不需要變更應用程式本身的程式代碼,來變更內部 Android 應用程式的行為。

此工具是 Windows 命令行應用程式,可在 PowerShell 中執行,並在您的 Android 應用程式周圍建立包裝函式。 包裝應用程式之後,您可以在 Intune 中設定行動應用程式管理原則,以變更應用程式的功能。

執行此工具之前,請檢閱執行 App Wrapping Tool的安全性考慮。 若要下載此工具,請移至 GitHub 上的 Android Microsoft Intune App Wrapping Tool

注意事項

如果您在應用程式中使用 Intune App Wrapping Tool 時發生問題,請在 GitHub 上提交協助要求

滿足使用 App Wrapping Tool 的必要條件

  • 您的應用程式必須使用最新的連結庫

  • 您的應用程式必須與Google Play需求相容

  • 如果您的應用程式很複雜,它必須與 Intune App SDK for Android 整合

  • 您必須在執行 Windows 10 或更新版本的 Windows 電腦上執行 App Wrapping Tool。

  • 您的輸入應用程式必須是擴展名為 .apk 的有效 Android 應用程式套件,而且:

    • 無法加密。
    • 之前不得由 Intune App Wrapping Tool 包裝。
    • 它必須針對 Android 9.0 或更新版本撰寫。

    注意事項

    如果您的輸入應用程式是 Android 應用程式套件組合 (.aab) ,您必須先將它轉換成 APK,才能使用 Intune App Wrapping Tool。 如需詳細資訊,請 參閱將Android應用程式套件組合 (AAB) 轉換為 APK。 自 2021 年 8 月起, 新的私人應用程式仍可發佈至 Google Play 商店作為 APK

  • 應用程式必須由或您的公司開發。 您無法在 Google Play 商店中提供的應用程式上使用此工具。 這包括從Google Play商店下載或取得應用程式。

  • 若要執行 App Wrapping Tool,您必須安裝最新版的 Java 運行時間環境,然後確定 Java 路徑變數已在 Windows 環境變數中設定為 C:\ProgramData\Oracle\Java\javapath。 如需詳細說明,請參閱 Java 檔

    注意事項

    在某些情況下,32 位版本的 Java 可能會導致記憶體問題。 最好是安裝 64 位版本。

  • Android 需要 (.apk) 簽署所有應用程式套件。 如需 重複使用 現有憑證和整體簽署憑證指引,請 參閱重複使用簽署憑證和包裝應用程式。 使用 Intune App Wrapping Tool 包裝.apk檔案之後,建議使用Google提供的 Apksigner 工具。 這可確保一旦您的應用程式到達終端用戶裝置,就可以依Android標準正確啟動。

  • (選擇性) 有時候應用程式可能會因為包裝期間新增的 Intune MAM SDK 類別,而達到 DAlvik 可執行檔 (DEX) 大小限制。 DEX 檔案是 Android 應用程式編譯的一部分。 Intune App Wrapping Tool 會自動處理自 v. 1.0.2501.1) 起,最小 API 層級為 21 或更高 (的應用程式包裝期間的 DEX 檔案溢位。 對於 API 層級最低為 21 的 < 應用程式,最佳做法是使用包裝函式的 -UseMinAPILevelForNativeMultiDex 旗標來增加最小 API 層級。 對於無法增加應用程式最低 API 層級的客戶,可以使用下列 DEX 溢位因應措施。 在某些組織中,這可能需要與編譯應用程式 (人員合作。應用程式建置小組) :

    • 使用 ProGuard 從應用程式的主要 DEX 檔案中排除未使用的類別參考。
    • 針對使用 Android Gradle 外掛程式 v3.1.0 或更高版本的客戶,請停用 D8 除x器

我應該使用 Intune App Wrapping Tool 重寫 Android 應用程式的頻率為何?

您需要重寫應用程式的主要案例如下:

  • 應用程式本身已發行新版本。 舊版應用程式已包裝並上傳至 Microsoft Intune 系統管理中心。

  • 適用於 Android 的 Intune App Wrapping Tool 已發行新版本,可啟用金鑰錯誤修正或新的特定 Intune 應用程式保護原則功能。 這會每隔 6-8 周透過適用於 Android 之 Microsoft Intune App Wrapping Tool 的 GitHub 存放庫發生。

重新包裝的一些最佳做法包括:

安裝 App Wrapping Tool

  1. GitHub 存放庫,將適用於 Android Intune App Wrapping Tool 的安裝檔案 InstallAWT.exe 下載到 Windows 計算機。 開啟安裝檔案。

  2. 接受許可協議,然後完成安裝。

記下您安裝工具的資料夾。 默認位置為:C:\Program Files (x86) \Microsoft Intune Mobile Application Management\Android\App Wrapping Tool。

執行 App Wrapping Tool

重要事項

Intune 定期發行 Intune App Wrapping Tool 的更新。 定期檢查 Android 的 Intune App Wrapping Tool 以取得更新,並併入您的軟體開發發行週期,以確保您的應用程式支援最新的應用程式保護原則設定。

  1. 在您安裝 App Wrapping Tool 的 Windows 電腦上,開啟 PowerShell 視窗。

  2. 從您安裝工具的資料夾,匯入 App Wrapping Tool PowerShell 模組:

    Import-Module .\IntuneAppWrappingTool.psm1
    
  3. 使用 invoke-AppWrappingTool 命令來執行工具,該命令具有下列使用語法:

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

    下表詳細說明 invoke-AppWrappingTool 命令的屬性:

Property Information
-InputPath<字串> 來源 Android 應用程式 (.apk) 的路徑。
-OutputPath<字串> 輸出 Android 應用程式的路徑。 如果這是與 InputPath 相同的目錄路徑,封裝將會失敗。
<CommonParameters> (選擇性) 此命令支持常見的 PowerShell 參數,例如詳細資訊和偵錯。
  • 如需一般參數的清單,請參閱 Microsoft 腳本中心

  • 若要查看工具的詳細使用方式資訊,請輸入 命令:

    Help Invoke-AppWrappingTool
    

範例:

匯入 PowerShell 模組。

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

在原生應用程式HelloWorld.apk上執行 App Wrapping Tool。

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

包裝的應用程式和記錄檔會產生並儲存在您指定的輸出路徑中。

重複使用簽署憑證和包裝應用程式

Android 要求所有應用程式都必須由有效的憑證簽署,才能安裝在 Android 裝置上。

包裝的應用程式可以在使用您現有的簽署工具包裝 之後 簽署, (應用程式中的任何簽署資訊,再捨棄) 包裝。 可能的話,應該在包裝期間使用建置程式期間已使用的簽署資訊。 在某些組織中,這可能需要與擁有密鑰存放區資訊的人 (一起合作。應用程式建置小組) 。

如果無法使用先前的簽署憑證,或之前尚未部署應用程式,您可以遵循 Android開發人員指南中的指示來建立新的簽署憑證。

如果先前已使用不同的簽署憑證部署應用程式,則無法在升級後將應用程式上傳至 Intune。 如果您的應用程式所簽署的憑證與應用程式建置所在的憑證不同,則應用程式升級案例將會中斷。 因此,應該維護任何新的簽署憑證以進行應用程序升級。

執行 App Wrapping Tool的安全性考慮

若要防止潛在的詐騙、資訊洩漏和特權提升攻擊:

  • 請確定輸入企業營運 (LOB) 應用程式,且輸出應用程式位於執行 App Wrapping Tool 的相同 Windows 電腦上。

  • 將輸出應用程式匯入 Intune 工具執行所在的相同電腦上。 如 需 Java keytool 的詳細資訊,請參閱 keytool。

  • 如果輸出應用程式和工具位於通用命名約定 (UNC) 路徑,而且您未在同一部計算機上執行工具和輸入檔,請使用 因特網通訊協定安全性 (IPsec) 伺服器消息塊塊 (SMB) 簽署,將環境設定為安全。

  • 確定應用程式來自信任的來源。

  • 保護具有包裝應用程式的輸出目錄。 請考慮針對輸出使用用戶層級目錄。

將 Android 應用程式套件組合 (AAB) 轉換為 APK

Intune App Wrapping Tool 目前僅支援 APK 輸入。 Android 應用程式套件組合必須先轉換成 APK,才能與工具搭配使用。

您可以使用 Google 的指令列工具 ,將 Android 應用程式套件組合轉換成 APK。 bundletool 您可以從 Google 的 bundletool GitHub 存放庫下載最新版本bundle-tool的 。

bundletool可以使用下列命令來產生與 Intune App Wrapping Tool 搭配使用的單一通用 APK:

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

輸出 .apks 檔案是包含單一通用 APK 檔案的 ZIP 封存。 解壓縮封存盤,並使用該 APK 檔案作為 Intune App Wrapping Tool 的輸入。

另請參閱