sexta-feira, 3 de agosto de 2012

[Tutorial] Montando sua Custom ROM

A pedido do leitor Bruno Miranda Montando sua Custom ROM - COMPLETA



Considerações iniciais:


- Se você for um usuário inexperiente, nunca tente isso. Não responderei a perguntas bobas, simplesmente irei ignorar.
- O tutorial ensinará:
a) Manusear o script
b) Modificar o script
c) Modificar a ROM
d) Organizar
e) Corrigir erros
f) Algumas dicas
g) Talvez mais coisas
- LEIA ATÉ O FINAL DUAS VEZES. Se perguntar algo que está no tópico, não irei responder.
- Use com cuidado, qualquer falha, problema no celular, erro de iniciante, irei somente dar boa sorte 
- Se você não leu tudo acima, não continue.
O que usar?
- Script base para a ROM, em duas opções:
a) Sem instalação de modem e kernel
b) Com instalação de modem e kernel
- WinRAR, de preferência
- Meu tutorial Explorando o conteúdo de firmwares
- Uma ROM 
- Notepad ++ para modificações no script, se for editar

Primeiramente...
- Escolha uma ROM a seu gosto. Se quiser deodexar, procure por tópicos no XDA ou no Google. Ou então... use a pasta app e framework de uma ROM já deodexada. O Wanam posta as ROMs dele primeiramente toda completona deodexada para depois fazer suas modificações
- Crie uma pasta em algum lugar. É nela que trabalharemos
- Use o meu tópico acima para extrair todo o firmware para essa pasta
- Substitua as pastas app e framework pela deodexada, caso opte por uma ROM Deodex
- O ZIP base acima contém já o meu CSC modificado brasileiro e ZTO

Modificando o script do ZIP
- Inicialmente...
a) O script não instala as permissões root. Explicarei mais em breve
b) Se optar pelo script v2, ele irá instalar algum modem e kernel
c) Se optar pelo script v1, nada ele instalará além da parte do sistema [/system]
- Como script não instala as permissões root, pense um pouco: Se você instalar um Custom Kernel, ele já instalará as permissões root, e como é idiota ter uma ROM Samsung com um Stock Kernel, não é necessário modificar a ROM para root. E outra: se vai instalar no CWM, é porque já deve ter um Custom Kernel
- [A partir daqui, é para criar uma ROM além do além do básico] Abra o update-script contido na pasta /META-INF com o Notepad ++
- Não recomendo um wipe data forçado, mas se quiser assim, inclua essas linhas no script [de preferência pelo início]:
a) mount("ext4", "EMMC", "/dev/block/mmcblk0p10", "/data");
b) delete_recursive("/data");
- Para fazer um wipe cache, inclua essas linhas [de preferência pelo início]:
a) mount("ext4", "EMMC", "/dev/block/mmcblk0p7", "/cache");
b) delete_recursive("/cache");
- Se você quiser que seja instalado apps na pasta data, para desinstalação fácil, inclua as linhas de wipe data e cache, crie uma pasta acima da pasta do firmware extraido com algum nome [O nome da pasta tem que ser igual ao nome da pasta no script]. Iremos utilizar Apps. De preferência, nesse caso de aplicativos de usuário, coloque o nome do APK desse tipo: com.mxtech.videoplayer.ad-1.apk. Inclua então, essa linha (deve ser incluído depois da do wipe, claro) [de preferência pelo final]:
a) package_extract_dir("Apps", "/data/app");
- Caso queira adicionar alguma pasta/arquivo extra de alguma outra ROM, não esqueça de incluir alguma linha extra, ditando alguma permissão, symlink, etc... Como exemplo, se criar a pasta init.d junto com algum arquivo, procure a linha de permissão sobre eles, pois ao extrair algum arquivo sem linha, as permissões são rw-r--r-- por padrão, e já o init.d, precisa de uma permissão rwxr-xr-x.
- Adicione ou remova alguma coisa. Deixei uns espaços extras para colocar alguma informação quando instala o script. Tire a # e coloque entre os " " a mensagem, e por favor, não retire os créditos, se for publicar
- Script? Acho que está feito!!

