Hay una imagen de proveedor en mi dispositivo que quiero cambiar (desempaquetar/montar, hacer cambios, empaquetar/montar).
Mi propósito es actualizar el boot.img con mi nuevo kernel (en el dispositivo rooteado).
Desgraciadamente no funciona debido a la incompatibilidad de versiones entre un nuevo kernel compilado (mi compilación) y los módulos anteriores del kernel almacenados en vendor.img.
Tal y como lo veo, necesito actualizar los antiguos ejecutables "ko" almacenados en vendor.img en mi producto.
El primer paso es hacer "dd" desde mi dispositivo y "adb pull" hacia mi entorno de construcción. Mientras intentaba hacer el montaje en vendor.img descubrí que no funcionaba debido a que el atributo "shared_blockes" lo bloqueaba para montarlo como "RW" (dmesg escribió: "...unsupported optional features (4000)"), Para solucionarlo, ejecutando el siguiente comando
e2fsck -y -E unshare_blocks vendor.img
¡deshabilitar la función "share_blocks" me impidió hacer el montaje como RW, por supuesto haciendo el montaje RW trabajando correctamente !
En la última fase, intenté reemplazar los archivos en el sistema de archivos del proveedor y entonces descubrí otro desafío en mi camino, desafortunadamente, había un problema con el espacio limitado en el sistema de archivos,
Por ejemplo: En el caso de que quiera reemplazar el módulo del kernel llamado "abc.ko", ¡eliminar el archivo no muestra ningún espacio libre nuevo en el sistema de archivos! En este punto no puedo actualizar los viejos módulos del kernel con uno nuevo (compatible con el nuevo kernel compilado), Por supuesto ejecutando "df -h ." devuelve no espacio libre y 100% utilizado, ¿Alguien tiene alguna idea de lo que necesito hacer?
Gracias,