2 votos

Actualización de la OTA vs. Actualización de la imagen

La actualización OTA se define como la actualización de la partición del sistema, pero leí que la actualización OTA no es una mera actualización de la última versión.

Entonces, ¿qué significa..:

¿Contiene todos los archivos en la partición system.img (y otras)?

Si es así, ¿no es lo mismo que system.img (imagen de la parición del sistema)?

Saludos, Ranchu

4voto

RahulGopi Puntos 3

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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).

  6. 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.

  7. 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

2voto

Firelord Puntos 161

¿Contiene todos los archivos en la partición system.img
¿No es lo mismo que system.img (imagen de la parición del sistema)?

  • System.img es un archivo cuyo contenido se escribe en la partición llamada sistema (/system).
  • Una actualización de OTA no se limita necesariamente a la actualización de una partición del sistema solamente. Se refiere a cualquier cosa del firmware incluyendo el arranque, la caché, el cargador de arranque, la recuperación, etc.
  • No cada vez que se envía un system.img (archivo DAT en realidad) a los usuarios finales sólo por cada actualización de OTA. Dependiendo del tipo de actualización 1 puede haber una imagen completa de la partición del sistema a copiar o sólo los archivos específicos (empaquetados en un solo archivo) que se van a copiar. Este último tipo de actualización, llamado actualización incremental es la norma desde el Android 5.0.

En resumen, si piensas que cada actualización de OTA descarga un archivo system.img o equivalente y lo escribe en una partición del sistema, entonces simplemente no es así.

1 Una actualización de OTA puede ser sólo una mera actualización (como correcciones de errores, correcciones de vulnerabilidades) o una actualización completa de la plataforma (como de Malvavisco Android a Turrón).

0 votos

Gracias, eso aclara las cosas. Así que, cuando se utiliza la actualización OAT hay una suposición de que algunos OTA anterior ya se ha aplicado?

0 votos

Se supone que la configuración actual del usuario final utiliza una determinada compilación de Android (que suele ser la última o la descargada). Antes de escribir la actualización OTA se realiza esta comprobación. Si el número de compilación no coincide, la actualización falla. He escrito sobre esto en profundidad aquí .

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X