¿Cómo creo un paquete de instalación de ClockworkMod?

Soy un veterano experimentado de Linux y recientemente compré un Samsung Galaxy S2 de T-Mobile. He estado sintiendo el error de retocar, así que opté por descargar el código fuente del sitio de Samsung y comenzar a jugar.

Mi problema es que ya tengo ClockworkMod instalado en mi teléfono, por lo que no quiero que Odin actualice un nuevo kernel y, por lo tanto, corrompa ClockworkMod, por lo que estoy buscando detalles sobre cómo crear un paquete de instalación de ClockworkMod adecuado (generalmente /siempre un archivo zip?) para que pueda probar los núcleos recién compilados.

Mi búsqueda en google hasta ahora no ha arrojado nada. La página de ClockworkMod parece estar bastante desprovista de documentación. ¿Alguien puede señalarme alguna documentación sobre el proceso de creación del paquete de instalación?

¿Flashear un kernel con Odin rompe CWM?
Supuse que lo haría ya que ODIN parece mostrar el bloque de arranque principal del teléfono, pero podría estar totalmente fuera de lugar allí. No quería probarlo sin saberlo con certeza. Entendí que CWM es un kernel delgado de intermediario que pivotaría hacia el kernel adecuado, pero nuevamente, podría estar totalmente fuera de lugar.

Respuestas (2)

La parte requerida de un archivo .zip del kernel se ve así:

META-INF
    com
        google
            android
                update-binary
                updater-script

También querrá tener el zImagearchivo del núcleo en otro lugar, más fácil si lo tiene en la raíz del archivo.

updater-scriptcontiene lo siguiente como mínimo (se supone zImageen la raíz):

assert(package_extract_file("zImage", "/tmp/zImage");
       write_raw_image("/tmp/zImage", "/dev/block/mmcblk0p8");
       delete("/tmp/zImage")
);

También puede hacer cosas como mostrar una barra de progreso, imprimir mensajes, borrar /cache, etc.

Querrá obtener update-binaryde otro paquete de kernel para el SGS2. Uno al azar se adjunta a esta publicación de XDA .

Probé este método en mi SGS Vibrant sin problemas, utilizando un kernel de un paquete Odin y un update-binarykernel .zip de otro Vibrant. Tenga en cuenta que esto es perfectamente seguro siempre que esté escribiendo en la partición correcta: para Vibrant era bml17, para SGS2 parece ser mmcblk0p5(basado en el kernel de XDA que vinculé arriba) o mmcblk0p8si está flasheando un imagen de arranque completa (ver comentarios a continuación). Querrás verificarlo con seguridad. En el peor de los casos, su kernel no funciona y muestra uno bueno conocido.

Para el Samsung Galaxy S2 (T-Mobile) SGH-T989, la directiva adecuada (recopilada de una buena ROM conocida que ya instalé) muestra que el bloque de arranque va en /dev/block/mmcblk0p8, no en p5. Es posible que desee editar eso por razones de seguridad. ¡Hice un zip basado en esta publicación y funcionó de maravilla! ¡Gracias!
@PeterGrace Ah, la imagen de arranque es más que solo el núcleo, por eso es diferente.
¿Hay alguna manera de asegurarme de que debo usar /dev/block/mmcblk0p8? Tengo un Galaxy S2 de Virgin Mobile Canada (el mismo que Bell Canada), por lo que no es de T-Mobile y no tengo una buena ROM conocida (excepto CM7, pero escribe una imagen de arranque, no una zImage). ¿Debo suponer que mi Virgin Mobile GS2 funciona de la misma manera que su T-Mobile GS2 o hay alguna forma de comprobarlo con seguridad?
@Rognon Podría intentar ejecutar mountpara ver qué bloques están asignados dónde. De lo contrario, busque una ROM.
@MatthewRead mountno muestra ni p8 ni p5. Buscar en Google parece indicar que zImage debe escribirse en p5, al igual que este sitio: forum.xda-developers.com/showthread.php?t=1691867 . He intentado enumerar el contenido de la carpeta mencionada en el hilo, pero no existe en mi teléfono...

Descubrí que puedes usar fastboot sin afectar a CWM.

sudo /path/to/fastboot boot boot.img

o

sudo /path/to/fastboot flash:raw boot /path/to/zImage /path/to/ramdisk.img