Share via


Preparar as aplicações Android para as políticas de proteção de aplicações com a Ferramenta de Encapsulamento de Aplicações do Intune

Utilize a Ferramenta de Encapsulamento de Aplicações do Microsoft Intune para Android para alterar o comportamento das suas aplicações Android internas ao restringir funcionalidades da aplicação sem alterar o código da aplicação em si.

A ferramenta é uma aplicação de linha de comandos do Windows executada no PowerShell, que cria um encapsulamento em torno da aplicação Android. Depois de a aplicação ser embrulhada, pode alterar a funcionalidade da aplicação configurando políticas de gestão de aplicações móveis no Intune.

Antes de executar a ferramenta, consulte as Considerações de segurança para executar a ferramenta de encapsulamento de aplicações. Para transferir a ferramenta, aceda à Ferramenta de Encapsulamento de Aplicações do Microsoft Intune para Android no GitHub.

Nota

Se tiver problemas em utilizar o Intune App Wrapping Tool com as suas apps, envie um pedido de assistência sobre GitHub.

Cumprir os pré-requisitos de utilização da Ferramenta de Encapsulamento de Aplicações

  • Tem de executar a Ferramenta de Encapsulamento de Aplicações num computador Windows com o Windows 7 ou posterior.

  • A aplicação de entrada tem de ser um pacote de aplicação Android válido com a extensão de ficheiro .apk e:

    • Não pode ser encriptada.
    • Não pode ter sido encapsulada anteriormente pela Ferramenta de Encapsulamento de Aplicações.
    • Tem de ter sido escrita para Android 4.0 ou posterior.
  • A aplicação tem de ter sido programada pela sua empresa ou para a mesma. Não pode utilizar esta ferramenta em aplicações transferidas a partir da Google Play Store.

  • Para executar a Ferramenta de Encapsulamento de Aplicações, tem de instalar a versão mais recente do Ambiente de Tempo de Execução Java e, em seguida, certificar-se de que a variável de caminho Java foi definida como C:\ProgramData\Oracle\Java\javapath nas variáveis do seu ambiente do Windows. Para obter mais ajuda, consulte a documentação do Java.

    Nota

    Nalguns casos, a versão de 32 bits do Java pode originar problemas de memória. É boa ideia instalar a versão de 64 bits.

  • O Android exige que todos os pacotes de aplicação (.apk) sejam assinados. Para reutilizar certificados existentes e obter orientações gerais sobre certificados de assinatura, veja a secção Reutilizar certificados de assinatura e encapsular aplicações. A ferramenta de chave executável Java keytool.exe serve para gerar as novas credenciais necessárias para assinar a aplicação de saída encapsulada. Todas as palavras-passe que definir têm de ser seguras, mas anote-as, uma vez que irá precisar delas mais tarde para executar a Ferramenta de Encapsulamento de Aplicações.

    Nota

    A Ferramenta de Encapsulamento de Aplicações do Intune não suporta esquemas de assinatura v2 e v3 da Google para a assinatura de aplicações. Depois de encapsular o ficheiro .apk com a Ferramenta de Encapsulamento de Aplicações do Intune, é recomendado utilizar a ferramenta Apksigner fornecida pela Google. Isto irá garantir que, assim que a sua aplicação chegar aos dispositivos dos utilizadores finais, poderá ser iniciada corretamente de acordo com os padrões do Android.

  • (Opcional) Por vezes, uma aplicação pode atingir o limite de tamanho da Dalvik Executable (DEX) devido às classes Intune MAM SDK que são adicionadas durante o embrulho. Os ficheiros do DEX fazem parte da compilação de uma aplicação Android. O Intune App Wrapping Tool manuseia automaticamente o excesso de ficheiros DEX durante o embrulho de aplicações com um nível de API min igual ou superior (a partir de v. 1.0.2501.1). Para aplicações com um nível de API min de < 21, as melhores práticas seriam aumentar o nível de API min usando a bandeira do -UseMinAPILevelForNativeMultiDex invólucro. Para os clientes incapazes de aumentar o nível mínimo de API da aplicação, estão disponíveis as seguintes soluções de transbordo DEX. Em certas organizações, isto pode exigir trabalhar com quem compila a app (ou seja, a equipa de construção de aplicações):

    • Utilize o ProGuard para eliminar referências de classe não utilizadas do ficheiro DEX primário da aplicação.
    • Para clientes que usam v3.1.0 ou superior ao plugin Android Gradle, desative o dexer D8.

