Příprava aplikací pro Android na zásady ochrany aplikací pomocí nástroje Intune App Wrapping ToolPrepare Android apps for app protection policies with the Intune App Wrapping Tool

Pokud chcete změnit chování interních aplikací pro Android tím, že omezíte jejich funkce – beze změny samotného kódu aplikace – použijte nástroj Microsoft Intune App Wrapping Tool for Android.Use the Microsoft Intune App Wrapping Tool for Android to change the behavior of your in-house Android apps by restricting features of the app without changing the code of the app itself.

Jde o nástroj příkazového řádku Windows, který běží v PowerShellu a který vytvoří okolo vaší aplikace pro Android obálku.The tool is a Windows command-line application that runs in PowerShell and creates a wrapper around your Android app. Po zabalení aplikace můžete změnit její funkce nakonfigurováním zásad správy mobilní aplikace v Intune.After the app is wrapped, you can change the app’s functionality by configuring mobile application management policies in Intune.

Před spuštěním nástroje si přečtěte část Důležité informace o zabezpečení při spuštění nástroje App Wrapping Tool.Before running the tool, review Security considerations for running the App Wrapping Tool. Nástroj si můžete stáhnout ze stránky Microsoft Intune App Wrapping Tool for Android na GitHubu.To download the tool, go to the Microsoft Intune App Wrapping Tool for Android on GitHub.

Splnění požadavků na používání nástroje App Wrapping ToolFulfill the prerequisites for using the App Wrapping Tool

  • Nástroj App Wrapping Tool je možné spustit na počítači se systémem Windows 7 nebo novějším.You must run the App Wrapping Tool on a Windows computer running Windows 7 or later.

  • Vstupní aplikace musí být platný balíček aplikace pro Android, který má příponu souboru .apk a splňuje následující požadavky:Your input app must be a valid Android application package with the file extension .apk and:

    • Nesmí být zašifrovaný.It cannot be encrypted.
    • Nesmí být už jednou zabalený nástrojem Intune App Wrapping Tool.It must not have previously been wrapped by the Intune App Wrapping Tool.
    • Musí být napsaný pro systém Android 4.0 nebo novější.It must be written for Android 4.0 or later.
  • Aplikaci musí vyvinout vaše společnost nebo je tato aplikace vyvinuta pro ni.The app must be developed by or for your company. Tento nástroj se nedá používat u aplikací stažených z obchodu Google Play.You cannot use this tool on apps downloaded from the Google Play Store.

  • Pokud chcete nástroj App Wrapping Tool spustit, musíte mít nainstalovanou nejnovější verzi prostředí Java Runtime. Potom zkontrolujte, jestli je proměnná cesty Java v proměnných prostředí Windows nastavená na C:\ProgramData\Oracle\Java\javapath.To run the App Wrapping Tool, you must install the latest version of the Java Runtime Environment and then ensure that the Java path variable has been set to C:\ProgramData\Oracle\Java\javapath in your Windows environment variables. Další nápovědu najdete v dokumentaci k Javě.For more help, see the Java documentation.

    Poznámka

    V některých případech může 32bitová verze Javy způsobit potíže s pamětí.In some cases, the 32-bit version of Java may result in memory issues. Proto je vhodné nainstalovat 64bitovou verzi.It's a good idea to install the 64-bit version.

  • Android vyžaduje, aby byly všechny balíčky aplikací (.apk) podepsané.Android requires all app packages (.apk) to be signed. Informace o opětovném použití existujících certifikátů a celkové pokyny k podpisovým certifikátům najdete v tématu Opětovné použití podpisových certifikátů a balení aplikací.For reusing existing certificates and overall signing certificate guidance, see Reusing signing certificates and wrapping apps. Ke generování nových přihlašovacích údajů potřebných k podpisu zabalené výstupní aplikace se používá spustitelný soubor Java keytool.exe.The Java executable keytool.exe is used to generate new credentials needed to sign the wrapped output app. Nastavená hesla musí být bezpečná, ale nezapomeňte si je poznamenat, protože je budete potřebovat ke spuštění nástroje App Wrapping Tool.Any passwords that are set must be secure, but make a note of them because they're needed to run the App Wrapping Tool.

    Poznámka

    Nástroj Intune App Wrapping Tool nepodporuje pro podepisování aplikací podpisová schémata v2 a nadcházející v3 od Googlu.The Intune App Wrapping Tool does not support Google's v2 and upcoming v3 signature schemes for app signing. Po zabalení souboru .apk pomocí nástroje Intune App Wrapping Tool se doporučuje použít nástroj Apksigner od Googlu.After you have wrapped the .apk file using the Intune App Wrapping Tool, the recommendation is to use Google's provided Apksigner tool. Tím se zajistí, že když se vaše aplikace dostane na zařízení koncových uživatelů, bude ji možné spustit správně podle standardů Androidu.This will ensure that once your app gets to end user devices, it can be launched properly by Android standards.

  • (Volitelné) Někdy aplikace narazit na omezení velikosti Dalvik Executable (DEX) z důvodu tříd sady Intune MAM SDK, které se přidávají během zabalení.(Optional) Sometimes an app may hit the Dalvik Executable (DEX) size limit due to the Intune MAM SDK classes that are added during wrapping. Soubory DEX jsou součástí kompilace aplikace pro Android.DEX files are a part of the compilation of an Android app. Intune App Wrapping Tool automaticky zpracovává během zabalení pro aplikace pomocí rozhraní API pro minimální úrovně 21 nebo vyšší přetečení souboru DEX (počínaje verzí v. 1.0.2501.1).The Intune App Wrapping Tool automatically handles DEX file overflow during wrapping for apps with a min API level of 21 or higher (as of v. 1.0.2501.1). U aplikací s minimální úroveň rozhraní API < 21, doporučujeme je ke zvýšení minimální úroveň rozhraní API pomocí Obálka -UseMinAPILevelForNativeMultiDex příznak.For apps with a min API level of < 21, best practice would be to increase the min API level using the wrapper's -UseMinAPILevelForNativeMultiDex flag. Pro zákazníky, kteří nelze zvýšit minimální úroveň rozhraní API aplikace jsou k dispozici následujících náhradních postupů DEX přetečení.For customers unable to increase the app’s minimum API level, the following DEX overflow workarounds are available. V některých organizacích to může vyžadovat spolupráci s těmi kompilují aplikaci (tj. team build aplikace):In certain organizations, this may require working with whoever compiles the app (ie. the app build team):

  • Chcete-li odstranit odkazy na nevyužité třídy ze souboru DEX primární aplikace pomocí ProGuard.Use ProGuard to eliminate unused class references from the app’s primary DEX file.
  • Pro zákazníky, kteří používají v3.1.0 nebo vyšší modul plug-in Android Gradle, zakažte D8 dexer.For customers using v3.1.0 or higher of the Android Gradle plugin, disable the D8 dexer.

