Instalando o Xamarin.Android como um aplicativo de sistema

Este guia discute as diferenças entre um aplicativo de sistema e um aplicativo de usuário e como instalar um aplicativo Xamarin.Android como um aplicativo de sistema. Este guia se aplica aos autores de imagens ROM personalizadas do Android. Ele não explicará como criar um ROM personalizado.

Aplicativo de sistema

Autores de imagens ROM personalizadas do Android ou fabricantes de dispositivos Android podem desejar incluir um aplicativo Xamarin.Android como um aplicativo de sistema ao distribuir uma ROM ou um dispositivo. Um aplicativo de sistema é um aplicativo que é considerado importante para o funcionamento do dispositivo ou que oferece uma funcionalidade que o autor do ROM personalizado deseja que esteja sempre disponível.

Aplicativos de sistema são instalados na pasta /system/app/ (um diretório somente leitura no sistema de arquivos) e não pode ser excluída nem movida pelo usuário, a menos que o usuário tenha acesso à raiz. Por outro lado, um aplicativo que é instalado pelo usuário (normalmente do Google Play ou realizando sideload do aplicativo) é conhecido como um aplicativo de usuário. Aplicativos de usuário podem ser excluídos pelo usuário e em muitos casos podem ser movidos para um local diferente no dispositivo (assim como algum tipo de armazenamento externo).

Aplicativos de sistema se comportam exatamente como aplicativos de usuário, mas tem as seguintes exceções notáveis:

  • Aplicativos de sistema são atualizáveis, exatamente como um aplicativo de usuário normal. No entanto, como uma cópia do aplicativo sempre existe em /system/app/, sempre é possível reverter o aplicativo para a versão original.

  • Determinadas permissões somente para sistema que não estão disponíveis para um aplicativo de usuário podem ser concedidas a aplicativos de sistema. É um exemplo de uma permissão somente para sistema é BLUETOOTH_PRIVILEGED, que permite que os aplicativos emparelhem com dispositivos Bluetooth sem nenhuma interação do usuário.

É possível distribuir um aplicativo Xamarin.Android como um aplicativo de sistema. Além de fornecer um APK para o ROM personalizado, há duas bibliotecas compartilhadas, libmonodroid.so e libmonosgen-2.0.so, que devem ser copiadas manualmente do APK para o sistema de arquivos da imagem ROM. Este guia explica as etapas envolvidas.

Restrições

Este guia se aplica aos autores de imagens ROM personalizadas do Android. Ele não explicará como criar um ROM personalizado.

Este guia presume familiaridade com o procedimento de empacotar uma versão APK para um Xamarin.Android e uma compreensão de arquiteturas de CPU para aplicativos Android.

Instalar o aplicativo Xamarin.Android como um aplicativo de sistema

As etapas a seguir descrevem como instalar um aplicativo Xamarin.Android como um aplicativo de sistema.

  1. Empacotar um APK de versão do aplicativo Xamarin.Android – isso é descrito mais detalhadamente pelo guia Publicando um aplicativo .

  2. Extrair bibliotecas compartilhadas do APK – usando qualquer programa de utilitário ZIP, abra o arquivo APK e examine o conteúdo da pasta /lib/ . Essa pasta terá um subdiretório para cada ABI (interface binária de aplicativo) que for compatível com o aplicativo; o conteúdo dessa pasta incluirá todas as bibliotecas compartilhadas que forem exigidas pelo aplicativo nessa ABI específica:

    Captura de tela de arquivos .so na pasta armeabi-v7a de taskypro.zip

    Na captura de tela anterior, há apenas uma ABI compatível (armeabi-v7a) contendo os dois arquivos .so que são exigidos pelo aplicativo. Observe que só é necessário extrair os arquivos ABI que são apropriados para o dispositivo ou a arquitetura de destino do dispositivo ROM, ou seja, não copie arquivos .so da pasta x86 para um ROM ou dispositivo armeabi-v7a.

  3. Copie arquivos .so para /system/lib – copie os arquivos .so que foram extraídos do APK na etapa anterior para a pasta /system/lib/ no ROM personalizado.

  4. Copiar o arquivo APK para /system/app – a etapa final é copiar o arquivo APK para a pasta /system/app na ROM.

Resumo

Este guia discute as diferenças entre um aplicativo de sistema e um aplicativo de usuário e explica como instalar um aplicativo Xamarin.Android como um aplicativo de sistema.