Montando a estrutura da ROM
- Onde você extraiu o firmware? Pense um pouco...
- Extraia o ZIP disponibilizado acima na nossa pastinha de trabalho da ROM
- Pegue todo o conteúdo do firmware e jogue na pasta system, onde você extraiu o ZIP do script
- Se você criou a pasta Apps acima, ela tem que ficar na raiz do ZIP extraido, ou seja: Apps | META-INF | system
- Caso você optou pelo script v2, pegue o Kernel e Modem que você quer ser incluido. Eles têm que estar com o nome zImage e modem.bin, respectivamente, e devem ser colocados juntos com as pastas Apps | META-INF | system. Temos a nova estrutura Apps | META-INF | system | modem.bin | zImage
- Explicando novamente: Na pasta Apps, devem ficar os APKs. Na pasta META-INF, só o script editado, ou não. Na pasta system, o conteúdo da ROM, de app à build.prop [ou xbin, caso build.prop esteja antes]. modem.bin = modem para ser instalado com o script v2. zImage = kernel para ser instalado com o script v2
- Com isso, a estrutura está, acho, que pronta. Iremos agora para as modificações
- Dica: abra o arquivo build.prop, nele você pode editar algumas coisas:
a) Em ro.build.display.id= você pode mudar o nome que aparecerá nas configurações
b) ro.product.locale.language= e ro.product.locale.region= você pode colocar o idioma padrão, exemplo: pt e BR
c) Você verá também os toques, ringtone, notifications, alarm... Edite-os de acordo com o arquivo de áudio contido em suas pastas, na pasta media/audio
d) Cheque outras configurações também

Modificando a ROM
- A parte mais legal. Iremos dar uma ajeitada
- Na pasta app, dentro da system, temos todos os apps que serão instalados como apps de sistema. Esses tem o nome exemplo, ApexLauncher.apk. Delete-os a sua vontade, com cuidado, ou adicione somente os essenciais. Se tirar o TwLauncher, não esqueça de colocar um Launcher aqui danado!!!
- Na pasta xbin temos alguns arquivos, não apague eles, mas coloque algum caso precise. Cheque outras ROMs, script e pasta xbin para saber como usar
- Na pasta etc temos mais ou menos, as configurações.:
a) No arquivo gps.conf, caso queira configurar para o Brasil, substitua north-america por south-america. Ele é o arquivo do GPS, que modificando, pode dar uma melhorada
b) No arquivo hosts, podemos bloquear sites, ads, etc... Modifique-os de acordo com sua vontade, de preferência, baixe um arquivo hosts com o programa AdAway
c) Na pasta init.d, caso crie uma e inclua o script de permissões para ela e o arquivo, coloque arquivos de script que irão ser executados ao iniciar o sistema
d) Delete a pasta kies, caso retire a compatibilidade com o Kies
e) Modifique a pasta etc como queira, essas foram só umas dicas
- Na pasta media, temos algumas personalizações
a) Você pode colocar uma boot animation. Apague a pasta video se quiser nenhuma animação de shutdown, e apague os arquivos bootsamsung e bootsamsungloop se for incluir outra boot animation
b) Modificar os sons na pasta audio
- Modifique outras pastas a seu gosto na pasta system da ROM
- Terminamos de modificar a ROM, só falta uns acabamentos no geral!!

Finalizando...
- Após terminar de modificar tudo, iremos dar uma compactada em tudo
- Selecione os arquivos e pastas Apps | META-INF | system | modem.bin | zImage, ou Apps | META-INF | system, ou META-INF | system
- [WinRAR] Com o botão direito do mouse, clique em Adicionar para o arquivo, onde tem Normal selecione ótimo, onde tem RAR selecione ZIP
- Está tudo pronto!!! Temos agora um arquivo ROM.zip, e dentro dele, só espere encontrar a pasta META-INF junto com o resto. Na raiz do ZIP só pode conter esta pasta junto com as outras
- Instale no CWM do seu celular, se tudo deu certo, parabéns!! Caso queira publicar, publique aqui no Brasil Droid, ou fale comigo se quiser em algum outro lugar . Dica: use o Mediafire para publicar
- Se deu errado, continue a ler

- Corrigindo problemas na instalação
- Possibilidades:
1. Você não editou o script com o Notepad ++
2. Você incluiu alguma linha errada, ou sem o ; no final de cada uma
3. Você não deixou a pasta META-INF e as demais na raiz do ZIP
4. Você editou a ROM de forma a deixa-la inútil
5. Algo deu errado ao zipar
6. O zImage ou modem.bin podem estar corrompidos
7. Algum arquivo essencial está faltando
- Caso nada dê certo, refaça a ROM com mais cuidado e leia o tópico novamente

*Acho que terminamos. Boa sorte e me conte o resultado!!

Um comentário:

  1. muito obrigado,agora com esse tutorial perfeito posso montar uma rom.obrigado mesmo valeu.

    ResponderExcluir