Saltar para conteúdo


Foto
* * * * * 1 votos

[How to] Rockchip Rom's


  • Por favor inicie sessão para responder
12 respostas a este tópico

#1 AbduL

AbduL

    Geek de Android

  • Membros
  • PipPipPipPip
  • 676 mensagens
  • LocalizaçãoOeiras

Mensagem publicada 23 July 2013 - 19:48

 

Boas abdul, podes-me depois dizeres que tools é que usas para criar e alterar roms? gostava de tentar criar uma rom para o mitab, só para aprender como se faz.

Cumps

 

 

Como acho que pode ser interessante, para todos, vou criar este tópico para tentar explicar como fazer a vossa Rom para terminais Rockchip. Vou falar nestes terminais em particular, mas as regras aplicão-se, com algumas mudanças, a todos os terminais.

 

 

 

Boas, 

uso Ubuntu 64, principalmente. Existem kitchen's, mas prefiro desta maneira. Depende de qual imagem quero mexer, uso alguns script's universais para Android. Split-bootimg.pl é um deles. 

São muitas coisas, vais ter de ser mais especifico. :)

 


  • pedronveloso e TheEvolution_PT gosta disto
if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
then mv $user.contact.up.post /.trash; set response($response.type ignore);
$user.up.post.ignore_in_future = true; fi;

 


#2 TheEvolution_PT

TheEvolution_PT

    Membro

  • Membros
  • PipPip
  • 27 mensagens
  • miTABFunk

Mensagem publicada 23 July 2013 - 20:19

Obrigado :) sabes se é possivel usar essas tools para fazer no windows? não to muito dentro com o linux



#3 AbduL

AbduL

    Geek de Android

  • Membros
  • PipPipPipPip
  • 676 mensagens
  • LocalizaçãoOeiras

Mensagem publicada 23 July 2013 - 20:38

Li que com o OSFMount conseguias montar a imagem do system em windows, mas nunca experimentei. E não sei como depois vai lidar com as permissões, que são diferentes do Windows. 

 

Mas sem linux é muito dificil (impossivel)


  • TheEvolution_PT gosta disto
if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
then mv $user.contact.up.post /.trash; set response($response.type ignore);
$user.up.post.ignore_in_future = true; fi;

 


#4 TheEvolution_PT

TheEvolution_PT

    Membro

  • Membros
  • PipPip
  • 27 mensagens
  • miTABFunk

Mensagem publicada 23 July 2013 - 22:38

Li que com o OSFMount conseguias montar a imagem do system em windows, mas nunca experimentei. E não sei como depois vai lidar com as permissões, que são diferentes do Windows. 

 

Mas sem linux é muito dificil (impossivel)

Tenho que ver então se faço dualboot no meu pc para ter o windows e o linux, obrigadão pela ajuda :)



#5 AbduL

AbduL

    Geek de Android

  • Membros
  • PipPipPipPip
  • 676 mensagens
  • LocalizaçãoOeiras

Mensagem publicada 24 July 2013 - 15:36

Posso te dizer que é mais fácil, e rápido, do que instalar o Windows. Usa o Wubi, faz tudo por ti, apenas precisas de seguir as indicações.

 

Para mexer no system.img, temos de montar a imagem como se fosse um ficheiro iso. Fazemos assim, por exemplo:

  1. Criamos uma directoria para montar a imagem - mkdir system
  2. Montamos a imagem - sudo mount -o loop system.img system/ - sudo sigifica 'SuperUser Does' e significa que vou executar o comando com permissões elevadas. Truque - sudo su
  3. Agora podemos subir para a directoria e temos lá o nosso system para modificar-mos.
  4. Para desmontar - umount system.img

Uma nota, o comando de montar poderá não resultar dependendo do formato de ficheiros. No exemplo o SO vai tentar descobrir qual o formato senão conseguir temos de usar a opção -t e especificar o tipo de ficheiros.


Editado por AbduL, 25 July 2013 - 17:10.

if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
then mv $user.contact.up.post /.trash; set response($response.type ignore);
$user.up.post.ignore_in_future = true; fi;

 


#6 AbduL

AbduL

    Geek de Android

  • Membros
  • PipPipPipPip
  • 676 mensagens
  • LocalizaçãoOeiras

Mensagem publicada 06 November 2013 - 16:54

O user Sergio Poverony do 4pda.ru compilou uma ferramenta para ser usada em Windows, que permite editar quase todas as partes do FW de Rockchip's.

 

RK Firmware Tools 


Editado por AbduL, 31 January 2014 - 17:10.

if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
then mv $user.contact.up.post /.trash; set response($response.type ignore);
$user.up.post.ignore_in_future = true; fi;

 


#7 AbduL

AbduL

    Geek de Android

  • Membros
  • PipPipPipPip
  • 676 mensagens
  • LocalizaçãoOeiras

Mensagem publicada 14 December 2013 - 23:38

Boas  Abdul, 

 

desculpa incomodar-te mais uma vez.

Usei a ferramenta que me indicaste e consegui extrair todos os ficheiros *.img. 

No ficheiro boot.img depois de extraído não aparece nenhum initlogo.rle. Aparecem vários init*.* mas esse não.

Será que depois de extraída a imagem o ficheiro fica com outro nome?

 

Será que através do Ubuntu é mais fácil?

Tenho a ultima versão a correr numa pen, se pudesses dar uma ajuda?

 

Obrigado 

 
Existem 2 tipos de boot.img, um com o kernel no interior e outro sem o kernel. Podes distingui-los pelo tamanho, com kernel ~8 MB e sem kernel ~2MB. Ou podes usar um editor hexadecimal e ver os primeiros 8 bytes da imagem, se for KRNL não tem kernel se for ANDROID tem o kernel no interior.
 
