Preparar aplicativos Android para políticas de proteção de aplicativos com o Intune App Wrapping Tool

Use o Microsoft Intune App Wrapping Tool para Android para alterar o comportamento de seus aplicativos Android internos, restringindo recursos do aplicativo sem alterar o código do aplicativo em si.

A ferramenta é um aplicativo de linha de comando do Windows que é executado no PowerShell e cria um wrapper em torno do seu aplicativo Android. Depois que o aplicativo for encapsulado, você poderá alterar a funcionalidade do aplicativo configurando políticas de gerenciamento de aplicativo móvel no Intune.

Antes de executar a ferramenta, reveja as considerações de segurança para executar a App Wrapping Tool. Para baixar a ferramenta, acesse a Microsoft Intune App Wrapping Tool para Android no GitHub.

Observação

Se você tiver problemas para usar o Intune App Wrapping Tool com seus aplicativos, envie uma solicitação de assistência no GitHub.

Preencha os pré-requisitos para usar a App Wrapping Tool

  • Seu aplicativo deve usar bibliotecas atualizadas

  • Seu app precisa ser compatível com os requisitos do Google Play

  • Se o aplicativo for complexo, ele deverá se integrar ao SDK do aplicativo do Intune para Android

  • Você deve executar a App Wrapping Tool em um computador Windows com o Windows 10 ou posterior.

  • Seu aplicativo de entrada deve ser um pacote de aplicativo Android válido com a extensão de arquivo .apk e:

    • Ela não pode ser criptografada.
    • Ele não pode ter sido encapsulado anteriormente pelo Intune App Wrapping Tool.
    • Ele deve ser escrito para Android 9.0 ou posterior.

    Observação

    Se o aplicativo de entrada for um Android App Bundle (.aab), você precisará convertê-lo em um APK antes de usar o Intune App Wrapping Tool. Para obter detalhes, consulte Converter Android App Bundle (AAB) em APK. Desde agosto de 2021, novos aplicativos privados ainda podem ser publicados na Google Play Store como APKs.

  • O aplicativo deve ser desenvolvido por ou para sua empresa. Você não pode usar essa ferramenta em aplicativos que estão disponíveis na Google Play Store. Isso inclui baixar ou obter o aplicativo na Google Play Store.

  • Para executar o App Wrapping Tool, você deve instalar a versão mais recente do Java Runtime Environment e, em seguida, garantir que a variável de caminho Java tenha sido definida como C:\ProgramData\Oracle\Java\javapath nas variáveis de ambiente do Windows. Para obter mais ajuda, consulte a documentação do Java.

    Observação

    Em alguns casos, a versão de 32 bits do Java pode resultar em problemas de memória. É uma boa ideia instalar a versão de 64 bits.

  • O Android requer que todos os pacotes de aplicativos (.apk) sejam assinados. Para reutilizar certificados existentes e diretrizes gerais sobre certificados de assinatura, consulte Reutilizando certificados de assinatura e aplicativos de encapsulamento. Depois de encerrar o arquivo .apk usando o Intune App Wrapping Tool, a recomendação é usar a ferramenta Apksigner fornecida pelo Google. Isso garantirá que, assim que seu aplicativo chegar aos dispositivos do usuário final, ele poderá ser iniciado corretamente pelos padrões do Android.

  • (Opcional) Às vezes, um aplicativo pode atingir o limite de tamanho do executável Dalvik (DEX) devido às classes SDK do Intune MAM que são adicionadas durante a encapsulamento. Os arquivos DEX fazem parte da compilação de um aplicativo Android. O Intune App Wrapping Tool lida automaticamente com o estouro de arquivos DEX durante o encapsulamento de aplicativos com um nível mínimo de API de 21 ou superior (a partir da v. 1.0.2501.1). Para aplicativos com um nível mínimo de API de 21, a prática recomendada seria aumentar o nível mínimo de < API usando o sinalizador do -UseMinAPILevelForNativeMultiDex wrapper. Para os clientes que não conseguem aumentar o nível mínimo da API do aplicativo, as seguintes soluções alternativas de estouro de DEX estão disponíveis. Em determinadas organizações, isso pode exigir o trabalho com quem compila o aplicativo (ou seja, a equipe de criação do aplicativo):

    • Use o ProGuard para eliminar referências de classe não utilizadas do arquivo DEX primário do aplicativo.
    • Para clientes que usam a v3.1.0 ou superior do plug-in do Android para Gradle, desative o dexer D8.

Com que frequência devo reencapsular meu aplicativo Android com o Intune App Wrapping Tool?

Os principais cenários em que você precisaria reencapsular seus aplicativos são os seguintes:

  • O próprio aplicativo lançou uma nova versão. A versão anterior do aplicativo foi encapsulada e carregada no centro de administração do Microsoft Intune.

  • O Intune App Wrapping Tool para Android lançou uma nova versão que permite correções de bugs importantes ou novos recursos específicos da política de proteção de aplicativos Intune. Isso acontece a cada 6 a 8 semanas por meio do repositório GitHub para o Microsoft Intune App Wrapping Tool para Android.

Algumas práticas recomendadas para reempacotamento incluem:

