Author Topic: Modificar initramfs  (Read 2883 times)

Offline ajrodriguez

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 7
  • Karma: 0
    • View Profile
Modificar initramfs
« on: August 14, 2014, 02:36:40 AM »
Este es mi primer post en el foro, así que antes de empezar os mando un saludo a todos los usuarios y moderadores del foro.

Ahora os cuento mi consulta. Para un desarrollo que estoy realizando, necesito lanzar un servicio en el arranque (incluir un archivo nuevo /init.s.rc y modificar el archivo /init.rc para que importe el anterior). Tanto con los dispositivos Android con los que he estado trabajando, como con el Keon (con versiones de FFOS de 1.1 a 2.0) he modificado sin problemas el archivo initramfs de la partición de arranque, pero en el caso del Revolution parece no ser estándar y no consigo dar con la forma de extraer el initramfs y obviamente tampoco de como volver a incluirlo en el boot.img

Cualquier ayuda será apreciada.

Offline luis.cuervo

  • Administrator
  • Top Member
  • *****
  • Thank You
  • -Given: 11
  • -Receive: 64
  • Posts: 816
  • Karma: 114
    • View Profile
Re:Modificar initramfs
« Reply #1 on: August 14, 2014, 05:45:07 AM »
Este es mi primer post en el foro, así que antes de empezar os mando un saludo a todos los usuarios y moderadores del foro.

Ahora os cuento mi consulta. Para un desarrollo que estoy realizando, necesito lanzar un servicio en el arranque (incluir un archivo nuevo /init.s.rc y modificar el archivo /init.rc para que importe el anterior). Tanto con los dispositivos Android con los que he estado trabajando, como con el Keon (con versiones de FFOS de 1.1 a 2.0) he modificado sin problemas el archivo initramfs de la partición de arranque, pero en el caso del Revolution parece no ser estándar y no consigo dar con la forma de extraer el initramfs y obviamente tampoco de como volver a incluirlo en el boot.img

Cualquier ayuda será apreciada.

El Revo tiene el boot.img firmado, por lo que no es estandar y por desgracia no podemos hacer publicas esas firmas, pero...

Dentro de poco subiremos los fuentes de cm11 y ahi explicamos como se puede hacer esto.

Siento no poder darte mas informacion, pero por desgracia hay NDAs de por medio :(

Offline ajrodriguez

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 7
  • Karma: 0
    • View Profile
Re:Modificar initramfs
« Reply #2 on: August 14, 2014, 07:42:44 AM »
Gracias por la aclaración Luis. Es lo que me temía, una pena  :'(

Offline c.val

  • VIP
  • Sr. Member
  • ******
  • Thank You
  • -Given: 0
  • -Receive: 23
  • Posts: 352
  • Karma: 103
    • View Profile
    • sys.nodo21.org
Re:Modificar initramfs
« Reply #3 on: August 15, 2014, 10:45:57 AM »
Este es mi primer post en el foro, así que antes de empezar os mando un saludo a todos los usuarios y moderadores del foro.

Ahora os cuento mi consulta. Para un desarrollo que estoy realizando, necesito lanzar un servicio en el arranque (incluir un archivo nuevo /init.s.rc y modificar el archivo /init.rc para que importe el anterior). Tanto con los dispositivos Android con los que he estado trabajando, como con el Keon (con versiones de FFOS de 1.1 a 2.0) he modificado sin problemas el archivo initramfs de la partición de arranque, pero en el caso del Revolution parece no ser estándar y no consigo dar con la forma de extraer el initramfs y obviamente tampoco de como volver a incluirlo en el boot.img

Cualquier ayuda será apreciada.

Descarga intel-boot-tools y compila el código fuente, obtendrás dos ejecutables: unpack_intel y pack_intel.
Copia boot.img, unpack_intel y pack_intel a una carpeta, por ejemplo "revolution", y muévete a ella.
Ejecuta:
Code: [Select]
./unpack_intel boot.img zImage ramdisk.gz
mkdir ramdisk-unpack
cd ramdisk-unpack
zcat ../ramdisk.gz|cpio -i
Ya lo tienes, modifica lo que quieras y, desde ramdisk_unpack ejecuta:
Code: [Select]
find . | cpio -o -H newc | gzip > ../newramdisk.gz
cd ..
./pack boot.img zImage newramdisk.gz new-boot.img

No publicar el código fuente, no facilitar el desarrollo por parte de la comunidad, NDAs, y ahora ni siquiera explicamos como desempaquetar el boot.img.

Geeksphone quién te ha visto y quién te ve y sombra de lo que eras.

« Last Edit: August 15, 2014, 11:00:15 AM by c.val »

Offline ajrodriguez

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 7
  • Karma: 0
    • View Profile
Re:Modificar initramfs
« Reply #4 on: August 15, 2014, 11:09:49 AM »
Este es mi primer post en el foro, así que antes de empezar os mando un saludo a todos los usuarios y moderadores del foro.

Ahora os cuento mi consulta. Para un desarrollo que estoy realizando, necesito lanzar un servicio en el arranque (incluir un archivo nuevo /init.s.rc y modificar el archivo /init.rc para que importe el anterior). Tanto con los dispositivos Android con los que he estado trabajando, como con el Keon (con versiones de FFOS de 1.1 a 2.0) he modificado sin problemas el archivo initramfs de la partición de arranque, pero en el caso del Revolution parece no ser estándar y no consigo dar con la forma de extraer el initramfs y obviamente tampoco de como volver a incluirlo en el boot.img

Cualquier ayuda será apreciada.

Descarga intel-boot-tools y compila el código fuente, obtendrás dos ejecutables: unpack_intel y pack_intel.
Copia boot.img, unpack_intel y pack_intel a una carpeta, por ejemplo "revolution", y muévete a ella.
Ejecuta:
Code: [Select]
./unpack_intel boot.img zImage ramdisk.gz
mkdir ramdisk-unpack
cd ramdisk-unpack
zcat ../ramdisk.gz|cpio -i
Ya lo tienes, modifica lo que quieras y, desde ramdisk_unpack ejecuta:
Code: [Select]
find . | cpio -o -H newc | gzip > ../newramdisk.gz
cd ..
./pack boot.img zImage newramdisk.gz new-boot.img

No publicar el código fuente, no facilitar el desarrollo por parte de la comunidad, NDAs, y ahora ni siquiera explicamos como desempaquetar el boot.img.

Geeksphone quién te ha visto y quién te ve y sombra de lo que eras.

Gracias por la explicación, no se me había ocurrido pensar que estaba empaquetado con una herramienta de intel  ::).