Instalace nástroje App Wrapping ToolInstall the App Wrapping Tool

  1. Z úložiště GitHubu si do počítače s Windows stáhněte instalační soubor InstallAWT.exe nástroje Intune App Wrapping Tool for Android.From the GitHub repository, download the installation file InstallAWT.exe for the Intune App Wrapping Tool for Android to a Windows computer. Otevřete instalační soubor.Open the installation file.

  2. Přijměte licenční smlouvu a dokončete instalaci.Accept the license agreement, then finish the installation.

Poznamenejte si složku, do které jste nainstalovali nástroj.Note the folder to which you installed the tool. Výchozí umístění je: C:\Program soubory (x86) \Microsoft Intune Mobile Application Management\Android\App nástroj pro zabalení.The default location is: C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool.

Spuštění nástroje App Wrapping ToolRun the App Wrapping Tool

  1. Na počítači s Windows, na který jste nainstalovali nástroj App Wrapping Tool, otevřete okno PowerShell.On the Windows computer where you installed the App Wrapping Tool, open a PowerShell window.

  2. Ze složky, do které jste nástroj nainstalovali, naimportujte modul PowerShell nástroje App Wrapping Tool:From the folder where you installed the tool, import the App Wrapping Tool PowerShell module:

    Import-Module .\IntuneAppWrappingTool.psm1
    
  3. Spusťte nástroj příkazem invoke-AppWrappingTool, který má následující syntaxi použití:Run the tool by using the invoke-AppWrappingTool command, which has the following usage syntax:

    Invoke-AppWrappingTool [-InputPath] <String> [-OutputPath] <String> -KeyStorePath <String> -KeyStorePassword <SecureString>
    -KeyAlias <String> -KeyPassword <SecureString> [-SigAlg <String>] [<CommonParameters>]
    

    Podrobný popis vlastností příkazu invoke-AppWrappingTool uvádí následující tabulka:The following table details the properties of the invoke-AppWrappingTool command:

