使用适用于 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。
输入应用必须是有效的 Android 应用程序包,文件扩展名为 .apk,并且:
- 它无法加密。
- 它以前不能由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 标准正确启动。
(可选) 有时,由于在包装过程中添加的 MAM SDK 类Intune,应用可能会达到 Dalvik Executable (DEX) 大小限制。 DEX 文件是 Android 应用程序编译的一部分。 自 v. 1.0.2501.1) 起,Intune App Wrapping Tool在包装期间自动处理最小 API 级别为 21 或更高 (应用的 DEX 文件溢出。 对于最小 API 级别 < 为 21 的应用,最佳做法是使用包装器的
-UseMinAPILevelForNativeMultiDex标志来增加最小 API 级别。 对于无法提高应用最低 API 级别的客户,可以使用以下 DEX 溢出解决方法。 在某些组织中,这可能需要与编译应用 (的人员合作。应用生成团队) :- 使用 ProGuard 从应用的主 DEX 文件中消除未使用的类引用。
- 对于使用 v3.1.0 或更高版本的 Android Gradle 插件的客户,请禁用 D8 dexer。
我应该多久用 Intune App Wrapping Tool 重新包装一次 Android 应用程序?
需要重新包装应用程序的主要场景如下:
应用程序本身已发布新版本。 以前版本的应用已包装并上传到 Microsoft Intune 管理中心。
适用于 Android 的 Intune App Wrapping Tool 已发布新版本,该版本启用了关键 bug 修复或新的、特定的Intune应用程序保护策略功能。 通过 Microsoft Intune App Wrapping Tool for Android 的 GitHub 存储库,此操作每 6-8 周进行一次。
重新包装的一些最佳做法包括:
- 维护生成期间使用的签名证书,请参阅 重复使用签名证书和包装应用
安装 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 App Bundle (AAB) 转换为 APK
Intune App Wrapping Tool目前仅支持 APK 输入。 Android 应用程序捆绑包必须先转换为 APK,以便与该工具一起使用。
可以使用 Google 的命令行工具将 Android App Bundle 转换为 APK。 bundletool 可以 bundle-tool 从 Google 的 bundletool GitHub 存储库下载最新版本。
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的输入。