Подготовка приложений Android к использованию политик защиты приложений с помощью Intune App Wrapping Tool

Используйте Microsoft Intune App Wrapping Tool для Android, чтобы изменить поведение собственных приложений для Android, ограничив функции приложения без изменения кода самого приложения.

Это средство представляет собой приложение командной строки Windows, которое запускается в PowerShell и создает оболочку вокруг приложения Android. После упаковки приложения его функциональность можно изменить, настроив политики управления мобильными приложениями в Intune.

Перед запуском средства ознакомьтесь с соображениями безопасности для запуска App Wrapping Tool. Чтобы скачать средство, перейдите в Microsoft Intune App Wrapping Tool для Android на сайте GitHub.

Примечание.

Если у вас возникли проблемы с использованием Intune App Wrapping Tool с приложениями, отправьте запрос на помощь в GitHub.

Необходимые условия для использования App Wrapping Tool

  • Ваше приложение должно использовать актуальные библиотеки

  • Ваше приложение должно соответствовать требованиям Google Play

  • Если ваше приложение сложное, его необходимо интегрировать с пакетом SDK приложения Intune для Android

  • Необходимо запустить средство App Wrapping Tool на компьютере под управлением Windows 10 или более поздней версии.

  • Приложение ввода должно быть действительным пакетом приложений Android с расширением файла .apk и:

    • Его невозможно зашифровать.
    • Он не должен быть ранее обернутым Intune App Wrapping Tool.
    • Он должен быть написан для Android 9.0 или более поздней версии.

    Примечание.

    Если вы используете набор приложений для ввода Android (AAB), то перед использованием Intune App Wrapping Tool его необходимо преобразовать в пакет APK. Дополнительные сведения см. в статье Преобразование пакета приложений для Android (AAB) в APK. По состоянию на август 2021 года новые частные приложения по-прежнему можно публиковать в Google Play Store в виде APK.

  • Приложение должно быть разработано вашей компанией или для нее. Вы не можете использовать этот инструмент для приложений, доступных в Google Play Маркет. Это включает в себя скачивание или получение приложения из Google Play Маркета.

  • Чтобы запустить средство App Wrapping Tool, необходимо установить последнюю версию среды выполнения Java, а затем убедиться, что переменной пути Java присвоено значение C:\ProgramData\Oracle\Java\javapath в переменных среды Windows. Дополнительные сведения см. в документации по Java.

    Примечание.

    В некоторых случаях 32-разрядная версия Java может привести к проблемам с памятью. Рекомендуется установить 64-разрядную версию.

  • Для Android требуется, чтобы все пакеты приложений (.apk) были подписаны. Повторное использование существующих сертификатов и общее руководство по сертификации сертификатов подписи см. в статье Повторное использование сертификатов подписи и приложений-оберток. После того, как вы обернули файл .apk с помощью Intune App Wrapping Tool, рекомендуется использовать предоставленный Google инструмент Apksigner. Это гарантирует, что после того, как ваше приложение попадет на устройства конечных пользователей, оно может быть запущено должным образом по стандартам Android.

  • (Необязательно) Иногда приложение может достичь предельного размера исполняемого файла Dalvik (DEX) из-за классов SDK MAM Intune, добавленных во время упаковки. DEX-файлы являются частью компиляции приложения Android. Intune App Wrapping Tool автоматически обрабатывает переполнение файла DEX во время упаковки для приложений с минимальным уровнем API 21 или выше (по состоянию на версию 1.0.2501.1). Для приложений с минимальным уровнем < API 21 рекомендуется увеличить минимальный уровень API с помощью флага -UseMinAPILevelForNativeMultiDex оболочки. Для клиентов, которые не могут повысить минимальный уровень API приложения, доступны следующие временные решения для переполнения DEX. В некоторых организациях для этого может потребоваться работа с тем, кто компилирует приложение (например, с командой сборщиков приложений):

    • Используйте ProGuard для удаления неиспользуемых ссылок на классы из основного DEX-файла приложения.
    • Для клиентов, использующих версию 3.1.0 или более позднюю версию плагина Android Gradle, отключите дексер D8.

Как часто следует менять упаковку приложения Android с помощью Intune App Wrapping Tool?

Основные сценарии, в которых необходимо выполнить переоболочку приложений, следующие:

  • Само приложение выпустило новую версию. Предыдущая версия приложения была упакована и отправлена в Центр администрирования Microsoft Intune.

  • Выпущена новая версия Intune App Wrapping Tool для Android, в которой реализованы основные исправления ошибок или новые функции политики защиты приложений Intune. Это происходит каждые 6–8 недель через репозиторий GitHub для Microsoft Intune App Wrapping Tool для Android.

Ниже приведены некоторые рекомендации по переносу упаковки.

Установка App Wrapping Tool

  1. Из репозитория GitHub загрузите файл установки InstallAWT.exe Intune App Wrapping Tool для Android на компьютер с Windows. Откройте файл установки.

  2. Примите условия лицензионного соглашения, а затем завершите установку.

