4 votos

¿Por qué los respaldos de Nandroid de TRWP de las particiones del sistema y del proveedor son diferentes entre respaldos?

Para obtener información de antecedentes, acabo de adquirir la versión global de Xiaomi Mi 9 y estoy utilizando la última ROM semanal de Xiaomi.eu Pure MIUI en ella (si importa, las últimas versiones semanales de Xiaomi.eu para el Mi 9 están basadas en Android 10).

Comencé a realizar copias de seguridad completas usando TWRP y noté algo extraño. Para referencia, estas copias de seguridad tienen la compresión deshabilitada y no tienen encriptación para tratar de descartar cualquier variable.

Cuando verifico los hashes sha2 de las distintas particiones, noté que todas las diversas particiones (arranque, recuperación, módem, efs, etc.) tienen el mismo hash sha2 entre las copias de seguridad (lo que significa que las imágenes son exactamente iguales). Sin embargo, incluso de una noche a la siguiente mañana, o incluso de un arranque a otro, como probé hoy, los hashes de las copias de seguridad de la partición de sistema y del vendedor son diferentes. No tengo instalados módulos de sistema o kernel personalizados que puedan modificar esas particiones, aunque tengo acceso root con Magisk.

Utilicé adb shell para explorar las particiones de sistema y vendedor y todas las marcas de tiempo de las carpetas y archivos son "1969-12-31" (básicamente significando que la fecha es 0 ya que es el comienzo del "tiempo Unix si se tiene en cuenta mi zona horaria) o "2019-09-06" que es probablemente la fecha en que se creó la ROM o su ROM base (la ROM original de Xiaomi de la que se creó la versión Xiaomi.eu). Incluso usé el comando find desde una shell de adb para buscar tanto en las particiones de sistema como en vendedor archivos actualizados (cualquier archivo con una fecha más nueva que "2019-09-06") y no hay ninguno.

Entonces mi pregunta es la siguiente: si no he flasheado una nueva ROM o instalado nada en la partición de sistema, ¿por qué serían diferentes dos copias de seguridad?

Pensaría que solo la partición de datos cambiaría mientras uso el teléfono. Pensaba que dado que las imágenes de sistema y vendedor son la propia ROM, nunca deberían cambiar a menos que cambie de ROM. Tenía la impresión de que incluso la configuración del sistema se almacena en la partición de datos porque realizar un restablecimiento de fábrica básicamente solo borra esa partición... así que no veo por qué las particiones de sistema y especialmente las de vendedor deberían cambiar a menos que específicamente flashee una ROM diferente o actualice la ROM, lo que obviamente escribiría en esas particiones (o como mínimo en la partición del sistema).

¿Hay algún tipo de archivos o carpetas generados automáticamente en las particiones de sistema y vendedor que cambian ligeramente en cada arranque o algo así?

Me gustaría entender esto mejor para saber, por ejemplo, si está bien hacer copias de seguridad regulares de la partición de datos y solo respaldar la partición de sistema y vendedor cuando realice una nueva actualización de la ROM.

Con suerte, alguien con más experiencia en ROM de Android puede aclarar esto.

2voto

Jack Wade Puntos 231

La respuesta a tu pregunta es dm-verity:

La función dm-verity te permite observar un dispositivo de bloques, la capa de almacenamiento subyacente del sistema de archivos, y determinar si coincide con su configuración esperada. Esto se hace utilizando un árbol hash criptográfico. Para cada bloque (normalmente de 4k), hay un hash SHA256.

Así que las particiones /system y /vendor siempre están montadas como solo lectura porque montarlas de forma R/W causa que los valores hash de la partición/sistema de archivos cambien (al menos algunos inodos pertenecientes a la estructura del sistema de archivos pueden cambiar incluso si no tocas un archivo), rompiendo así la característica de seguridad. Para hacer cambios en ellos, necesitamos desactivar dm-verity, que debe ser tu caso.

TWRP crea copias de seguridad de dos maneras. boot, recovery etc. son simplemente volcados (dd) en su totalidad, por lo que sus hashes no cambian porque no son sistemas de archivos montables. /system y /vendor son volcados como imágenes para conservar dm-verity como se discutió anteriormente. O de lo contrario se crea un archivo tar para mantener el tamaño de la copia de seguridad mínimo. En el segundo caso, incluso si el sistema de archivos no cambia, se crea un nuevo archivo de archivo cada vez que haces la copia de seguridad. Si los archivos no cambian y son leídos/escritos por la utilidad de archivo en el mismo orden, utilizando las mismas opciones/parámetros cada vez, entonces los archivos creados deberían ser idénticos. Pero incluso un factor menor como la compresión puede causar un valor hash diferente cada vez.

Por lo tanto, debes tener dm-verity deshabilitado, y por lo tanto seguirás obteniendo hashes cambiados. Pero el contenido no cambia (si no lo cambias tú mismo o Magisk/GApps no colocan algún script addon.d), por lo que una copia de seguridad regular de ambas particiones no es necesaria. De hecho, solo la copia de seguridad de /data es suficiente, boot, /system, /vendor ya son parte de los archivos zip flasheables.

0 votos

Solo para agregar una pequeña adición, creo que lo que está sucediendo es que TWRP en mi dispositivo todavía utiliza copias de seguridad de imágenes a pesar de que mi rom tiene dm-verity desactivado, sin embargo, como las particiones presumiblemente están montadas r/w debido a que dm-verity está desactivado, reciben pequeños cambios cada vez que se montan (pequeños cambios en el sistema de archivos o en el journal) lo que causa que sus hashes sigan siendo diferentes a pesar de que no sean archivos tar.

0 votos

En cualquier caso, como dijiste en tu otro comentario, no hay cambios reales en el archivo y por lo tanto no es necesario hacer nuevas copias de seguridad a menos que modifiques manualmente esas particiones, como al instalar algo en /system en TWRP o un módulo Magisk, etc., o al actualizar el ROM.

0 votos

En realidad, aún más extraño, intenté mover algo a /system y tuve que remontarlo como r/w, lo que indicaría que se está montando como solo lectura, pero supongo que el sistema en sí primero lo monta como r/w y luego lo bloquea a solo lectura, por eso se está modificando entre copias de seguridad. No se me ocurre ninguna otra explicación.

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