Offline jartometienen

  • Full Member
  • ***
  • Thank You
  • -Given: 2
  • -Receive: 2
  • Posts: 146
  • Karma: 1
    • View Profile
Re:Modificar initramfs
« Reply #5 on: August 19, 2014, 02:11:18 AM »

No publicar el código fuente, no facilitar el desarrollo por parte de la comunidad, NDAs, y ahora ni siquiera explicamos como desempaquetar el boot.img.

Geeksphone quién te ha visto y quién te ve y sombra de lo que eras.


Tengo que decir que me preocupa leer comentarios así de miembros tan destacados de la comunidad Geeksphone como c.val.

Cuando compré el Revolution esperaba poder usar al cabo de un tiempo ROMs de c.val y de Dosis, entre otros, y disfrutar tanto del terminal como lo hice con el Zero...

Offline c.martinez.lozano

  • Administrator
  • Top Member
  • *****
  • Thank You
  • -Given: 5
  • -Receive: 0
  • Posts: 661
  • Karma: 97
    • View Profile
Re:Modificar initramfs
« Reply #6 on: August 19, 2014, 05:36:42 AM »
Este es mi primer post en el foro, así que antes de empezar os mando un saludo a todos los usuarios y moderadores del foro.

Ahora os cuento mi consulta. Para un desarrollo que estoy realizando, necesito lanzar un servicio en el arranque (incluir un archivo nuevo /init.s.rc y modificar el archivo /init.rc para que importe el anterior). Tanto con los dispositivos Android con los que he estado trabajando, como con el Keon (con versiones de FFOS de 1.1 a 2.0) he modificado sin problemas el archivo initramfs de la partición de arranque, pero en el caso del Revolution parece no ser estándar y no consigo dar con la forma de extraer el initramfs y obviamente tampoco de como volver a incluirlo en el boot.img

Cualquier ayuda será apreciada.

Descarga intel-boot-tools y compila el código fuente, obtendrás dos ejecutables: unpack_intel y pack_intel.
Copia boot.img, unpack_intel y pack_intel a una carpeta, por ejemplo "revolution", y muévete a ella.
Ejecuta:
Code: [Select]
./unpack_intel boot.img zImage ramdisk.gz
mkdir ramdisk-unpack
cd ramdisk-unpack
zcat ../ramdisk.gz|cpio -i
Ya lo tienes, modifica lo que quieras y, desde ramdisk_unpack ejecuta:
Code: [Select]
find . | cpio -o -H newc | gzip > ../newramdisk.gz
cd ..
./pack boot.img zImage newramdisk.gz new-boot.img

No publicar el código fuente, no facilitar el desarrollo por parte de la comunidad, NDAs, y ahora ni siquiera explicamos como desempaquetar el boot.img.

Geeksphone quién te ha visto y quién te ve y sombra de lo que eras.

Buenas,

Primero de todo, indicar que Geeksphone está haciendo todo lo posible por compartir el código fuente (tal y cómo vamos a hacer con CM11).

