Como crio um pacote de instalação do ClockworkMod?

10

Sou um veterano em Linux e comprei recentemente um Samsung Galaxy S2 da T-Mobile. Eu estou sentindo o bug, então optei por baixar o código-fonte do site da Samsung e começar a mexer.

Meu problema é que eu já tenho o ClockworkMod instalado no meu telefone, então não quero odin atualizar um novo kernel e, portanto, danificar o ClockworkMod, então estou procurando detalhes sobre como criar um pacote de instalação adequado do ClockworkMod (geralmente / sempre um arquivo zip?) para que eu possa testar os kernels recém-compilados.

Minha pesquisa no google até agora não trouxe nada. A página ClockworkMod parece ser bastante árida de documentação. Alguém pode me indicar alguma documentação sobre o processo de criação do pacote de instalação?

Peter Grace
fonte
11
Piscar um kernel com Odin quebra o CWM?
Matthew Leia
11
Imaginei que seria, já que o ODIN parece exibir o bloco de inicialização principal do telefone, mas eu poderia estar totalmente fora da base por lá. Não queria experimentar sem ter certeza. Meu entendimento era que o CWM é um kernel fino intermediário que poderia girar para o kernel adequado, mas, novamente, poderia estar totalmente fora de base.
Peter Grace

Respostas:

8

A parte necessária de um arquivo .zip do kernel é semelhante a esta:

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

Você também deseja ter o zImagearquivo do kernel em outro lugar, mais fácil se você o tiver na raiz do arquivo.

updater-scriptcontém o seguinte no mínimo (assume zImagena raiz):

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

Você também pode fazer coisas como mostrar uma barra de progresso, imprimir mensagens, limpar /cachee assim por diante.

Você vai querer pegar update-binaryde outro pacote de kernel para o SGS2. Um aleatoriamente é anexado a este post do XDA .

Testei esse método no meu SGS Vibrant sem problemas, usando um kernel de um pacote Odin e um update-binaryde outro kernel do Vibrant .zip. Observe que isso é perfeitamente seguro desde que você esteja gravando na partição correta - para o Vibrant bml17, para o SGS2 parece ser mmcblk0p5(baseado no kernel do XDA que eu conectei acima) ou mmcblk0p8se você estiver exibindo um flash imagem de inicialização inteira (veja os comentários abaixo). Você vai querer verificar com certeza. Na pior das hipóteses, seu kernel não funciona e você exibe um flash conhecido.

Matthew Read
fonte
Para o Samsung Galaxy S2 (T-Mobile) SGH-T989, a diretiva adequada (coletada de uma ROM em bom estado já instalada) mostra que o bloco de inicialização entra em / dev / block / mmcblk0p8, não na p5. Pode querer editar isso por uma questão de segurança. Fiz um zip com base nesse post e funcionou como um encanto! Obrigado!
Peter Grace
@ PeterGrace Ah, a imagem de inicialização é mais do que apenas o kernel, por isso é diferente.
Matthew Leia
Existe uma maneira de garantir que eu deveria usar / dev / block / mmcblk0p8? Eu tenho um Galaxy S2 da Virgin Mobile Canada (o mesmo da Bell Canada), então não é da T-Mobile e não tenho uma ROM boa (exceto o CM7, mas ele grava uma imagem de inicialização, não uma zImage). Devo assumir que meu Virgin Mobile GS2 funciona da mesma maneira que o seu T-Mobile GS2 ou existe uma maneira de verificar com certeza?
Rognon
@Rognon Você pode tentar executar mountpara ver quais blocos estão mapeados para onde. Caso contrário, encontre uma ROM.
Mateus Leia
@MatthewRead mountnão mostra nem p8 nem p5. Pesquisar no Google parece indicar que o zImage deve ser gravado na p5, assim como este site: forum.xda-developers.com/showthread.php?t=1691867 . Eu tentei listar o conteúdo da pasta mencionada no segmento, mas que não existe no meu celular ...
Rognon
-1

Descobri que você pode usar o fastboot sem afetar o CWM.

sudo /path/to/fastboot boot boot.img

ou

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