Przygotowywanie aplikacji systemu Android do zasad ochrony aplikacji za pomocą narzędzia opakowującego aplikacje usługi Intune
Użyj narzędzia opakowującego aplikacje usługi Microsoft Intune dla systemu Android, aby zmienić zachowanie wewnętrznych aplikacji systemu Android, ograniczając funkcje aplikacji bez zmiany kodu samej aplikacji.
To narzędzie jest aplikacją wiersza polecenia systemu Windows, która działa w programie PowerShell i tworzy otokę wokół aplikacji systemu Android. Po opakowaniu aplikacji można zmienić funkcjonalność aplikacji, konfigurując zasady zarządzania aplikacjami mobilnymi w usłudze Intune.
Przed uruchomieniem narzędzia zapoznaj się z zagadnieniami dotyczącymi zabezpieczeń dotyczącymi uruchamiania narzędzia opakowującego aplikacje. Aby pobrać to narzędzie, przejdź do narzędzia opakowującego aplikacje usługi Microsoft Intune dla systemu Android w witrynie GitHub.
Uwaga
Jeśli masz problemy z używaniem narzędzia opakowującego aplikacje usługi Intune z aplikacjami, prześlij wniosek o pomoc w usłudze GitHub.
Spełnienie wymagań wstępnych dotyczących korzystania z narzędzia opakowującego aplikacje
Aplikacja musi używać aktualnych bibliotek
Aplikacja musi być zgodna z wymaganiami sklepu Google Play
Jeśli aplikacja jest złożona, musi zostać zintegrowana z zestawem SDK aplikacji usługi Intune dla systemu Android
Narzędzie opakowujące aplikacje należy uruchomić na komputerze z systemem Windows 10 lub nowszym.
Aplikacja wejściowa musi być prawidłowym pakietem aplikacji systemu Android z rozszerzeniem pliku .apk i:
- Nie można go zaszyfrować.
- Nie może być wcześniej opakowane przez narzędzie opakowujące aplikacje usługi Intune.
- Musi być napisany dla systemu Android 9.0 lub nowszego.
Uwaga
Jeśli twoja aplikacja wejściowa jest pakietem aplikacji dla systemu Android (aab), przed użyciem narzędzia opakowującego aplikacje usługi Intune należy przekonwertować ją na pakiet APK. Aby uzyskać szczegółowe informacje, zobacz Konwertowanie pakietu aplikacji systemu Android (AAB) na pakiet APK. Od sierpnia 2021 r. nowe aplikacje prywatne nadal mogą być publikowane w Sklepie Google Play jako zestawy APK.
Aplikacja musi być opracowana przez firmę lub dla twojej firmy. Tego narzędzia nie można używać w aplikacjach dostępnych w sklepie Google Play. Obejmuje to pobieranie lub uzyskiwanie aplikacji ze Sklepu Google Play.
Aby uruchomić narzędzie opakowujące aplikacje, należy zainstalować najnowszą wersję środowiska uruchomieniowego Java, a następnie upewnić się, że zmienna ścieżki Języka Java została ustawiona na C:\ProgramData\Oracle\Java\javapath w zmiennych środowiskowych systemu Windows. Aby uzyskać więcej pomocy, zobacz dokumentację języka Java.
Uwaga
W niektórych przypadkach 32-bitowa wersja języka Java może powodować problemy z pamięcią. Dobrym pomysłem jest zainstalowanie wersji 64-bitowej.
System Android wymaga podpisania wszystkich pakietów aplikacji (.apk). Aby ponownie użyć istniejących certyfikatów i ogólnych wskazówek dotyczących certyfikatów podpisywania, zobacz Ponowne używanie certyfikatów podpisywania i opakowywanie aplikacji. Po opakowania pliku .apk przy użyciu narzędzia opakowującego aplikacje usługi Intune zaleca się użycie dostarczonego przez firmę Google narzędzia Apksigner. Zapewni to, że po przejściu aplikacji na urządzenia użytkowników końcowych będzie ona mogła zostać prawidłowo uruchomiona zgodnie ze standardami systemu Android.
(Opcjonalnie) Czasami aplikacja może osiągnąć limit rozmiaru pliku wykonywalnego Dalvik (DEX) ze względu na klasy zestawu SDK mam usługi Intune dodawane podczas opakowywania. Pliki DEX są częścią kompilacji aplikacji systemu Android. Narzędzie opakowujące aplikacje usługi Intune automatycznie obsługuje przepełnienie pliku DEX podczas opakowywania aplikacji z minimalnym poziomem interfejsu API wynoszącym 21 lub wyższym (od wersji 1.0.2501.1). W przypadku aplikacji z minimalnym poziomem interfejsu API wynoszącym < 21 najlepszym rozwiązaniem byłoby zwiększenie minimalnego poziomu interfejsu API przy użyciu flagi otoki
-UseMinAPILevelForNativeMultiDex
. W przypadku klientów, którzy nie mogą zwiększyć minimalnego poziomu interfejsu API aplikacji, dostępne są następujące obejścia przepełnienia DEX. W niektórych organizacjach może to wymagać współpracy z osobami, które kompilują aplikację (tj. zespół ds. kompilacji aplikacji):- Użyj narzędzia ProGuard, aby wyeliminować nieużywane odwołania do klas z podstawowego pliku DEX aplikacji.
- W przypadku klientów korzystających z wersji 3.1.0 lub nowszej wtyczki Android Gradle wyłącz dexer D8.
Jak często należy ponownie pakować aplikację systemu Android za pomocą narzędzia opakowującego aplikacje usługi Intune?
Główne scenariusze, w których należy ponownie tworzyć aplikacje, są następujące:
Sama aplikacja wydała nową wersję. Poprzednia wersja aplikacji została opakowana i przekazana do centrum administracyjnego usługi Microsoft Intune.
Narzędzie opakowujące aplikacje usługi Intune dla systemu Android wydało nową wersję, która włącza kluczowe poprawki błędów lub nowe, określone funkcje zasad ochrony aplikacji usługi Intune. Dzieje się tak co 6–8 tygodni w repozytorium GitHub dla narzędzia opakowującego aplikacje usługi Microsoft Intune dla systemu Android.
Oto kilka najlepszych rozwiązań dotyczących ponownego zapisywania:
- Obsługa certyfikatów podpisywania używanych podczas procesu kompilacji, zobacz Ponowne używanie certyfikatów podpisywania i opakowywanie aplikacji
Instalowanie narzędzia opakowującego aplikacje
Z repozytorium GitHub pobierz plik instalacyjny InstallAWT.exe narzędzia opakowującego aplikacje usługi Intune dla systemu Android na komputer z systemem Windows. Otwórz plik instalacyjny.
Zaakceptuj umowę licencyjną, a następnie zakończ instalację.
Zanotuj folder, w którym zainstalowano narzędzie. Lokalizacja domyślna to: C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool.
Uruchamianie narzędzia opakowującego aplikacje
Ważna
Usługa Intune regularnie publikuje aktualizacje narzędzia opakowującego aplikacje usługi Intune. Regularnie sprawdzaj narzędzie opakowujące aplikacje usługi Intune dla systemu Android pod kątem aktualizacji i dołączaj je do cyklu tworzenia oprogramowania, aby upewnić się, że aplikacje obsługują najnowsze ustawienia zasad ochrony aplikacji.
Na komputerze z systemem Windows, na którym zainstalowano narzędzie opakowujące aplikacje, otwórz okno programu PowerShell.
Z folderu, w którym zainstalowano narzędzie, zaimportuj moduł PowerShell narzędzia opakowującego aplikacje:
Import-Module .\IntuneAppWrappingTool.psm1
Uruchom narzędzie przy użyciu polecenia invoke-AppWrappingTool , które ma następującą składnię użycia:
Invoke-AppWrappingTool [-InputPath] <String> [-OutputPath] <String> [<CommonParameters>]
W poniższej tabeli szczegółowo opisano właściwości polecenia invoke-AppWrappingTool :
Własność | Informacja |
---|---|
-InputPath<Struna> | Ścieżka źródłowej aplikacji systemu Android (.apk). |
-OutputPath<Struna> | Ścieżka do wyjściowej aplikacji systemu Android. Jeśli jest to ta sama ścieżka katalogu co inputpath, pakowanie zakończy się niepowodzeniem. |
<CommonParameters> | (Opcjonalnie) Polecenie obsługuje typowe parametry programu PowerShell, takie jak pełne i debugowanie. |
Aby uzyskać listę typowych parametrów, zobacz Centrum skryptów firmy Microsoft.
Aby wyświetlić szczegółowe informacje o użyciu narzędzia, wprowadź polecenie:
Help Invoke-AppWrappingTool
Przykład:
Zaimportuj moduł programu PowerShell.
Import-Module "C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool\IntuneAppWrappingTool.psm1"
Uruchom narzędzie opakowujące aplikacje w aplikacji natywnej HelloWorld.apk.
invoke-AppWrappingTool -InputPath .\app\HelloWorld.apk -OutputPath .\app_wrapped\HelloWorld_wrapped.apk -Verbose
Opakowana aplikacja i plik dziennika są generowane i zapisywane w określonej ścieżce wyjściowej.
Ponowne używanie certyfikatów podpisywania i opakowywanie aplikacji
System Android wymaga, aby wszystkie aplikacje były podpisane prawidłowym certyfikatem, aby można je było zainstalować na urządzeniach z systemem Android.
Opakowane aplikacje można podpisywać po zawijaniu przy użyciu istniejących narzędzi do podpisywania (wszelkie informacje dotyczące podpisywania w aplikacji przed odrzuceniem zawijania). Jeśli to możliwe, informacje dotyczące podpisywania, które były już używane podczas procesu kompilacji, powinny być używane podczas opakowywania. W niektórych organizacjach może to wymagać współpracy z osobami, które są właścicielami informacji magazynu kluczy (tj. zespołem kompilacji aplikacji).
Jeśli nie można użyć poprzedniego certyfikatu podpisywania lub aplikacja nie została wcześniej wdrożona, możesz utworzyć nowy certyfikat podpisywania, postępując zgodnie z instrukcjami w Przewodniku dla deweloperów systemu Android.
Jeśli aplikacja została wdrożona wcześniej z innym certyfikatem podpisywania, nie można przekazać aplikacji do usługi Intune po uaktualnieniu. Scenariusze uaktualniania aplikacji zostaną przerwane, jeśli aplikacja zostanie podpisana przy użyciu innego certyfikatu niż ten, za pomocą który jest kompilowany przez aplikację. W związku z tym wszelkie nowe certyfikaty podpisywania powinny być utrzymywane na potrzeby uaktualnień aplikacji.
Zagadnienia dotyczące zabezpieczeń związane z uruchamianiem narzędzia opakowującego aplikacje
Aby zapobiec potencjalnym fałszowaniu, ujawnieniu informacji i atakom na podniesienie uprawnień:
Upewnij się, że wejściowa aplikacja biznesowa (LOB) i aplikacja wyjściowa znajdują się na tym samym komputerze z systemem Windows, na którym działa narzędzie opakowujące aplikacje.
Zaimportuj aplikację wyjściową do usługi Intune na tym samym komputerze, na którym działa narzędzie. Zobacz keytool, aby uzyskać więcej informacji na temat narzędzia java keytool.
Jeśli aplikacja wyjściowa i narzędzie znajdują się w ścieżce uniwersalnej konwencji nazewnictwa (UNC), a narzędzie i pliki wejściowe nie są uruchamiane na tym samym komputerze, skonfiguruj środowisko tak, aby było bezpieczne przy użyciu protokołu Internet Protocol Security (IPsec) lub podpisywania bloku komunikatów serwera (SMB).
Upewnij się, że aplikacja pochodzi z zaufanego źródła.
Zabezpiecz katalog wyjściowy z opakowaną aplikacją. Rozważ użycie katalogu na poziomie użytkownika dla danych wyjściowych.
Konwertowanie pakietu aplikacji systemu Android (AAB) na pakiet APK
Narzędzie opakowujące aplikacje usługi Intune obecnie obsługuje tylko dane wejściowe APK. Pakiety aplikacji systemu Android należy najpierw przekonwertować na pakiet APK do użycia z narzędziem.
Pakiet aplikacji systemu Android można przekonwertować na pakiet APK przy użyciu narzędzia wiersza polecenia firmy Google . bundletool
Najnowszą bundle-tool
wersję programu można pobrać z repozytorium GitHub bundletool firmy Google.
bundletool
Może służyć do tworzenia pojedynczego uniwersalnego zestawu APK do użycia z narzędziem opakowującego aplikacje usługi Intune przy użyciu następującego polecenia:
bundletool build-apks --bundle=input.aab --mode=universal --output=input.apks
Plik wyjściowy .apks
jest archiwum ZIP zawierającym jeden uniwersalny plik APK. Rozpakuj archiwum i użyj tego pliku APK jako danych wejściowych narzędzia opakowującego aplikacje usługi Intune.