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

10

Soy un veterano experimentado en Linux y recientemente compré un Samsung Galaxy S2 de T-Mobile. He estado sintiendo el error, 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 flashear un nuevo kernel y, por lo tanto, corromper ClockworkMod, así que estoy buscando detalles sobre cómo crear un paquete de instalación 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 sacado nada. La página ClockworkMod parece estar bastante vacía de documentación. ¿Alguien puede señalarme alguna documentación sobre el proceso de creación del paquete de instalación?

Peter Grace
fuente
1
Parpadear un núcleo con Odin rompe CWM?
Matthew leyó
1
Pensé 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. Comprendí que CWM es un kernel delgado de intermediario que pivotaría al kernel adecuado, pero nuevamente, podría estar totalmente fuera de lugar.
Peter Grace

Respuestas:

8

La parte requerida de un archivo .zip del núcleo se ve así:

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

También querrás tener el zImagearchivo del kernel en otro lugar, más fácil si solo lo tienes 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.

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

Probé este método en mi SGS Vibrant sin problemas, usando un kernel de un paquete Odin y un update-binary.zip de otro kernel Vibrant. Tenga en cuenta que esto es perfectamente seguro siempre que esté escribiendo en la partición correcta: para el Vibrante que era bml17, para el SGS2 parece ser mmcblk0p5(basado en el núcleo de XDA que he vinculado anteriormente) 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 núcleo no funciona y muestra una buena conocida.

Matthew Read
fuente
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 p5. Podría querer editar eso por razones de seguridad. ¡Hice un zip basado en esta publicación y funcionó de maravilla! ¡Gracias!
Peter Grace
@PeterGrace Ah, la imagen de arranque es más que solo el núcleo, por eso es diferente.
Matthew leyó
¿Hay alguna manera de asegurarme de que debo usar / dev / block / mmcblk0p8? Tengo un Galaxy S2 de Virgin Mobile Canada (el mismo de Bell Canada), así que no es de T-Mobile y no conozco una buena ROM (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 verificarlo con seguridad?
Rognon
@Rognon Podrías intentar correr mountpara ver qué bloques están asignados y dónde. De lo contrario, busque una ROM.
Mateo leyó el
@MatthewRead mountno muestra ni p8 ni p5. Buscar en Google parece indicar que zImage debería escribirse en p5, y también 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 ...
Rognon
-1

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
redbmk
fuente