instalar a Ferramenta de Encapsulamento de Aplicações

  1. A partir do repositório GitHub , transfira o ficheiro de instalação InstallAWT.exe da Ferramenta de Encapsulamento do Intune para Android num computador Windows. Abra o ficheiro de instalação.

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

Não se esqueça da pasta na qual instalou a ferramenta. A localização predefinida é: C:\Program Files (x86)\Microsoft Intune Mobile Application Management\Android\App Wrapping Tool.

executar a Ferramenta de Encapsulamento de Aplicações

Importante

A Intune lança regularmente atualizações para o Intune App Wrapping Tool. Verifique regularmente o Intune App Wrapping Tool para Android para obter atualizações e incorpore o ciclo de lançamento do seu software para garantir que as suas aplicações suportam as definições mais recentes da Política de Proteção de Aplicações.

  1. No computador Windows onde instalou a Ferramenta de Encapsulamento de Aplicações, abra uma janela do PowerShell.

  2. Na pasta onde instalou a ferramenta, importe o módulo do PowerShell da Ferramenta de Encapsulamento de Aplicações:

    Import-Module .\IntuneAppWrappingTool.psm1
    
  3. Execute a ferramenta utilizando o comando invoke-AppWrappingTool cuja sintaxe de utilização está indicada em seguida:

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

    A seguinte tabela explica detalhadamente as propriedades do comando invoke-AppWrappingTool:

Propriedade Informações Exemplo
-InputPath < Corda> Caminho da aplicação Android de origem (.apk).
-OutputPath < Corda> Caminho para a aplicação Android de saída. Se este for o mesmo caminho de diretório como o InputPath, o empacotamento irá falhar.
-KeyStorePath < Corda> Caminho para o ficheiro de keystore que tem o par de chaves pública/privada para assinatura. Por predefinição, os ficheiros da loja de chaves são armazenados em "C:\Program Files (x86)\Java\jreX.X.X_XX\bin".
-KeyStorePassword < SecureString> Palavra-passe utilizada para desencriptar o keystore. O Android requer que todos os pacotes de aplicações (. apk) estejam assinados. Utilize a ferramenta de chave Java para gerar a KeyStorePassword. Leia mais acerca da KeyStore de Java aqui.
-KeyAlias < Corda> Nome da chave a ser utilizada para assinatura.
-Palavra-chavePass < SecureString> Palavra-passe utilizada para desencriptar a chave privada que vai ser utilizada para assinatura.
-SigAlg < SecureString> (Opcional) O nome do algoritmo de assinatura a ser utilizado na assinatura. O algoritmo tem de ser compatível com a chave privada. Exemplos: SHA256withRSA, SHA1withRSA
-UseMinAPILevelFornativeMultiDex (Opcional) Use esta bandeira para aumentar o nível mínimo de API da aplicação Android para 21. Esta bandeira irá solicitar a confirmação, uma vez que irá limitar quem poderá instalar esta aplicação. Os utilizadores podem ignorar o diálogo de confirmação anexando o parâmetro "-Confirm:$false" ao seu comando PowerShell. A bandeira só deve ser utilizada por clientes em aplicações com min API < 21 que não conseguem ser embrulhadas com sucesso devido a erros de transbordo DEX.
<CommonParameters> (Opcional) O comando suporta parâmetros comuns do PowerShell, como verboso e depuração.
  • Para obter uma lista de parâmetros comuns, consulte o Centro de Scripts da Microsoft.

  • Para ver informações de utilização detalhadas da ferramenta, introduza o comando:

    Help Invoke-AppWrappingTool
    

