Como aplicar um patch no kernel?

Andei fazendo uns procedimentos de instalação de ROM no meu celular, e nisso acabei fazendo besteira e agora ele não liga mais.

Agora eu preciso usar uma ferramenta no PC para reparar ele. Fui baixar a ferramenta no GitHub e lá diz que para usar ela no Linux é necessário aplicar este patch no kernel da distribuição, para que o telefone seja reconhecido pelo programa ao conectar ele no PC via USB.

A minha dúvida agora é: como faz pra instalar esse patch no kernel do Arch. É necessário compilar o kernel? E qual a maneira mais fácil de fazer?

1 Curtida

:wave:t2:

Eu fiz várias vezes este procedimento no meu Sony Ericsson Xperia Play principalmente quando os Android 4 até 6 foram aparecendo no mercado. Também num tablet Genesis e outro da Samsung usando o Odin e o Kies. Mas todos eles sempre foi no Windows, nunca tentei fazer o procedimento por uma distro Linux. Perdão a pergunta mas qual seria o celular que você estaria tentando fazer os procedimentos?

:pray:t2:

É um Meizu M5c. Na verdade são duas ferramentas que eu preciso usar. Essa aqui, para reparar o erro e um programa chamado SP Flash Tool, para reinstalar a ROM dele. Eu quero fazer isso no Arch porque é o único sistema que esse segundo programa funciona direito pra mim (eu instalo pelo AUR). Poderia fazer no Windows também, mas vai dar muito trabalho pra achar e instalar os drivers certos e tenho medo de dar errado.

Eu vi que alguém teve problemas com brick no Realme 6, esse era meu maior medo pois os fóruns na época falavam que brick já era, especialmente quando fiz o procedimento de transformar um Wii em um “Computador” “Super Wii” :innocent:, Brick era um nome temível… Mas parece que tem como “unbricking” pelo issue que está sendo tracking, não acompanhei direito o issue. Mas esse procedimento não vai funcionar no Meizu M5c.

Bom aparentemente parece não ser difícil executar os procedimentos lendo o readme no github. O seu Meizu não liga mais tipo nem pisca a tela? Se você conectar ele no computador ele dá algum sinal de vida?

@RuKsu Tudo começou aqui, eu fui tentar fazer esse procedimento e deu esse erro que eu relatei lá. Me sugeriram fazer um procedimento que usa essa ferramenta MTK-bypass que eu citei acima, e me disseram ter testado em um Meizu e funcionado. Só posso ter certeza se vai funcionar no meu depois que eu testar…

Ah legal, li a conversação aqui. Mas chegou a falhar na hora que estava formatando mesmo? Tipo mau contato no cabo usb… Isso tem de ficar ligeiro, senão só a fabricante tem o arquivo de autorização… Isso é um tipo de brick. Mas vi que tem o procedimento como você disse apartir de um vídeo no Youtube que o rapaz indicou, mas ele não deixou um link :thinking:… Você vai tentar seguir o vídeo? Qualquer coisa podemos tentar juntos. Outro detalhe você pensa em instalar o TWRP por exemplo e o Lineage OS 14?

Como eu disse podemos tentar, acha o vídeo “flash mtk(mediatek) without da” que você vai seguir e se quiser compartilhar o link aqui, daí tentamos resolver.

Vai ser nostálgico :sweat_smile: :joy:

Então, mandei o link pra você no privado, porque na verdade essa não é a dúvida principal… O que falta mesmo pra mim é aplicar esse patch no kernel do Arch pra eu poder usar a ferramenta. Se alguém souber como faz isso e puder me ajudar eu agradeço.

1 Curtida

E porque você não usa o hard reset para resetar para o padrão de fabrica?

@Thiago12 mano tu podia usar o adb & fastboot para passar o rom original e o recovery
a partir dae é so tentar instalar a rom que tu queria…
eu sempre uso o TWRP para isso pois é so por a rom no micro sd e dar flash

claro isso se tiver como por ele em download pelo menos

Isso não funciona, porque o problema é mais grave. Eu tava mexendo com bootloader e tentando instalar uma ROM pelo PC. Aí deu problema no meio do processo e agora o telefone está praticamente “morto”.

Na verdade, eu já encontrei a solução para consertar o problema do celular. Como eu disse no começo do post, eu preciso instalar no PC uma ferramenta chamada MTK-bypass, conectar um cabo USB e usar a ferramenta para recuperar meu telefone.