VlastnostProperty InformaceInformation PříkladExample
-InputPath<String>-InputPath<String> Cesta ke zdrojové aplikaci pro Android (.apk).Path of the source Android app (.apk).
-OutputPath<String>-OutputPath<String> Cesta k výstupní aplikaci pro Android.Path to the output Android app. Když je to cesta ke stejnému adresáři jako InputPath, vytváření balíčků selže.If this is the same directory path as InputPath, the packaging will fail.
-KeyStorePath<String>-KeyStorePath<String> Cesta k souboru v úložišti klíčů s dvojicí veřejného a privátního klíče, které se používají k podpisu.Path to the keystore file that has the public/private key pair for signing. Ve výchozím nastavení jsou soubory v úložišti klíčů uložené ve složce „C:\Program Files (x86)\Java\jreX.X.X_XX\bin“.By default, keystore files are stored in "C:\Program Files (x86)\Java\jreX.X.X_XX\bin."
-KeyStorePassword<SecureString>-KeyStorePassword<SecureString> Heslo použité k dešifrování úložiště klíčů.Password used to decrypt the keystore. Android vyžaduje, aby všechny balíčky aplikace (.apk) byly podepsané.Android requires all application packages (.apk) to be signed. Ke generování hesla k úložišti klíčů (parametr KeyStorePassword) použijte nástroj Java keytool.Use Java keytool to generate the KeyStorePassword. Další informace o úložišti klíčů Java si můžete přečíst tady.Read more about Java KeyStore here.
-KeyAlias<String>-KeyAlias<String> Název klíče, který se má použít pro podepisování.Name of the key to be used for signing.
-KeyPassword<SecureString>-KeyPassword<SecureString> Heslo použité k dešifrování privátního klíče, který se použije pro podepisování.Password used to decrypt the private key that will be used for signing.
-SigAlg<SecureString>-SigAlg<SecureString> (Volitelně) Název podpisového algoritmu, který se má použít k podepsání.(Optional) The name of the signature algorithm to be used for signing. Algoritmus musí být kompatibilní s privátním klíčem.The algorithm must be compatible with the private key. Příklady: SHA256withRSA, SHA1withRSAExamples: SHA256withRSA, SHA1withRSA
-UseMinAPILevelForNativeMultiDex-UseMinAPILevelForNativeMultiDex (Volitelné) Pomocí tohoto příznaku zvýšit zdrojové aplikaci pro Android na minimální úroveň rozhraní API 21.(Optional) Use this flag to increase the source Android app’s minimum API level to 21. Tento příznak bude výzvu k potvrzení, protože se omezit, kdo může tuto aplikaci nainstalovat.This flag will prompt for confirmation as it will limit who may install this app. Uživatelům můžete přeskočit potvrzovací dialogové okno přidáním parametru "-potvrzení: $false" na jejich příkaz prostředí PowerShell.Users can skip the confirmation dialog by appending the parameter “-Confirm:$false” to their PowerShell command. Příznak by měla sloužit pouze zákazníci v aplikacích s minimální rozhraní API < 21, které selhaly z důvodu chyb přetečení DEX zabalit úspěšně.The flag should only be used by customers on apps with min API < 21 that fail to wrap successfully due to DEX overflow errors.
<CommonParameters><CommonParameters> (Volitelně) Příkaz podporuje běžné parametry PowerShellu, jako je verbose a debug.(Optional) The command supports common PowerShell parameters like verbose and debug.
  • Seznam společných parametrů najdete v Centru skriptů Microsoftu.For a list of common parameters, see the Microsoft Script Center.

  • Pokud chcete zobrazit podrobné informace o použití tohoto nástroje, zadejte tento příkaz:To see detailed usage information for the tool, enter the command:

    Help Invoke-AppWrappingTool
    

Příklad:Example:

Naimportujte modul PowerShellu.Import the PowerShell module.

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

Spusťte nástroj App Wrapping Tool na nativní aplikaci HelloWorld.apk.Run the App Wrapping Tool on the native app HelloWorld.apk.

invoke-AppWrappingTool -InputPath .\app\HelloWorld.apk -OutputPath .\app_wrapped\HelloWorld_wrapped.apk -KeyStorePath "C:\Program Files (x86)\Java\jre1.8.0_91\bin\mykeystorefile" -keyAlias mykeyalias -SigAlg SHA1withRSA -Verbose

Zobrazí se výzva k zadání parametrů KeyStorePassword a KeyPassword.You will then be prompted for KeyStorePassword and KeyPassword. Zadejte uživatelské jméno a heslo, které jste použili k vytvoření souboru úložiště klíčů.Enter the credentials you used to create the key store file.

Zabalená aplikace a soubor protokolu se vygenerují a uloží do zadané výstupní cesty.The wrapped app and a log file are generated and saved in the output path you specified.

Jak často mám balit svoji aplikaci pro Android pomocí nástroje Intune App Wrapping Tool?How often should I rewrap my Android application with the Intune App Wrapping Tool?

