重新使用签名证书和包装应用
Android 要求所有应用都必须使用有效证书进行签名才能安装在 Android 设备上。
包装的应用可以在使用现有 签名工具 包装后进行签名 (在应用内的任何签名信息后,包装将被丢弃) 。 如果可能,应在打包过程中使用生成过程中已使用的签名信息。 在某些组织中,这可能需要与拥有密钥存储信息(即) (合作。应用生成团队) 。
如果无法使用以前的签名证书,或者之前尚未部署应用,你可以按照 Android 开发人员指南 中的说明创建新的签名 证书。
如果之前已使用不同的签名证书部署应用,则应用在升级后无法上传到 Intune。 如果你的应用使用与生成应用时不同的证书进行签名,则应用升级方案将中断。 因此,应维护任何新的签名证书以用于应用升级。
运行应用程序的安全App Wrapping Tool
为了防止潜在的欺骗、信息泄露和特权提升攻击:
-
确保 LOB (应用程序) 输入业务线,并且输出应用程序位于运行 Windows 应用程序的同App Wrapping Tool计算机上。
-
将输出应用程序导入到运行该工具的同一计算机上 Intune。 请参阅 keytool, 详细了解Java键工具。
-
如果输出应用程序和工具位于通用命名约定 (UNC) 路径上,并且未在同一计算机上运行该工具和输入文件,则使用 Internet 协议安全性 (IPsec) 或服务器消息块 (SMB) 签名将环境设置为安全。
-
确保应用程序来自受信任的源。
-
保护已包装应用的输出目录。 请考虑将用户级别目录用于输出。
将 Android 应用程序包 (AAB) 转换为 APK
Intune App Wrapping Tool当前仅支持 APK 输入。 必须先将 Android 应用程序包转换为 APK,以与该工具一同使用。
Android 应用程序包可以使用Google bundletool 的命令行工具 转换为 APK。 可以从 Google bundle-tool
的bundletoolGitHub下载 。
bundletool
可用于生成单个通用 APK,以使用以下命令与 Intune App Wrapping Tool一同使用:
复制
bundletool build-apks --bundle=input.aab --mode=universal --output=input.apks
输出 .apks
文件是包含单个通用 APK 文件的 ZIP 存档。 解压缩存档,并使用该 APK 文件作为 Intune App
因为有个项目要使用 Microsoft Intune App Wrapping Tool For Android ,这个软件通过限制应用的功能来更改内部 Android 应用的行为,而无需更改应用本身的代码。
https://github.com/msintuneappsdk/intune-app-wrapping-tool-android
安装App Wrapping Tool
-
从 GitHub存储库中,将 Intune InstallAWT.exe for Android App Wrapping Tool的安装文件下载到Windows计算机。 打开安装文件。
-
接受许可协议,然后完成安装。
记下工具安装到的文件夹。 默认位置为:C:\Program Files (x86) \Microsoft Intune Mobile Application Management\Android\App Wrapping Tool。
运行App Wrapping Tool
重要
Intune 会定期发布对 Intune App Wrapping Tool。 定期检查适用于 Android App Wrapping Tool Intune应用,了解更新并纳入软件开发发布周期,以确保应用支持最新的应用保护策略设置。
-
在安装Windows的 App Wrapping Tool 计算机上,打开 PowerShell 窗口。
-
从安装该工具的文件夹中,导入App Wrapping Tool PowerShell 模块:
PowerShell复制
Import-Module .\IntuneAppWrappingTool.psm1
-
使用 invoke-AppWrappingTool 命令运行该工具,该命令具有以下使用语法:
PowerShell复制
Invoke-AppWrappingTool [-InputPath] <String> [-OutputPath] <String> [<CommonParameters>]
invoke-AppWrappingTool -InputPath .\app\HelloWorld.apk -OutputPath .\app_wrapped\HelloWorld_wrapped.apk -Verbose
set/p keystore_path=".\123456.jks"
set/p alias_path="key0"
set/p unsign_path=".\sermux.apk"
set/p sign_path=".\sermux_sign.apk"
jarsigner -verbose -keystore %keystore_path% -signedjar %sign_path% %unsign_path% %alias_path%
pause
jarsigner -verbose -keystore 证书文件 -signedjar 生成的签名文件 原文件 别名
-signedjar
后面的参数中 与正常理解不一样,先是生成签名文件(这个是不存在的)
然后再接原文件(这个是我们已有的apk)