使用 Intune App Wrapping Tool为应用保护策略准备 Android 应用
使用适用于 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 App Bundle (.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 应用编译的一部分。 自) 1.0.2501.1 起,该Intune App Wrapping Tool自动处理最小 API 级别为 21 或更高 (的应用的包装过程中的 DEX 文件溢出。 对于最小 API 级别 < 为 21 的应用,最佳做法是使用包装器的
-UseMinAPILevelForNativeMultiDex
标志提高最小 API 级别。 对于无法提高应用的最低 API 级别的客户,可以使用以下 DEX 溢出解决方法。 在某些组织中,这可能需要与编译应用 (人员协作。应用生成团队) :- 使用 ProGuard 从应用的主 DEX 文件中消除未使用的类引用。
- 对于使用 Android Gradle 插件 v3.1.0 或更高版本的客户,请禁用 D8 dexer。
应多久使用 Intune App Wrapping Tool重新包装一次 Android 应用程序?
需要重新打包应用程序的main方案如下所示:
应用程序本身已发布新版本。 应用的早期版本已包装并上传到Microsoft Intune管理中心。
适用于 Android 的Intune App Wrapping Tool发布了一个新版本,该版本支持关键 bug 修复或新的特定Intune应用程序保护策略功能。 这种情况每隔 6-8 周通过适用于 Android Microsoft Intune App Wrapping Tool的 GitHub 存储库进行一次。
重新包装的一些最佳做法包括:
- 维护在生成过程中使用的签名证书,请参阅 重用签名证书和包装应用
安装App Wrapping Tool
从 GitHub 存储库中,将适用于 Android Intune App Wrapping Tool 的安装文件 InstallAWT.exe 下载到 Windows 计算机。 打开安装文件。
接受许可协议,然后完成安装。
记下工具安装到的文件夹。 默认位置为: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进行更新,并纳入软件开发发布周期,以确保应用支持最新的应用保护策略设置。
在安装了 App Wrapping Tool的 Windows 计算机上,打开 PowerShell 窗口。
从安装该工具的文件夹中,导入 App Wrapping Tool PowerShell 模块:
Import-Module .\IntuneAppWrappingTool.psm1
使用 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-tool
bundletool 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的输入。