Instalar a App Wrapping Tool

  1. No repositório GitHub, baixe o arquivo de instalação InstallAWT.exe do Intune App Wrapping Tool para Android em um computador Windows. Abra o arquivo de instalação.

  2. Aceite o contrato de licença e conclua a instalação.

Observe a pasta na qual você instalou a ferramenta. O local padrão é: C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool.

Executar a App Wrapping Tool

Importante

Intune lança regularmente atualizações para o Intune App Wrapping Tool. marcar regularmente o Intune App Wrapping Tool para Android para atualizações e incorporá-lo ao ciclo de lançamento de desenvolvimento de software para garantir que seus aplicativos sejam compatíveis com as configurações mais recentes da Política de Proteção do Aplicativo.

  1. No computador Windows em que você instalou a App Wrapping Tool, abra uma janela do PowerShell.

  2. Na pasta em que você instalou a ferramenta, importe o módulo do PowerShell App Wrapping Tool:

    Import-Module .\IntuneAppWrappingTool.psm1
    
  3. Execute a ferramenta usando o comando invoke-AppWrappingTool , que tem a seguinte sintaxe de uso:

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

    A tabela a seguir detalha as propriedades do comando invoke-AppWrappingTool :

Propriedade Informações
-InputPath<Cadeia de Caracteres> Caminho do aplicativo Android de origem (.apk).
-OutputPath<Cadeia de Caracteres> Caminho para o aplicativo Android de saída. Se esse for o mesmo caminho de diretório que InputPath, o empacotamento falhará.
<CommonParameters> (Opcional) O comando dá suporte a parâmetros comuns do PowerShell, como detalhado e depurar.
  • Para obter uma lista de parâmetros comuns, consulte o Microsoft Script Center.

  • Para ver informações detalhadas de uso da ferramenta, insira o comando:

    Help Invoke-AppWrappingTool
    

Exemplo:

Importe o módulo do PowerShell.

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

Execute o App Wrapping Tool no aplicativo nativo HelloWorld.apk.

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

O aplicativo encapsulado e um arquivo de log são gerados e salvos no caminho de saída especificado.

Reutilizar certificados de assinatura e aplicativos de encapsulamento

O Android exige que todos os aplicativos sejam assinados por um certificado válido para serem instalados em dispositivos Android.

Os aplicativos encapsulados podem ser assinados após o encapsulamento usando suas ferramentas de assinatura existentes (todas as informações de assinatura no aplicativo antes do encapsulamento são descartadas). Se possível, as informações de assinatura que já foram usadas durante o processo de compilação devem ser usadas durante a encapsulamento. Em determinadas organizações, isso pode exigir trabalhar com quem possui as informações do repositório de chaves (ou seja, a equipe de criação do aplicativo).

Se o certificado de assinatura anterior não puder ser usado ou se o aplicativo não tiver sido implantado antes, você poderá criar um novo certificado de assinatura seguindo as instruções no Guia do Desenvolvedor do Android.

Se o aplicativo tiver sido implantado anteriormente com um certificado de assinatura diferente, não será possível carregá-lo no Intune após a atualização. Os cenários de atualização de aplicativo serão interrompidos se o aplicativo for assinado com um certificado diferente daquele com o qual o aplicativo foi compilado. Dessa forma, todos os novos certificados de assinatura devem ser mantidos para atualizações de aplicativo.

Considerações de segurança para executar a App Wrapping Tool

Para evitar possíveis ataques de spoofing, divulgação de informações e elevação de privilégios:

  • Certifique-se de que o aplicativo de LOB (linha de negócios) de entrada e o aplicativo de saída estejam no mesmo computador Windows em que a App Wrapping Tool está em execução.

  • Importe o aplicativo de saída para o Intune no mesmo computador em que a ferramenta está em execução. Consulte keytool para obter mais informações sobre o keytool Java.

  • Se o aplicativo de saída e a ferramenta estiverem em um caminho UNC (Convenção de Nomenclatura Universal) e você não estiver executando a ferramenta e os arquivos de entrada no mesmo computador, configure o ambiente para ser seguro usando a assinatura IPsec (Segurança do Protocolo Internet) ou SMB (Bloco de Mensagens do Servidor).

  • Verifique se o aplicativo está vindo de uma fonte confiável.

  • Proteja o diretório de saída que contém o aplicativo encapsulado. Considere o uso de um diretório no nível do usuário para a saída.

Converter Android App Bundle (AAB) em APK

No momento, o Intune App Wrapping Tool só é compatível com entradas APK. Primeiro, os pacotes de aplicativos para Android devem ser convertidos em um APK para uso com a ferramenta.

Um Android App Bundle pode ser convertido em um APK usando a ferramenta de linha de comando do Google, bundletool. A versão mais recente do bundle-tool pode ser baixada do repositório bundletool GitHub do Google.

bundletoolpode ser usado para produzir um único APK universal para uso com o Intune App Wrapping Tool usando o seguinte comando:

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

O .apks arquivo de saída é um arquivo ZIP contendo um único arquivo APK universal. Descompacte o arquivo e use esse arquivo APK como entrada para o Intune App Wrapping Tool.

Confira também