Así que, tengo una imagen AOSP personalizada que estoy construyendo, y me permite proporcionar mi propio kernel y las características de depuración que quiero (esto es sólo para el registro, porque no se puede hacer algunas cosas que se necesitan con un AVD regular). Necesito cambiar el contenido de /vendor, y pensé que podría hacerlo proporcionando mi archivo .img al emulador con:
emulador -vendedor /ruta/mi/vendedor.img
Pero, según he comprobado, la md5sum no coincide para algunos archivos entre mi vendor.img y en el /vendor/ruta/al/archivo cuando ejecuto el emulador y me conecto con adb shell. Esto me deja perplejo, porque cuando ejecuto con -verbose, puedo ver los argumentos dados a qemu para la unidad y espero que ese img esté montado bajo /vendor. Mirando el vendor-qemu.img original con 7z, puedo comprobar la md5sum de algunos archivos y ver que a pesar del argumento -vendor, las sumas no cambiaron a los valores de mi img, sino que coinciden con el antiguo intead. Incluso me tomé la molestia de renombrar el vendor-qemu.img original y poner mi img en su lugar con el nombre vendor-qemu.img. El mismo resultado con las sumas md5 sin embargo.
Tal vez me equivoque y el argumento -vendor emulador no debería cambiar el contenido de /vendor en la instancia del emulador en ejecución. ¿Qué debo hacer para que el contenido del directorio /vendor de una instancia del emulador en ejecución coincida con el vendor.img?
0 votos
/vendor debería ser la ruta en la que se monta el vendor.img, si lo he entendido bien. Así que, si cambio el vendor.img, entonces eso debería cambiar el contenido de /vendor, pero no lo hace.
0 votos
No sé qué tendría que ver la FEC con esto. Pensé que qemu ve los archivos .img como unidades, Android los monta en directorios
0 votos
No. No sabía que hiciera eso. Me preguntaba si podría reconstruir el vendor.img añadiendo o editando archivos en el out/target/product/generic_x86_64/vendor y simplemente llamando a make.
0 votos
¿Responde esto a su pregunta? ¿Cómo cambiar el contenido de vendor.img con el emulador de Android?
0 votos
Acabo de darme cuenta de que ya has publicado en stackoverflow. El problema no es con las modificaciones en primer lugar. Usted pregunta acerca de cómo cargar vendor.img modificado - probablemente sólo en el reinicio. Así es como funciona en el teléfono móvil, las particiones de Android se cargan
ro
en el arranque y dm-verity impide las modificaciones durante el tiempo de ejecución. No sé lo que es la instancia de emulador en ejecución, pero dudo que sea posible reemplazar el disco durante el tiempo de ejecución0 votos
No intento sustituirlo durante el tiempo de ejecución. Quiero que todo el contenido de /vendor coincida con el vendor.img con el que intento arrancar el emulador.
0 votos
¿Responde esto a su pregunta? ¿Cuál es el formato de system.img de Android M1 Initial Preview?
0 votos
No lo creo. En realidad, el vendor.img es una imagen dispersa como la devuelta por el archivo. Pude usar simg2img e img2simg en un script para descomprimir todo el contenido de la original y luego hacer una nueva. Además, no creo que la imagen del sistema contenga /vendor, lo he comprobado y he encontrado una img con un /vendor vacío. Desde que señalaste lo de FEC, lo he vuelto a pensar, y creo que soltando los archivos en el proceso de compilación de AOSP se solucionaría. De esta manera, no tendría que crear mi propio vendor.img, simplemente colocar mis archivos en su lugar y dejar que el sistema haga el resto.
0 votos
Simplemente usando simg2img y luego descomprimiendo con 7z funciona. Luego hice el camino inverso con img2simg
0 votos
Sólo uso 7z para la extracción, para ir de img a una carpeta. Tenía un script totalmente diferente para crear la img, donde sí montaba una carpeta y usaba mkfs para formatearla como la antigua. Ahora mismo, no importa si cambio los archivos img, la carpeta del proveedor permanece sin cambios sin embargo. Creo que quiero investigar la posibilidad de FEC.