Запомните папку, в которую вы установили средство. Расположение по умолчанию: C:\Program Files (x86)\Microsoft Intune Mobile App Management\Android\App Wrapping Tool.

Запустите средство App Wrapping Tool

Важно!

Intune регулярно выпускает обновления для Intune App Wrapping Tool. Регулярно проверка Intune App Wrapping Tool для Android на наличие обновлений и включайте в цикл выпуска разработки программного обеспечения, чтобы обеспечить поддержку вашими приложениями последних параметров политики защиты приложений.

  1. На компьютере с Windows, где установлено средство App Wrapping Tool, откройте окно PowerShell.

  2. Из папки, в которой вы установили средство, импортируйте модуль PowerShell App Wrapping Tool:

    Import-Module .\IntuneAppWrappingTool.psm1
    
  3. Запустите средство с помощью команды invoke-AppWrappingTool со следующим синтаксисом использования:

    Invoke-AppWrappingTool [-InputPath] <String> [-OutputPath] <String> [<CommonParameters>]
    

    В следующей таблице подробно описаны свойства команды invoke-AppWrappingTool .

Property Сведения
-InputPath<Строка> Путь к исходному приложению Android (.apk).
-OutputPath<Строка> Путь к выходному приложению Android. Если это тот же путь к каталогу, что и у InputPath, упаковка завершится сбоем.
<Общие параметры> (Необязательно) Эта команда поддерживает общие параметры PowerShell, такие как verbose и debug.
  • Список распространенных параметров см. в Центре сценариев (Майкрософт).

  • Чтобы просмотреть подробные сведения об использовании средства, введите команду:

    Help Invoke-AppWrappingTool
    

Пример:

Импортируйте модуль PowerShell.

Import-Module "C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool\IntuneAppWrappingTool.psm1"

Запустите App Wrapping Tool в родном приложении HelloWorld.apk.

invoke-AppWrappingTool -InputPath .\app\HelloWorld.apk -OutputPath .\app_wrapped\HelloWorld_wrapped.apk -Verbose

Упакованное приложение и файл журнала создаются и сохраняются в указанном вами пути вывода.

Повторное использование подписи сертификатов и приложений-упаковок

В Android требуется, чтобы все приложения были подписаны действительным сертификатом для установки на устройствах Android.

Упакованные приложения можно подписать после упаковки с помощью существующих средств подписывания (любые сведения о подписи в приложении до упаковки удаляются). По возможности при упаковке следует использовать сведения о подписи, которые уже использовались в процессе сборки. В некоторых организациях для этого может потребоваться взаимодействие с лицом, владеющим сведениями о хранилище ключей (например, с командой по сборке приложений).

Если невозможно использовать предыдущий сертификат подписи или приложение не было развернуто ранее, вы можете создать новый сертификат подписи, следуя инструкциям в руководстве разработчика для Android.

Если приложение было развернуто ранее с другим сертификатом подписи, его нельзя отправить в Intune после обновления. Сценарии обновления приложений будут неработоспособными, если приложение подписано с помощью сертификата, отличного от того, с помощью которого создано приложение. Поэтому все новые сертификаты подписи следует сохранять для обновлений приложений.

Рекомендации по обеспечению безопасности при использовании средства App Wrapping Tool

Чтобы предотвратить потенциальный спуфинг, раскрытие информации и атаки с целью повышения привилегий, выполните следующие действия.

  • Убедитесь, что бизнес-приложение ввода (LOB) и приложение вывода находятся на том же компьютере с Windows, на котором запущено средство App Wrapping Tool.

  • Импортируйте приложение вывода в Intune на том же компьютере, на котором запущен инструмент. Дополнительные сведения о Java keytool см. в keytool .

  • Если выходное приложение и средство находятся по пути универсальной конвенции имен (UNC) и вы не запускаете средство и входные файлы на одном компьютере, настройте безопасность среды с помощью подписи протокола IPSec или подписи SMB.

  • Убедитесь, что приложение поступает из надежного источника.

  • Защитите выходной каталог с упакованным приложением. Рассмотрите возможность использования каталога уровня пользователя для выходных данных.

Преобразовать пакет приложений для Android (AAB) в APK

В настоящее время Intune App Wrapping Tool поддерживает только ввод APK. Для использования с этим инструментом пакеты приложений для Android нужно сначала преобразовать в пакет APK.

Набор приложений для Android можно преобразовать в APK-файл bundletoolс помощью программы командной строки Google . Последнюю версию bundle-tool можно загрузить из репозитория GitHub bundletool от Google.

bundletoolможно использовать для создания одного универсального пакета APK для использования с Intune App Wrapping Tool с помощью следующей команды:

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

Выходной .apks файл представляет собой ZIP-архив, содержащий один универсальный APK-файл. Распакуйте архив и используйте его в качестве входных данных для Intune App Wrapping Tool.

См. также