1 votos

Teniendo confusión al construir el sistema de formato erofs.img para Android

Intenté editar un archivo system.img de Android 11 que fue extraído de super.img. Ahora tengo un problema que es muy confuso para mí. Primero, extraje system.img con este comando (El sistema de archivos es erofs, que se utiliza en dispositivos Android HUAWEI):

sudo fsck.erofs --extract=./extracted --no-preserve --force --overwrite system_a.img

Y obtuve un árbol de directorios que contiene archivos como este:

.
 extracted
     3rdmodem
     3rdmodemnvm
     3rdmodemnvmbkp
     acct
     apex
     cache
     config
     cust
     d -> /sys/kernel/debug
     data
     data_mirror
     debug_ramdisk
     dev
     eng
     hw_product
     linkerconfig
     log
     metadata
     mnt
     modem_log
     odm
     oem
     patch_hw
     preas
     preavs
     preload
     prets
     pretvs
     proc
     res
     sec_storage
     splash2
     storage
     sys
     system
     system_ext
     vendor
     version

Luego, hice algunas modificaciones e intenté empaquetarlo en un system.img usando este comando:

sudo mkfs.erofs -zlz4 -Enosbcrc -U00000000-0000-0000-0000-000000000000 --ignore-mtime lz4.system.img ./extracted/

Todo estaba perfecto, no se mostraron errores ni advertencias con este comando, y se generó exitosamente lz4.system.img. Comparé dos archivos usando el comando file después de finalizar el reempaquetado:

@localhost:~/Desktop/extracted_super> file lz4.system.img  system_a.img 
lz4.system.img: EROFS filesystem, blocksize=12, exslots=0, uuid=00000000-0000-0000-0000-000000000000, incompat: LZ4_0PADDING
system_a.img:   EROFS filesystem, blocksize=12, exslots=0, uuid=00000000-0000-0000-0000-000000000000, incompat: LZ4_0PADDING

Pero encontré algo diferente entre el que generé y el original.

  1. El tamaño del archivo no era el mismo (después me di cuenta de que es normal porque no estaba firmado)
  2. Hay contenidos que difieren entre sí, adjunto la captura de pantalla para que sea claro distinguirlos:

Como puedes ver en el lado derecho de la imagen, ese es el system.img original, contiene algunas cadenas que parecen tener algo que ver con selinux, a su vez, el nuevo no las tiene.

Mis preguntas son:

  1. ¿Qué son esas cadenas?
  2. ¿Qué debo hacer para solucionar esto? ¿Es porque el nuevo no ha sido firmado, por lo que no son iguales?

0 votos

¿Tuviste éxito al empaquetarlo y flashearlo en Android?

1voto

LouisWong Puntos 11

Para aquellos que no conocen la razón de este problema, he encontrado cómo arreglarlo agregando un parámetro --file-contexts=plat_file_contexts.

0 votos

¿Cómo agregar este parámetro --file-contexts=plat_file_contexts?

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