Hlavní situace, ve kterých potřebujete znovu zabalit svoje aplikace, jsou tyto:The main scenarios in which you would need to rewrap your applications are as follows:

  • Aplikace sama vydala novou verzi.The application itself has released a new version. Do konzoly Intune byla zabalena a nahrána předchozí verze aplikace.The previous version of the app was wrapped and uploaded to the Intune console.
  • Nástroj Intune App Wrapping Tool for Android vydal novou verzi, která přináší důležité opravy chyb nebo nové specifické funkce zásad ochrany aplikace Intune.The Intune App Wrapping Tool for Android has released a new version that enables key bug fixes, or new, specific Intune application protection policy features. Pro Microsoft Intune App Wrapping Tool for Android se toto děje každých 6–8 týdnů prostřednictvím úložiště GitHub.This happens every 6-8 weeks through GitHub repo for the Microsoft Intune App Wrapping Tool for Android.

Mezi osvědčené postupy pro opětovné balení patří:Some best practices for rewrapping include:

Opětovné použití podpisových certifikátů a balení aplikacíReusing signing certificates and wrapping apps

Android vyžaduje, že všechny aplikace musí být podepsané platným certifikátem, aby je bylo možné nainstalovat na zařízení s Androidem.Android requires that all apps must be signed by a valid certificate in order to be installed on Android devices.

Zabalené aplikace je možné podepsat jako součást procesu zabalení nebo po zabalení pomocí stávajících podpisových nástrojů (veškeré podpisové informace v aplikaci budou před zabalením zahozeny).Wrapped apps can be signed either as part of the wrapping process or after wrapping using your existing signing tools (any signing information in the app before wrapping is discarded). Pokud je to možné, měly by se během balení použít podpisové informace použité již během sestavování buildu.If possible, the signing information that was already used during the build process should be used during wrapping. V některých organizacích to může vyžadovat spolupráci s těmi, kdo vlastní informace o úložišti klíčů (tedy s týmem, který vytvořil build aplikace).In certain organizations, this may require working with whoever owns the keystore information (ie. the app build team). 

Pokud předchozí podpisový certifikát nelze použít nebo aplikace zatím nebyla nasazena, můžete vytvořit nový podpisový certifikát podle pokynů v Příručce pro vývojáře pro Android.If the previous signing certificate cannot be used, or the app has not been deployed before, you may create a new signing certificate by following the instructions in the Android Developer Guide.

Pokud už aplikace byla dříve nasazena s jiným podpisovým certifikátem, není ji možné po upgradu nahrát do Intune.If the app has been deployed previously with a different signing certificate, the app can't be uploaded to Intune after upgrade. Pokud bude aplikace podepsána s jiným certifikátem, než je ten, se kterým byla sestavena, naruší se scénáře upgradu aplikace.App upgrade scenarios will be broken if your app is signed with a different certificate than the one the app is built with. Všechny nové podpisové certifikáty je tedy nutné uchovat pro upgrady aplikací.As such, any new signing certificates should be maintained for app upgrades.

Důležité informace o zabezpečení při spuštění nástroje App Wrapping ToolSecurity considerations for running the App Wrapping Tool

Pro zabránění potenciálnímu falšování identity, zpřístupnění informací a zvýšení oprávnění pro útoky zajistěte toto:To prevent potential spoofing, information disclosure, and elevation of privilege attacks:

  • Vstupní obchodní aplikace (LOB), výstupní aplikace a úložiště klíčů Java KeyStore musí být na stejném počítači s Windows, na kterém běží nástroj App Wrapping Tool.Ensure that the input line-of-business (LOB) application, output application, and Java KeyStore are on the same Windows computer where the App Wrapping Tool is running.

  • Výstupní aplikaci naimportujte do Intune na stejném počítači, na kterém je spuštěný tento nástroj.Import the output application to Intune on the same machine where the tool is running. Další informace o nástroji Java keytool viz keytool.See keytool for more about the Java keytool.

  • Pokud se výstupní aplikace a nástroj sice nacházejí v cestě UNC (Universal Naming Convention), ale vy nespouštíte nástroj a vstupní soubory na stejném počítači, použijte k nastavení zabezpečení prostředí podpis protokolu IPsec (Internet Protocol Security) nebo protokolu SMB (Server Message Block).If the output application and the tool are on a Universal Naming Convention (UNC) path and you are not running the tool and input files on the same computer, set up the environment to be secure by using Internet Protocol Security (IPsec) or Server Message Block (SMB) signing.

  • Aplikace musí pocházet z důvěryhodného zdroje.Ensure that the application is coming from a trusted source.

  • Zabezpečte výstupní adresář se zabalenou aplikací.Secure the output directory that has the wrapped app. Zvažte použití adresáře na úrovni uživatele pro výstup.Consider using a user-level directory for the output.

Viz také:See also