Instalar Xamarin.Android como una aplicación del sistema

En esta guía se analizan las diferencias entre una aplicación del sistema y una aplicación de usuario, y se describe cómo instalar una aplicación Xamarin.Android como una aplicación del sistema. Esta guía se aplica a los autores de imágenes ROM personalizadas de Android. No se explica cómo crear una ROM personalizada.

Aplicación del sistema

Los autores de imágenes ROM de Android personalizadas o los fabricantes de dispositivos Android pueden querer incluir una aplicación Xamarin.Android como una aplicación del sistema al distribuir una ROM o un dispositivo. Una aplicación del sistema es una aplicación que se considera importante para el funcionamiento del dispositivo o que proporciona funcionalidad que el autor de la ROM personalizada siempre desea que esté disponible.

Las aplicaciones del sistema se instalan en la carpeta /system/app/ (un directorio de solo lectura en el sistema de archivos) y el usuario no puede eliminarla ni moverla a menos que el usuario tenga acceso a la raíz. En cambio, una aplicación que instala el usuario (normalmente desde Google Play o al transferir localmente la aplicación) se conoce como una aplicación de usuario. Las aplicaciones de usuario pueden ser eliminadas por el usuario y, en muchos casos, pueden moverse a una ubicación diferente del dispositivo (por ejemplo, algún tipo de almacenamiento externo).

Las aplicaciones del sistema se comportan exactamente igual que las aplicaciones de usuario, pero tienen las siguientes notables excepciones:

  • Las aplicaciones del sistema son actualizables igual que una aplicación de usuario normal. Sin embargo, como siempre existe una copia de la aplicación en /system/app/, siempre es posible revertir la aplicación a la versión original.

  • Las aplicaciones del sistema pueden tener concedidos determinados permisos solo del sistema que no están disponibles para una aplicación de usuario. Un ejemplo de un permiso solo del sistema es BLUETOOTH_PRIVILEGED, que permite que las aplicaciones se emparejen con dispositivos Bluetooth sin ninguna interacción del usuario.

Una aplicación Xamarin.Android se puede distribuir como una aplicación del sistema. Además de proporcionar un APK a la ROM personalizada, hay dos bibliotecas compartidas, libmonodroid.so y libmonosgen 2.0.so que deben copiarse manualmente del APK en el sistema de archivos de la imagen ROM. En esta guía se explican los pasos implicados.

Restricciones

Esta guía se aplica a los autores de imágenes ROM personalizadas de Android. No se explica cómo crear una ROM personalizada.

En esta guía se supone que está familiarizado con el empaquetado de un APK de lanzamiento de una aplicación Xamarin.Android y que conoce las arquitecturas de CPU de las aplicaciones Android.

Instalar una aplicación Xamarin.Android como una aplicación del sistema

En los pasos siguientes se describe cómo instalar una aplicación Xamarin.Android como una aplicación del sistema.

  1. Empaquete un APK de lanzamiento de la aplicación Xamarin.Android: este paso se describe con más detalle en la guía Publicación de una aplicación.

  2. Extraiga las bibliotecas compartidas del APK: mediante cualquier utilidad de compresión, abra el archivo APK y examine el contenido de la carpeta /lib/. Esta carpeta tendrá un subdirectorio para cada interfaz binaria de aplicación (ABI) que sea compatible con la aplicación; el contenido de esta carpeta incluirá todas las bibliotecas compartidas que requiere la aplicación en esa ABI en particular:

    Screenshot of .so files in the armeabi-v7a folder of taskypro.zip

    En la captura de pantalla anterior, solo hay una ABI admitida (armeabi-v7a) que contiene dos archivos .so que requiere la aplicación. Tenga en cuenta que solo es necesario extraer los archivos de ABI que son adecuados para el dispositivo o la arquitectura de destino de la ROM del dispositivo; es decir, no copie los archivos .so de la carpeta x86 a un dispositivo o ROM armeabi-v7a.

  3. Copie los archivos .so en /system/lib: copie los archivos .so que se extrajeron del APK en el paso anterior en la carpeta /system/lib/ de la ROM personalizada.

  4. Copie el archivo APK en /system/app: el paso final consiste en copiar el archivo APK en la carpeta /system/app en la ROM.

Resumen

En esta guía se describe la diferencia entre una aplicación del sistema y una aplicación de usuario, y se explica cómo instalar una aplicación Xamarin.Android como una aplicación del sistema.