Exemplo:

Importe o módulo PowerShell.

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

Execute a Ferramenta de Encapsulamento de Aplicações na aplicação nativa 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

Ser-lhe-ão solicitadas a KeyStorePassword e a KeyPassword. Introduza as credenciais que utilizou para criar o ficheiro de keystore.

A aplicação encapsulada e um ficheiro de registos são gerados e guardados no caminho de saída que tiver especificado.

Com que frequência devo encapsular novamente a minha aplicação Android com a Ferramenta de Encapsulamento de Aplicações do Intune?

Os principais cenários nos quais teria de encapsular novamente as suas aplicações são os seguintes:

  • A própria aplicação lançou uma nova versão. A versão anterior da aplicação foi encapsulada e carregada para a consola do Intune.
  • A Ferramenta de Encapsulamento de Aplicações do Intune para Android lançou uma nova versão com correções de erros importantes ou funcionalidades específicas e novas da política de proteção de aplicações do Intune. Isto ocorre a cada 6 a 8 semanas através do repositório do GitHub para a Ferramenta de Encapsulamento de Aplicações do Microsoft Intune para Android.

As melhores práticas para encapsular novamente incluem:

Reutilizar certificados de assinatura e encapsular aplicações

O Android exige que todas as aplicações sejam assinadas por um certificado válido para poderem ser instaladas em dispositivos Android.

As aplicações encapsuladas podem ser assinadas como parte do processo de encapsulamento ou após o encapsulamento através das ferramentas de assinatura existentes (todas as informações sobre a assinatura na aplicação anteriores ao encapsulamento serão eliminadas). Se possível, as informações sobre a assinatura que já foram utilizadas durante o processo de criação devem ser utilizadas durante o encapsulamento. Em certas organizações, tal poderá exigir que trabalhe com o proprietário das informações de armazenamento de chaves (por exemplo, a equipa de desenvolvimento da aplicação).

Se o certificado de assinatura não puder ser utilizado ou a aplicação não tiver sido implementada antes, pode criar um novo certificado de assinatura ao seguir as instruções no Guia para Programadores Android.

Se a aplicação já tiver sido implementada anteriormente com um certificado de assinatura diferente, não poderá ser carregada para o Intune após a atualização. Os cenários de atualização da aplicação serão interrompidos se a aplicação for assinada com um certificado diferente daquele com que foi criada. Como tal, todos os novos certificados de assinatura devem ser mantidos para as atualizações de aplicações.

Considerações de segurança para executar a Ferramenta de Encapsulamento de Aplicações

Para impedir potenciais ataques de spoofing, divulgação de informações e ataques de elevação de privilégios:

  • Certifique-se de que a aplicação de linha de negócio de entrada (LOB), a aplicação de saída e a Java KeyStore se encontram no mesmo computador Windows onde é executada a Ferramenta de Encapsulamento de Aplicações.

  • Importe a aplicação de saída para o Intune no computador onde a ferramenta está a ser executada. Veja keytool para obter mais informações sobre a ferramenta de chave Java.

  • Se a aplicação de saída e a ferramenta estiverem num caminho UNC (Universal Naming Convention), mas não estiver a executar a ferramenta e os ficheiros de entrada no mesmo computador, configure o ambiente de forma a torná-lo seguro com a Segurança IPsec ou a assinatura do protocolo SMB (Server Message Block).

  • Certifique-se de que a aplicação vem de uma origem fidedigna.

  • Proteja o diretório de saída que tem a aplicação encapsulada. Considere utilizar um diretório de nível de utilizador para a saída.

Ver também