Подготовка приложений Android для политик защиты приложений с помощью средства упаковки приложений Intune
Используйте средство упаковки приложений Microsoft Intune для Android, чтобы изменить поведение собственных приложений Android, ограничив возможности приложения, не изменяя код самого приложения.
Это средство — это приложение командной строки Windows, которое выполняется в PowerShell и создает оболочку для приложения Android. После упаковки приложения можно изменить его функциональность, настроив политики управления мобильными приложениями в Intune.
Перед запуском средства ознакомьтесь с рекомендациями по безопасности при запуске средства упаковки приложений. Чтобы скачать средство, перейдите к средству упаковки приложений Microsoft Intune для Android на сайте GitHub.
Примечание.
Если у вас возникли проблемы с использованием средства упаковки приложений Intune с приложениями, отправьте запрос на помощь на сайте GitHub.
Выполнение необходимых условий для использования средства упаковки приложений
Приложение должно использовать актуальные библиотеки
Приложение должно быть совместимо с требованиями Google Play
Если приложение является сложным, оно должно интегрироваться с пакетом SDK для приложений Intune для Android.
Необходимо запустить средство упаковки приложений на компьютере с Windows под управлением Windows 10 или более поздней версии.
Входное приложение должно быть допустимым пакетом приложения Android с расширением файла .apk и:
- Его невозможно зашифровать.
- Он не должен быть ранее упакован средством упаковки приложений Intune.
- Он должен быть написан для Android 9.0 или более поздней версии.
Примечание.
Если входное приложение представляет собой пакет приложений Android (.aab), его необходимо преобразовать в APK перед использованием средства упаковки приложений Intune. Дополнительные сведения см. в разделе Преобразование пакета приложений Android (AAB) в APK. По состоянию на август 2021 г . новые частные приложения по-прежнему могут публиковаться в Google Play Store в виде APK.
Приложение должно быть разработано компанией или для вашей компании. Это средство нельзя использовать в приложениях, доступных в Магазине Google Play. Сюда входит скачивание или получение приложения из Google Play Store.
Чтобы запустить средство упаковки приложений, необходимо установить последнюю версию среды выполнения Java , а затем убедиться, что переменная пути Java имеет значение C:\ProgramData\Oracle\Java\javapath в переменных среды Windows. Дополнительные сведения см. в документации по Java.
Примечание.
В некоторых случаях 32-разрядная версия Java может привести к проблемам с памятью. Рекомендуется установить 64-разрядную версию.
Android требует подписи всех пакетов приложений (.apk). Сведения о повторном использовании существующих сертификатов и общих рекомендациях по сертификатам подписи см. в статье Повторное использованием сертификатов подписи и упаковки приложений. После упаковки файла .apk с помощью средства упаковки приложений Intune рекомендуется использовать предоставленное Google средство Apksigner. Это гарантирует, что после того, как ваше приложение перейдет на устройства конечных пользователей, его можно будет запустить должным образом по стандартам Android.
(Необязательно) Иногда приложение может достичь ограничения размера исполняемого файла Dalvik (DEX) из-за классов пакета SDK Для Intune MAM, которые добавляются во время упаковки. Файлы DEX являются частью компиляции приложения Android. Средство упаковки приложений Intune автоматически обрабатывает переполнение файлов DEX во время упаковки для приложений с минимальным уровнем API 21 или выше (с версии 1.0.2501.1). Для приложений с минимальным уровнем < API 21 рекомендуется увеличить минимальный уровень API с помощью флага оболочки
-UseMinAPILevelForNativeMultiDex
. Для клиентов, неспособных увеличить минимальный уровень API приложения, доступны следующие обходные решения DEX overflow. В некоторых организациях для этого может потребоваться работа с тем, кто компилирует приложение (например, с командой сборки приложения):- Используйте ProGuard, чтобы исключить неиспользуемые ссылки на классы из основного файла DEX приложения.
- Для клиентов, использующих подключаемый модуль Android Gradle версии 3.1.0 или более поздней версии, отключите dexer D8.
Как часто следует перезаписывать приложение Android с помощью средства упаковки приложений Intune?
Ниже приведены основные сценарии, в которых потребуется перезапись приложений.
Само приложение выпустило новую версию. Предыдущая версия приложения была упакована и отправлена в Центр администрирования Microsoft Intune.
Средство упаковки приложений Intune для Android выпустило новую версию, которая включает исправления ключевых ошибок или новые, определенные функции политики защиты приложений Intune. Это происходит каждые 6–8 недель в репозитории GitHub для средства упаковки приложений Microsoft Intune для Android.
Ниже приведены некоторые рекомендации по перезаписи.
- Обслуживание сертификатов подписи, используемых в процессе сборки, см. в статье Повторное использование сертификатов подписи и упаковка приложений.
Установка средства упаковки приложений
Из репозитория GitHub скачайте файл установки InstallAWT.exe средства упаковки приложений Intune для Android на компьютер Windows. Откройте файл установки.
Примите лицензионное соглашение, а затем завершите установку.
Обратите внимание на папку, в которую установлено средство. Расположение по умолчанию: C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool.
Запуск средства упаковки приложений
Важно!
Intune регулярно выпускает обновления для средства упаковки приложений Intune. Регулярно проверяйте средство упаковки приложений Intune для Android на наличие обновлений и включайте их в цикл выпуска программного обеспечения, чтобы убедиться, что приложения поддерживают последние параметры политики защиты приложений.
На компьютере с Windows, где установлено средство упаковки приложений, откройте окно PowerShell.
Из папки, в которой установлено средство, импортируйте модуль PowerShell Средства упаковки приложений:
Import-Module .\IntuneAppWrappingTool.psm1
Запустите средство с помощью команды invoke-AppWrappingTool , которая имеет следующий синтаксис использования:
Invoke-AppWrappingTool [-InputPath] <String> [-OutputPath] <String> [<CommonParameters>]
В следующей таблице описаны свойства команды invoke-AppWrappingTool :
Property | Сведения |
---|---|
-InputPath<Струна> | Путь к исходному приложению Android (.apk). |
-OutputPath<Струна> | Путь к выходному приложению Android. Если это тот же путь к каталогу, что и InputPath, упаковка завершится ошибкой. |
<Общие параметры> | (Необязательно) Команда поддерживает общие параметры PowerShell, такие как подробные параметры и отладка. |
Список распространенных параметров см. в Центре сценариев Майкрософт.
Чтобы просмотреть подробные сведения об использовании средства, введите команду:
Help Invoke-AppWrappingTool
Пример:
Импортируйте модуль PowerShell.
Import-Module "C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool\IntuneAppWrappingTool.psm1"
Запустите средство упаковки приложений в собственном HelloWorld.apk приложения.
invoke-AppWrappingTool -InputPath .\app\HelloWorld.apk -OutputPath .\app_wrapped\HelloWorld_wrapped.apk -Verbose
Упаковаемое приложение и файл журнала создаются и сохраняются в указанном пути вывода.
Повторное использовать сертификаты подписи и оболочку приложений
Для установки на устройствах Android все приложения должны быть подписаны действительным сертификатом.
Упакованные приложения можно подписывать после упаковки с помощью существующих средств подписывания (все сведения для подписывания в приложении перед упаковкой удаляются). Если это возможно, сведения о подписи, которые уже использовались в процессе сборки, должны использоваться во время упаковки. В некоторых организациях для этого может потребоваться работа с тем, кто владеет информацией о хранилище ключей (например, с командой по сборке приложений).
Если предыдущий сертификат подписи не удается использовать или приложение не было развернуто ранее, вы можете создать новый сертификат подписи, следуя инструкциям в руководстве разработчика для Android.
Если приложение было развернуто ранее с другим сертификатом подписи, его нельзя отправить в Intune после обновления. Сценарии обновления приложений будут нарушены, если ваше приложение подписано с помощью сертификата, отличного от того, который создается приложением. Таким образом, все новые сертификаты подписи должны поддерживаться для обновлений приложений.
Вопросы безопасности при запуске средства упаковки приложений
Чтобы предотвратить потенциальный подделывание, раскрытие информации и атаки на повышение привилегий, выполните следующие действия.
Убедитесь, что входное бизнес-приложение (LOB) и выходное приложение находятся на том же компьютере Windows, где запущено средство упаковки приложений.
Импортируйте выходное приложение в Intune на том же компьютере, где запущено средство. Дополнительные сведения о keytool Java см. в разделе Keytool .
Если выходное приложение и средство находятся по пути универсального соглашения об именовании (UNC) и вы не запускаете средство и входные файлы на одном компьютере, настройте среду для обеспечения безопасности с помощью протокола IPsec или протокола SMB.
Убедитесь, что приложение поступает из надежного источника.
Защитите выходной каталог с упакованным приложением. Рассмотрите возможность использования каталога уровня пользователя для выходных данных.
Преобразование пакета приложений Android (AAB) в APK
Средство упаковки приложений Intune в настоящее время поддерживает только входные данные APK. Пакеты приложений Android сначала должны быть преобразованы в APK для использования с инструментом.
Пакет приложений Android можно преобразовать в APK с помощью программы командной строки Google . bundletool
Последнюю версию bundle-tool
можно скачать из репозитория GitHub bundletool от Google.
bundletool
Можно использовать для создания одного универсального пакета APK для использования со средством упаковки приложений Intune с помощью следующей команды:
bundletool build-apks --bundle=input.aab --mode=universal --output=input.apks
Выходной .apks
файл представляет собой ZIP-архив, содержащий один универсальный APK-файл. Распакуйте архив и используйте apk-файл в качестве входных данных в средство упаковки приложений Intune.