OTA :
Los dispositivos Android en el campo pueden recibir e instalar actualizaciones por aire (OTA) del sistema y del software de aplicación. Los dispositivos tienen una partición de recuperación especial con el software necesario para desempaquetar un paquete de actualización descargado y aplicarlo al resto del sistema.
En esta sección se describe la estructura de estos paquetes y las herramientas proporcionadas para construirlos. Está dirigida a los desarrolladores que quieren hacer que el sistema de actualización OTA funcione en los nuevos dispositivos Android y a los que están construyendo paquetes de actualización para usarlos con los dispositivos liberados. Las actualizaciones de OTA están diseñadas para actualizar el sistema operativo subyacente y las aplicaciones de sólo lectura instaladas en la partición del sistema; estas actualizaciones no afectan a las aplicaciones instaladas por el usuario desde Google Play.
Esta sección describe el sistema OTA a partir de la versión Android 5.x. Para obtener ayuda sobre la migración de códigos relacionados con la OTA de versiones anteriores, consulte Migración de versiones anteriores.
Disposición del dispositivo Android
El espacio de flash en un dispositivo Android típicamente contiene las siguientes particiones.
boot
Contiene el núcleo de Linux y un sistema de archivos root mínimo (cargado en un disco RAM). Monta el sistema y otras particiones e inicia el tiempo de ejecución ubicado en la partición del sistema.
sistema
Contiene aplicaciones y bibliotecas de sistema que tienen el código fuente disponible en el Proyecto de Código Abierto de Android (AOSP). Durante la normalidad operación, esta partición se monta sólo en lectura; su contenido cambia sólo durante una actualización de la OTA.
proveedor
Contiene aplicaciones y bibliotecas del sistema que no tienen código fuente disponible en el Proyecto de Código Abierto de Android (AOSP). Durante la normalidad operación, esta partición se monta sólo en lectura; su contenido cambia sólo durante una actualización de la OTA.
userdata
Almacena los datos guardados por las aplicaciones instaladas por el usuario, etc. Esta partición no suele ser tocada por el proceso de actualización de OTA.
cache
Zona de retención temporal utilizada por unas pocas aplicaciones (el acceso a esta partición requiere permisos especiales para las aplicaciones) y para el almacenamiento de descargaron los paquetes de actualización de OTA. Otros programas utilizan este espacio con el la expectativa de que los archivos pueden desaparecer en cualquier momento. Algún paquete de OTA puede resultar en que esta partición sea borrada por completo.
recuperación
Contiene un segundo sistema Linux completo, incluyendo un kernel y el binario especial de recuperación que lee un paquete y utiliza su contenido para actualizar las otras particiones.
misc
Pequeña partición usada por la recuperación para guardar alguna información sobre lo que está haciendo en caso de que el dispositivo se reinicie mientras el OTA se está aplicando el paquete.
Vida de una actualización de la OTA
Una actualización típica de la OTA contiene los siguientes pasos:
-
El dispositivo realiza comprobaciones periódicas con los servidores de OTA y se le notifica la disponibilidad de una actualización, incluyendo la URL del paquete de actualización y una cadena de descripción para mostrar al usuario.
-
Las descargas de actualización a una caché o partición de datos, y su firma criptográfica se verifica con los certificados en /system/etc/security/otacerts.zip. Se solicita al usuario que instale la actualización.
-
El dispositivo se reinicia en modo de recuperación, en el que el núcleo y el sistema en la partición de recuperación se inician en lugar de la en el núcleo de la partición del maletero.
-
El binario de recuperación se inicia con init. Encuentra los argumentos de la línea de comandos en /cache/recuperación/comando que lo apuntan al paquete descargado.
-
La recuperación verifica la la firma criptográfica del paquete contra las claves públicas en /res/keys (parte del disco RAM contenido en la recuperación partición).
-
Los datos se extraen del paquete y se utilizan para actualizar las particiones de arranque, del sistema y/o del proveedor, según sea necesario. Una de las los nuevos archivos que quedan en la partición del sistema contienen el contenido de la nueva partición de recuperación.
-
El dispositivo se reinicia normalmente.
a. Se carga la partición de arranque recién actualizada, y se monta y comienza a ejecutar binarios en la partición del sistema recién actualizada.
b. Como parte del inicio normal, el sistema comprueba el contenido de la partición de recuperación con los contenidos deseados (que fueron
previamente almacenado como un archivo en /system). Son diferentes, así que el la partición de recuperación se refleja con el contenido deseado. (En
botas subsiguientes, la partición de recuperación ya contiene la nueva
contenido, por lo que no es necesario el reflujo).
¡La actualización del sistema está completa!
Sistema.img :
Es el sistema de archivos de Android, es decir, todos los archivos de soporte que Android necesita, las aplicaciones, pero también el marco de trabajo, el Dalvik VM, los scripts de inicialización y así sucesivamente.
Otra parte del sistema de archivos sería el userdata.img que en su mayor parte está vacío cuando se compila el marco.
No es el sistema operativo, que sería un zImage plano o boot.img (y recovery.img para arrancar en modo de recuperación).
fuente : OTA , System.img