Só que para instalar essa ferramenta no Linux, eu preciso aplicar um patch no kernel da minha distribuição (nesse caso o Arch), para que ao conectar o celular no PC o programa reconheça o telefone. A minha dúvida mesmo é como eu faria pra aplicar esse patch no kernel do Arch.

Eu acho que vou tentar fazer o procedimento usando o Windows mesmo, mas se alguém souber responder a minha pergunta no começo do post fique à vontade.

1 Curtida

Complementando o bootloader corrompeu, “brickou” ele iria precisar de um arquivo de autorização e instalação da fabricante do Meizu para poder re-instalar o bootloader original… Nessa parte eu aplaudo a Sony :clap:t2: pois ela deixa os developers fazerem estes procedimentos, sendo legal pois ela libera as chaves e tals para os developers mas levando em consideração que a garantia do aparelho se perde.

Mas no mundo dos developers, eles não descansam e sempre acham a solução, ou quase sempre, pois se foi feito e desfeito pode ser feito denovo, afinal de contas as únicas informações que o hardware e o software entendem são 0 e 1 além dos elétrons…

1 Curtida

agora entendi… ;D

2 Curtidas

@Thiago12 Eu estava lendo o código patch do kernel, não tenho conhecimento de como criaram o código, a estrutura e comportamento, etc… Mas eu fiquei um pouco “desconfiado” se vai funcionar:

@@ -1090,6 +1090,7 @@
return -EFAULT;

Se for váriavel este “EFAULT” então tranquilo, o developer pode dar qualquer nome as váriaveis e constantes que ele criar, seguindo umas certas regras, mas caso ao contrário, será que não deveria ser “DEFAULT”?

Isso me deixou meio “desconfiado” mas como eu disse não tenho o conhecimento específico então só tentando mesmo, ou aguardando ver se alguém já executou este procedimento de “patchear” o kernel.

1 Curtida

A você modifico a ROM que era onde estava o hard reset agora entende.
Tem patch que é aplicado em código fonte e patch que é aplicado em binários.
Se for patch para aplicar em binário só vai funcionar nos kernels ao qual o patch foi criado para aplicar.
Agora se for patch de código fonte pode funcionar as vezes ate nos kernels mais recentes.

Apos aplicar o patch no código fonte o código fonte tem que ser compilado para gerar os binários do kernel e então instalar.
Se for patch de código fonte tera que aprender a compilar o kernel Linux.
Você pode obter o código fonte do kernel Linux aque.

Tem alguém que saiba aplicar patch no código fonte do kernel Linux por a que?

2 Curtidas

O requisito pra vc aplicar um patch no kernel é que vc tenha o código fonte.

Daí vc pode aplicar o patch, ou atraves do comando patch ou inserindo manualmente as alterações no arquivo especificado.

Depois vc vai precisar compilar o kernel e instalá-lo.

Por fim atualize as entradas do boot e inicie a máquina pelo kernel que vc compilou!

Pra ver aplicar o patch é o mais simples. Difícil mesmo é fazer todo o procedimento pra compilar o kernel vc mesmo. Não sei se o arch tem ferramentas específicas, mas procure informações como se quisesse compilar o próprio kernel. Conforme forem surgindo as dúvidas, manda aqui!

2 Curtidas

Instalar o Pamac não ajudaria? Compilar é bem mais simples por ele, creio…

1 Curtida

A é verdade pode ser que apos você aplicar o patch tenha que ativar o driver aplicado pelo patch no menuconfig do kernel.
Vai precisar ler o manual do patch.

Ai fica a pergunta, porque que algumas fabricante não envia um e-mail de pull requeste para o driver ser aplicado no kernel seu intervenção do usuário.
Mancada d+ dessas fabricante uma vez que qualquer um pode fazer os pull requeste.
Apos o patch ser implementado no kernel pelo pull requeste ele permanece ate só deus sabe quando e ainda os desenvolvedores do kernel trata de dar as manutenção na implementação.

2 Curtidas

Compilar o kernel não é difícil é trabalhoso
É só resolver as dependência dar um make menuconfig dps make bzImage dps make modules dps make install e então mkinitramfs -o initrd.img-4.12(use o tab para completar) (nome do kernel) e ai update-grub e para finalizar reiniciar o sistema: https://diolinux.com.br/linux/compilar-um-kernel-linux-passo-a-passo.html

Eu compilo o meu kernel em 5min eu uso todos os 6 cores físico da minha maquina a 4.00GHz.