使用 Intune 为应用保护策略准备 Android 应用 App Wrapping Tool

使用适用于 Android 的 Microsoft Intune App Wrapping Tool通过限制应用的功能而不更改应用本身的代码来更改内部 Android 应用的行为。

该工具是在 PowerShell 中运行的 Windows 命令行应用程序,并在 Android 应用周围创建包装器。 包装应用后,可以通过在 Intune 中配置 移动应用程序管理策略 来更改应用的功能。

运行该工具之前,请查看运行App Wrapping Tool的安全注意事项。 若要下载该工具,请转到 GitHub 上适用于 Android 的 Microsoft Intune App Wrapping Tool

注意

如果在对应用使用 Intune App Wrapping Tool时遇到问题,请在 GitHub 上提交帮助请求

满足使用App Wrapping Tool的先决条件

  • 你的应用必须使用最新的库

  • 你的应用必须与 Google Play 要求兼容

  • 如果应用很复杂,则必须与适用于 Android 的 Intune 应用 SDK 集成

  • 必须在运行 Windows 10 或更高版本的 Windows 计算机上运行App Wrapping Tool。

  • 输入应用必须是文件扩展名.apk的有效 Android 应用程序包,并且:

    • 它无法加密。
    • 它之前不得被 Intune App Wrapping Tool包装。
    • 它必须针对 Android 9.0 或更高版本编写。

    注意

    如果输入应用是 Android 应用捆绑包 (.aab) ,则需要先将其转换为 APK,然后再使用 Intune App Wrapping Tool。 有关详细信息,请参阅 将 Android App Bundle (AAB) 转换为 APK。 自 2021 年 8 月起, 新的专用应用仍可作为 APK 发布到 Google Play 商店

  • 应用必须由或为你的公司开发。 不能在 Google Play 商店中提供的应用上使用此工具。 这包括从 Google Play 商店下载或获取应用。

  • 若要运行App Wrapping Tool,必须安装最新版本的 Java 运行时环境,然后确保在 Windows 环境变量中将 Java 路径变量设置为 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在包装过程中自动处理自 1.0.2501.1 版起最小 API 级别为 21 或更高 (的应用的 DEX 文件溢出) 。 对于最小 API 级别 < 为 21 的应用,最佳做法是使用包装器的 -UseMinAPILevelForNativeMultiDex 标志提高最小 API 级别。 对于无法提高应用的最低 API 级别的客户,可以使用以下 DEX 溢出解决方法。 在某些组织中,这可能需要与编译应用 (人员协作。应用生成团队) :

    • 使用 ProGuard 从应用的主 DEX 文件中消除未使用的类引用。
    • 对于使用 Android Gradle 插件 v3.1.0 或更高版本的客户,请禁用 D8 dexer

应多久使用 Intune App Wrapping Tool重新包装一次 Android 应用程序?

需要重新打包应用程序的主要方案如下:

  • 应用程序本身已发布新版本。 应用的早期版本已包装并上传到 Microsoft Intune 管理中心。

  • 适用于 Android 的 Intune App Wrapping Tool发布了一个新版本,该版本支持关键 bug 修复或新的特定 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 移动应用程序管理\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 命令的属性:

属性 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) 路径上,并且你未在同一台计算机上运行该工具和输入文件,请使用 Internet 协议安全性 (IPsec) 服务器消息块 (SMB) 签名来保护环境。

  • 确保应用程序来自受信任的源。

  • 保护包含包装应用的输出目录。 考虑对输出使用用户级目录。

将 Android 应用捆绑包 (AAB) 转换为 APK

Intune App Wrapping Tool目前仅支持 APK 输入。 必须首先将 Android 应用捆绑包转换为 APK 才能与该工具一起使用。

可以使用 Google 的命令行工具 bundletool将 Android 应用捆绑包转换为 APK。 可以从 Google 的 bundle-toolbundletool GitHub 存储库下载 最新版本。

bundletool可以使用以下命令生成单个通用 APK,以便与 Intune App Wrapping Tool配合使用:

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

输出 .apks 文件是包含单个通用 APK 文件的 ZIP 存档。 解压缩存档并使用该 APK 文件作为 Intune App Wrapping Tool的输入。

另请参阅