No teu caso não tem kernel.
Temos de remover a assinatura, que está nos 8 primeiros, neste caso fazemos :
dd if=boot.img of=boot.img-ramdisk.gz skip=8 bs=1 count=20000000

Ficamos com um ficheiro gz, depois :

 

  - criamos uma directoria  para o ramdisk e subimos para a mesma.
mkdir ramdisk
cd ramdisk

 

- Fazemos os próximos passos com permissões elevadas.

sudo su 

Eu faço assim, há quem discorde.  :money_mouth:

 
 
-Descomprimimos o ramdisk
 
gunzip < ../boot.img-ramdisk.gz | cpio -i --make-directories
 
-Fazemos as nossas alterações
 
 
 
Para voltar a fechar a imagem, fazemos:
find . -exec touch -d "1970-01-01 01:00" {} \;
find . ! -name "." | sort | cpio -oa -H newc | gzip -n >../newboot.gz 
cd ..

Ficamos com um ficheiro gz, que só falta assinar para ficar pronto para flashar.

 

rkcrc -k newboot.gz newboot.img

Imagem pronta para.

 

Vou anexar o meu rkcrc ao post, porque não deves ter. Este é para x64, se não funcionar tens de compilar no teu sistema.Ficheiro anexado  rkcrc.7z   3.88KB   4 descarregamentos


Para criar um ficheiro rle tens este script e este binário. Coloca os dois na mesma diretória.

Ficheiro anexado  to565.7z   2.71KB   3 descarregamentos

Ficheiro anexado  initlogo.sh.7z   253bytes   3 descarregamentos


Editado por AbduL, 14 December 2013 - 23:25.

if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
then mv $user.contact.up.post /.trash; set response($response.type ignore);
$user.up.post.ignore_in_future = true; fi;

 


#8 revgrafica

revgrafica

    Novato

  • Membros
  • Pip
  • 9 mensagens

Mensagem publicada 18 December 2013 - 15:36

Tinhas razão Abudl, não estava a abrir a tua BOOT.IMG. Burrice minha.

Com a ajuda das ferramentas que indicaste consegui "descompactar" a boot.img e com um JPG que eu tinha feito á medida de 1024x600 tem uma opção que o converte para RLE.

Muito simples.

Depois coloquei onde estava tudo descompactado e substitui o teu initlogo.rle pelo criado por mim.

Depois cliquei na opção BUILD e criou uma nova BOOT.IMG.

 

A minha duvida e não queria fazer asneira e antes de Flashar queria perguntar-te se com o programa RKAndroidTool_v1.37 flasho só o BOOT.IMG ou tenho de fazer mais alguma coisa.

Tem aquelas 4 opções em baixo clico só na RUN?

 

Desculpa tanta pergunta mas sou um maçarico em Android :) 



#9 AbduL

AbduL

    Geek de Android

  • Membros
  • PipPipPipPip
  • 676 mensagens
  • LocalizaçãoOeiras

Mensagem publicada 18 December 2013 - 16:04

Sim, selecciona o mesmo parameter file que usaste para flashar e marca só a boot.img. Depois é só clicar no RUN.


if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
then mv $user.contact.up.post /.trash; set response($response.type ignore);
$user.up.post.ignore_in_future = true; fi;

 


#10 revgrafica

revgrafica

    Novato

  • Membros
  • Pip
  • 9 mensagens

Mensagem publicada 18 December 2013 - 16:09

Só mais uma duvida, com a tua ROM como faço para entrar em modo Flash, porque com o VOL -  +  Power não dá.



#11 AbduL

AbduL

    Geek de Android

  • Membros
  • PipPipPipPip
  • 676 mensagens
  • LocalizaçãoOeiras

Mensagem publicada 18 December 2013 - 16:14

É a mesma combinação de teclas, não está relacionado com a Rom.

 

Mas podes usar a própria ferramenta carregando no SWITCH, através de ADB "adb reboot bootloader", ou com uma aplicação de reboot avançado. 

 

EDIT:

Bem me parecia que eram mais teclas.

 

 

Metodo  para entrar em  flasher (é mais diicil pois o ecrã fica preto )

 
1º Como o ecra fica preto o melhor é abrir "device manager windows" nos USB devices para ver aparecer um dispositivo a ser instalado ou abrir o programa
 RKandroid Tool  que quando está correcto (em modo Flash)  aparecerá "Found RkAndroid Loader Rock USb " contra Found Rk Android Mass Storage Usb "ou No found RkAndroid Rock Usb
 
agora  carregar 3 teclas ao mesmo tempo (vol- +back +power)  + reset tira o reset ao fim de 5s e depois logo a seguir tira os 3 ao mesmo tempo
se tiverem o programa aberto  verão : Found RkAndroid Loader Rock USb

Editado por AbduL, 18 December 2013 - 16:18.

  • revgrafica gosta disto
if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
then mv $user.contact.up.post /.trash; set response($response.type ignore);
$user.up.post.ignore_in_future = true; fi;

 


#12 revgrafica

revgrafica

    Novato

  • Membros
  • Pip
  • 9 mensagens

Mensagem publicada 18 December 2013 - 17:43

Mais uma vez com a tua preciosa ajuda Abdul foi sucesso novamente.

 

Abraço


  • AbduL gosta disto

#13 AbduL

AbduL

    Geek de Android

  • Membros
  • PipPipPipPip
  • 676 mensagens
  • LocalizaçãoOeiras

Mensagem publicada 18 December 2013 - 17:50

Estamos cá para isso  :D


  • revgrafica gosta disto
if [ $up.post.type = $type.two.lazy.to_use_google ] || [ $up.post.type = $type.silly_question ];
then mv $user.contact.up.post /.trash; set response($response.type ignore);
$user.up.post.ignore_in_future = true; fi;