Pero como ya sabéis, en éste terminal es complejo, ya que gran parte de lo que vamos a compartir son directamente adaptaciones nuestras para el correcto funcionamiento, ya que no podemos compartir los cientos de parches que posee Intel, hemos intentado por todos los medios que se pudiese publicar el código 4.2.2, pero no ha sido posible.

Nosotros hemos llegado a una solución que nos permite compartir un código compilable y funcional para todo el mundo, no ha sido fácil y mucho menos propósito de Geeksphone ésta tardanza.

En cuanto al desempaquetado, empaquetado, hemos probado diferentes "herramientas" y en nuestro caso, con el método de firmado impuesto por fábrica, no hemos conseguido imágenes viables, por lo que estamos implementando un modo firmado online de imágenes para que los usuarios que deseen hacer éste tipo de desarrollo puedan utilizar para tener imágenes válidas para el terminal.

Todo sea dicho, nosotros utilizamos las herramientas oficiales de intel para empaquetado, desempaquetado y firmado, las cuales no son precisamente las que se han indicado en éste post, por lo que no hemos prestado especial atención en herramientas de terceros.

Estamos trabajando en dar una solución oficial y aplicable a todos los usuarios.

Saludos.

Offline c.martinez.lozano

  • Administrator
  • Top Member
  • *****
  • Thank You
  • -Given: 5
  • -Receive: 0
  • Posts: 661
  • Karma: 97
    • View Profile
Re:Modificar initramfs
« Reply #7 on: August 19, 2014, 05:42:39 AM »

No publicar el código fuente, no facilitar el desarrollo por parte de la comunidad, NDAs, y ahora ni siquiera explicamos como desempaquetar el boot.img.

Geeksphone quién te ha visto y quién te ve y sombra de lo que eras.


Tengo que decir que me preocupa leer comentarios así de miembros tan destacados de la comunidad Geeksphone como c.val.

Cuando compré el Revolution esperaba poder usar al cabo de un tiempo ROMs de c.val y de Dosis, entre otros, y disfrutar tanto del terminal como lo hice con el Zero...

Buenas,

No se si c.val y dosis estarán dispuestos a desarrollar algo para Revolution una vez publiquemos el código. No obstante, en ningún momento nos han solicitado nada, cuando Geeksphone está dispuestos a compartir con ellos terminal y código (bajo NDA con toda la legalidad que ello conlleva).

Como he comentado en el post anterior, muy pronto tendremos público lo necesario para dichos desarrollos.

Saludos.

Offline jartometienen

  • Full Member
  • ***
  • Thank You
  • -Given: 2
  • -Receive: 2
  • Posts: 146
  • Karma: 1
    • View Profile
Re: Modificar initramfs
« Reply #8 on: August 19, 2014, 05:53:22 AM »
Gracias por las respuestas Carlos. Y por el esfuerzo.

Cuando compré el Revolution esperaba encontrarme con un terminal completamente abierto y que diera facilidades a los desarrolladores, como creo que siempre ha sido la filosofía de Geeksphone. Supongo que, como empresa, aprenderéis de esto para que no os suceda lo mismo con el próximo terminal que hagáis.

Espero ansioso el lanzamiento de CM11 para el Revolution.

Offline ajrodriguez

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 7
  • Karma: 0
    • View Profile
Re:Modificar initramfs
« Reply #9 on: September 03, 2014, 01:42:49 AM »
Ejecuta:
Code: [Select]
./unpack_intel boot.img zImage ramdisk.gz
mkdir ramdisk-unpack
cd ramdisk-unpack
zcat ../ramdisk.gz|cpio -i
Ya lo tienes, modifica lo que quieras y, desde ramdisk_unpack ejecuta:
Code: [Select]
find . | cpio -o -H newc | gzip > ../newramdisk.gz
cd ..
./pack boot.img zImage newramdisk.gz new-boot.img

Desgraciadamente a la hora de flashear la imagen generada al móvil da un error de flasheo
Code: [Select]
sending 'boot' (6620 KB)...
OKAY [  0.809s]
writing 'boot'...
FAILED (remote: flash_cmds error!
)
finished. total time: 1.427s
Con la original no hay ningún problema, así que supongo que con esta herramienta para desempaquetar y empaquetar tengo el mismo problema de firma que comentan en otros posts del hilo.

Offline ajrodriguez

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 7
  • Karma: 0
    • View Profile
Re: Modificar initramfs
« Reply #10 on: September 11, 2014, 04:14:41 AM »
Gracias al equipo de GeeksPhone por responder tan rápido a mi petición para que me firmasen la partición boot, en especial Jesús que ha sido mi interlocutor y al que le he dado bastante la lata  ;)

Offline jesus.geeksphone

  • Administrator
  • Jr. Member
  • *****
  • Thank You
  • -Given: 1
  • -Receive: 2
  • Posts: 76
  • Karma: 20
    • View Profile
Re: Modificar initramfs
« Reply #11 on: September 11, 2014, 04:27:19 AM »
Me alegro de que todo haya ido bien.

Un saludo