1 votos

Teniendo confusión construyendo erofs formato system.img para Android

Intento 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 usa en dispositivos Android de HUAWEI):

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

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

.
 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 lz4.system.img se generó exitosamente. Comparé los dos archivos usando el comando file después de terminar 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 (más tarde me di cuenta de que es normal porque no estaba firmado)
  2. Hay contenidos que difieren entre sí, adjunto la captura de pantalla para hacerlo más claro al 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 lo tiene.

Mis preguntas son:

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

0 votos

¿Tuviste éxito al empaquetarlo y flashearlo sobre 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