Como tornar o seu Nexus S num Super Android
Por Francisco Franco para o PPLWARE.COM
Tudo o que existe neste mundo tem uma peça, um componente principal, que sem ele não havia funcionamento possível. Nós temos o cérebro, um carro tem um motor, e um sistema operativo tem uma kernel. A kernel é uma ponte que liga o sistema operativo, onde correm as aplicações, ao hardware - a parte física. É possível, através de modificações profundas a nível da kernel, tornar o seu Nexus S num verdadeiro Galaxy II com esteróides.
Abriu-lhe o apetite? Então vamos meter mãos a obra!
Antes de começarmos são precisas três coisas para que todo este processo funcione:
- o telemóvel ter root;
- e uma custom recovery
Claro que uma coisa implica a outra, mas nada como especificar logo à partida. Para quem não têm os pré-requisitos anteriores, o processo é muito simples:
- Fazer download desta aplicação aqui instala-la e seguir as instruções para fazer root. Demora poucos minutos;
- Seguidamente instalar o Rom Manager a partir do market, dar lhe permissões de root e instalar a custom recovery.
Agora que este processo está feito vou passar a explicar em que é que consiste o franco.Kernel e em que aspecto pode melhorar a performance e a bateria do seu Nexus. Este kernel tem por base a versão 2.6.35.14 e para além de todas as funcionalidades de base, eu modifiquei-a de modo a que o Nexus fique mais rápido, mais estável e com mais durabilidade de bateria.
Entrando em pormenores mais técnicos, os melhoramentos face à versão stock da kernel são os seguintes:
- todo o tipo de debug foi removido. Quer-se uma kernel rápida e que não esteja constantemente a enviar informação de debugs por detrás daquilo que o utilizador consegue ver, libertando o processador para outras tarefas mais importantes;
- vários governors para escolha, nomeadamente: smartass2 e lazy - ambos não vêm na kernel de origem. O governor é um pedaço de código que trata de escolher quais as frequências a que o CPU necessita de funcionar conforme o utilizador use o telemóvel
- um scheduler para input e output diferente do que vem de origem de modo a aumentar as velocidades de todas as operações que envolvam inputs e outputs;
- mudança do algoritmo de congestionamento TCP/IP - melhora consideravelmente as velocidades e a estabilidade no uso de redes wifi e 2G/3G;
- alteração do scheduler do CPU - uso do BFS (chamado de Brain Fuck Scheduler) em vez do já conhecido CFS (Completely Fair Scheduler);
- uso do Tiny Preempt RCU em vez do Tree RCU - RCU é um mecanismo de sincronização para, maioritariamente, situações de leitura (read-only);
- kernel compilada com flags especiais e exclusivas para compilar para este hardware, logo tirando mais partido dele;
- uma série de parâmetros e opções modificados para diminuir a carga de trabalho do CPU nomeadamente: vfs_cache_pressure, dirty_ratio, dirty_writeback_centisecs, dirty_background_ratio, vm_swappiness, rr_interval, iso_cpu;
- o refresh rate do ecrã foi aumentado para 65hz para que a expriência do utilizador seja mais fluída, em vez dos 56hz de origem;
- todos os patches de power management disponívels para a kernel .35 foram adicionados de modo a fornecer mais bateria;
- gestão de memória foi também melhorado de modo a que as aplicações e o sistema tire mais partido da memória RAM disponível - lembrem-se que o Android foi feito para usar a RAM, ao contrário do Windows ter a RAM praticamente cheia é bom sinal, pois quer dizer que tem os programas mais usados já carregados na memória e prontos a usar, melhorando, também, a performance e a bateria do telemóvel;
- e muito muito muito mais, mas teria de ficar aqui o dia todo a escrever coisas técnicas.
A lista de features ainda não acabou, mas agora entramos noutro patamar de customização. Adicionei também três mods criados por um senhor chamado Ezekeel, um programador genial. Os mods chamam-se Live OC, Deep Idle e BLX. Destes o mais importante para mim é o Live OC que permite aumentar a frequência do CPU e do bus (barramento que transporta toda a informação entre CPU e os outros componentes) por X % até a um máximo de 50%. Obviamente que quando mais se aumentar mais voltagem é preciso dar ao CPU, mas com as voltagens stock é possível ir até aos 10% sem mudanças (pelo menos na GRANDE maioria dos Nexus S).
Para activar este mod é muito simples. Para quem tem a rom stock da Google é criar um ficheiro.sh e escrever lá esta linha
echo 110 > /sys/class/misc/liveoc/oc_value |
gravar o ficheiro no dispositivo e usar uma app chamada Script Manager (grátis no market Android) para o correr no Android. Neste caso está se a fazer um overclock de 10% no CPU e nos barramentos, ou melhor no bus.
Para quem tiver outras roms que não a stock pode apenas criar um ficheiro chamado 99frequency escrever lá a mesma linha
echo 110 > /sys/class/misc/liveoc/oc_value |
gravar e colocar o ficheiro em /system/etc/init.d e dar lhe permissões especiais a partir do terminal com o comando:
chmod 755 /system/etc/init.d/99frequency |
ou com a própria app explorador que estiverem a usar, se esta o permitir.
Eu não recomendo a fazerem overclock acima dos 10% pois aí terão de aumentar as voltagens e nesse campo eu não vou entrar em detalhes pois não me responsabilizo por nada.
Tenham atenção e testem bem esta funcionalidade pois pode trazer alguma instabilidade ao vosso telemóvel caso este precise de mais voltagem ou caso simplesmente este não gostar de overclock, mas a taxa de sucesso sem problemas é bastante elevada logo não deverá dar problemas se se fizer tudo com calma.
Os outros dois mods são muito simples. O Deep Idle deixa o telemóvel num estado de power saving mais “forte” quando este está com o ecrã desligado, por exemplo a ouvir música, melhorando e de que maneira a vossa bateria.
O BLX faz com que o telemóvel não carregue mais de 96% da bateria, tal como vem de stock da Google, mas ao mesmo tempo mostra-vos os 100% no ecrã, sendo apenas uma mudança cosmética, mas agradável.
As instruções de instalação são muito simples:
- Fazer download neste link
- Transferir o ficheiro para o telemóvel
- Entrar na recovery (desligar o telemóvel e ficar a carregar no botão power e vol upaomesmo tempo até aparecer um ecrã tipo bios e aí escolher a opção recovery)
- Na recovery vão ao menu install zip from sdcard -> choose zip from sdcard
- Seleccionam o ficheiro da kernel (franco.kernel...)
- Escolhem a opção para instalar
- Quando acabar fazem restart
- quando entrarem no sistema já está tudo pronto para usar
Espero que tenham gostado, e que gostem do meu trabalho, pois eu estou bastante satisfeito. De notar que este procedimento não é para ser feito à toa e sem se ter consciência que se for feito sem cuidado e com desprezo pode levar a que o telemóvel fique estragado e que tenha de ser enviado para a fábrica...mas não se preocupem porque se seguirem as instruções não acontecerá nada de mal, não fiquem com medo 🙂 Espero também que não me tenha esquecido de nada, e se o fiz editarei o artigo conforme necessário.
Até a uma próxima!
Este artigo tem mais de um ano
Poderia criar algo parecido para o Samsung Wave S8500 ?
Grato !
Ao fazer isto mudo só o kernel certo? a versão do android permanece a mesma certo??? o que está no telemóvel? perde-se?
Só muda o kernel, o resto mantém-se inalterado.
Só muda o kernel, o resto mantém-se inalterado.
Boas…
Antes de mais parabéns pelo artigo…;)
não teras que fazer um update-rc.d 99frequency defaults(debian ou 99 (niveis)) para o script arrancar?
ou criar um link simbólico para /etc/rc?.d/(S-K…)99frequency?
cmps
Não, em custom roms o init.rc já tem uma espécie de symbolic link para esse /system/etc/init.d e corre no boot todos os ficheiros que lá estiverem. Em stock roms isso não existe, mas mexer não dá para mexer assim no init.rc.
desde ja o meu obrigado… 😉
pensei que fosse como nos sistemas linux normais, que tens que de alguma forma adicionar a “mão”, ou através de alguma ferramenta no rc?.d para arrancar…
cmps
Boas!
Estou tentado a experimentar isto, no entanto, no que toca ao overclocking, o Nexus S aquece um pouco quando se joga durante algum tempo jogos como por exemplo o Asphalt 6, será que vale a pena correr o risco por 10%?
Ou não tens notado diferenças de aquecimento?
Cumprimentos
Não, jogo muito FFIX no emulador da PS1 e nunca aquece…mas tem em atenção que eu uso uma custom rom, é provavelmente mais levezinha que a stock e tem código melhorado etc etc
Vou aproveitar o fim de semana para testar isto! Que rom me aconselhas já agora?
Boas,
Alguém me sabe dizer que operações me fazem perder os updates automáticos da Google? gostava de continuar o meu nexus, mas queria saber até onde posso ir de modo a poder ter tudo stock sempre que quiser, principalmente com a chegada do ICS.
Obrigado
Do que li no XDA, só a mudança compelta de rom te fazem perder as actualizações.
Mesmo mudando, no dia em que sair o 4.0, podes flashar o zip duma “oficial” pela recovery e ele vai te dar o update.
Só mudando completamente de rom é que perdes a funcionalidade dos updates da Google, não te preocupes.
E o mesmo mas para o HTC Wildfire? 😛
Isso é que era! Pobres utilizadores do HTC wildfire 🙁
Muito bom, parabéns. Tenho de testar isto….
Boas! mt bom artigo!
é possivel postar algom semelhante para “kitar” o Galaxy S2 ??
Cumps!
Já tens tantos… no XDA!
Eu uso este: http://forum.xda-developers.com/showthread.php?t=1263838
olá
Excelente artigo, pena eu não ter o nexus… Será que se podia dar dicas sobre o samsung i5800?
A minha pergunta é óbvio mas mais generalista 🙂
O mesmo processo pode ser aplicado a outros equipamentos Android ou é específico para cada equipamento/kernel?
Cupts e parabéns pelo artigo 🙂
Específico a cada telemóvel 🙂
Adorei o artigo, mas não resisti a deixar esta pérola encontrada logo no início:
“Antes de começarmos são precisas três coisas para que todo este processo funcione:
o telemóvel ter root;
e uma custom recovery
“
a primeira era ter o tlm xD
Muito bom Artigo.
Seria interessante se publicassem um artigo semelhante sobre um telemóvel já testado por vocês o Samsung Galaxy Ace, que vos parece?!
Cumprimentos
Isso é que era xD
Cumpz!
Vinha mesmo a calhar para o Galaxy Ace
Considerando que o Ace é uma bosta não vale a pena o tempo perdido.
Isto é tudo muito bonito… O rendimento da bateria não muda?? e outra coisa ainda bem mais importante… A garantia do aparelho? se tiver algum problema e for para reparar como é? tem um sistema operativo alterado… eheheheh Eu tenho dois terminais com android gosto de brincar mas no entanto tenho um seguro…
Diogo, se te acontecer algo, dizes que te assaltaram e o seguro dá-te outro 😉 tens é que fazer a participação na polícia…
O seguro não cobre más utilizações. Se estragares o terminal e enviares para reparação o seguro não serve, os seguros são para imprevistos, não para asneiras. No entanto o risco é minimo se as coisas forem feitas com calma.
Não há a garrafa cheia e a mulher bêbada.
O rendimento pode baixar..só testando.com sorte é igual ao litro e pouco muda com 10% de overclock.
Garantia?Quando ele for para a garantia é remover este ficheiro, mas claro que só quem for tolo é que manda uma aparelho para a garantia com uma custom rom,e traquitanas desse tipo.
Com a recovery instalada é muito difícil ficar com um “tijolo”.
Alguém me sabe dizer se esta kernel trabalha bem em miui??
Sim trabalha bem com todas as roms que existem.
Eu uso a Oxygen no Huawei Ideos X5, é uma ROM muito excelente, boa performance.
Pois não consigo fazer root com o programa mencionado. Tenho que ver outro.
http://nexusshacks.com/nexus-s-hacks/how-to-root-nexus-s-or-nexus-s-4g-new/
Boas,
Instalei o kernel por cima da ROM MIUI e inicialmente tudo impecavel.
O problema veio quando tentei ligar a wireless… Aparece simplesmente “Error” onde deveria mostrar a que rede esta ligado.
Alguem com os mesmos sintomas?
Update: Acho que o telefone nem sequer detecta o modulo Wifi porque quando tento ver o MAC Address diz Unavailable.
isso só dá p MAC quando está ligado o wi-fi, visto que não consegues ligar logo não te aparece o MAC
Estás a usar qual MIUI?E que rádio (baseband) tens?
Já tive esse problema mas foi com outro kernel que não o do Francisco.
Apesar de não ter OC, já há muito que uso os Kernels deste “menino”.
Este senhor foi um dos responsáveis por tornar o LG P500 num “baita” telemóvel quando de origem ele se arrastava todo!E parece que no Huawei X5 o trabalho também rendeu!
O que é nacional é bom!
Abraço
skinnie
Tem OC sim senhor, só que é um OC especial…tu sabes xD
Carlos trabalha impecável na MIUI
Que versao da MIUI tens instalada? Eu fiquei sem WIFI…
Tenho a última inglesa.Mesmo com a PT não tive problemas.Algumas vezes tem de se flashar o kernel outra vez.E pelo menos faço semrpe wipe á cahce e a davilk , mas dizem que não é necessário.
Pois, fiz um wipe e ja ta bom 🙂
Obrigado.
Muitos parabéns pelo trabalho desenvolvido para este terminal. Aqui está um bom exemplo do que melhor se faz cá na tugalandia 🙂
Já flashei e agr vou testar a ver como se comporta.
Ainda quanto aos pedidos de “o mesmo” para outros telemóveis, tenham em conta que isto não é “uma aplicaçãozeca”..isto é um kernel..modificado, que requer bastante tempo e trabalho.
Para já o Francisco Franco tem kernels para LG P500, Huawei X5 e Nexus S.
Mas há outros devs.Googlem, vão ao androidpt,ao XDA…é um mundo..
hey.
Gostei muito deste artigo, e adorava poder experimentar essas alterações. tenho a rom cm7 no meu nexus s, mas não sei e como e que se cria o tal ficheiro 99frequency. é preciso fazer por terminal, ou basta fazer um ficheiro txt no windows, colocar o texto e alterar o nome e formato?
tks
Crias um ficheiro em branco tipo .txt metes lá essa linha e metes no local que está especificado no artigo. Ah e tem em atenção tira a extensão .txt do ficheiro senão acho que ele não corre.
obrigado pela resposta.
criei o ficheiro, mas nao o consigo colocar na pasta que indicas, diz que é read only. tens alguma dica?
obrigado pela ajuda
Que aplicação explorer estás a usar para navegar nos ficheiros?
linda file manager
Faz isto no terminal:
“su” (aqui fazes enter)
e depois
“mount -o remount,rw /system /system”
sem as aspas claro
aí já vai dar 😉
depois de ganhar as permissoes de su, escrevendo tal e qual como tu aqui puseste (mount -o remount,rw /system /system) não me dá nada, nem mesmo mensagem de erro.
googlei e encontrei uma variação do teu codigo que me dá uma mensagem de erro. como não percebo mesmo nada de linux nao sei onde posso corrigir o erro: “mount -o,rw remount /system”
dá me erro de não encontrar o file or directory.
devo estar la perto….
obrigadissimo pela ajuda, tou ansioso de experimentar este kernel!
resolvido.
instalei uma aplicação “root explorer” que permite montar como rw ou ro com um so click.
vou experimentar a kernel agora
Sim eu também uso o Root Explorer, mas como é uma app paga eu não a mencionei, mas é sem dúvida a melhor app explorer que há 🙂
Muito bom trabalho feito a nível deste kernel.
Só para partilhar resultados do benchmark, a nível do Quadrant consegui uns 1577 apenas com a stock rom e com o kernel @franco e o oc de 10%.
Esperava mais. Alguém que possa partilhar os seus resultados?
Abraço!
Só? Eu com a Oxygen mais a kernel e 10% de live OC faço 3800/3900. Faz isto e vê se melhora:
http://forum.xda-developers.com/showthread.php?t=1239165
Bem, realmente aumentou me as frames nos últimos 2 testes gráficos para 60fps e 35fps respectivamente.
Obtive 1900 agora. Começo a achar que o quadrant é que está a comprometer o bench.
É assim o Quadrant nem nenhuma app de benchmarks é de confiar, são testes sintéticos e acabam por não testar o uso real de um telemóvel. São bons barómetros para quando se anda a mexer no kernel, logo no meu caso serve-me para ver se o que mexi mudou algo ou não.
De resto não ligue muito a isso. Esse fix que te enviei serve para o telemóvel passar a usar GPU rendering em vez de CPU rendering…é um bugzito da Google, mas que agora já tens corrigido 😉
Bom dia Francisco!
Bem, hoje apeteceu-me largar a stock rom e passar para a Oxygen.
Bem, que diferença. Só nas database writes e reads.. Dia da noite.
Com a Oxygen e o teu kernel, saltei dos 1700-1900 marks para uns fantásticos 3200-3400!
Espétacular este combo Oxygen+Franco!
Parabéns, e continua!
Quanto aos pedidos para outros telefones, isto não funciona assim, tal como já disseram isto não é uma aplicação. E claro sem ter os telemóveis eu não consigo fazer nada.
Todas as actualizações serão colocadas neste link: http://forum.xda-developers.com/showthread.php?t=1305360
Portanto quem instalou e gostou esteja atento porque eu mais ou menos de 4 em 4 dias mais ou menos lanço uma versão nova com alguns melhoramentos tendo muito em conta o feedback dos utilizadores.
Este kernel parece ser brutal!
É compativel com que ROMs?
Stock?
Cyanogen?
MIUI?
Cumps,
Com todas as roms, já tinha dito isso alguns comentários acima 😉
Boas Francisco Franco!
Olha la o teu kernel conjuga bem com a rom do nscollab?
Hoje actualizei para a nova rom dele, e coloquei o teu kernel, que dizes?
cumps
Tenho muitos users no XDA que gostam muito da combinação entre as duas 😉
gracias!
vou usar esta combinação durante os proximos tempos, para ver o uso da bateria 🙂
e vou la tar atento ao teu topico 🙂
abraço
Nice, faz isso tá atento ao tópico porque eu devo lançar uma actualizaçãozita hoje ou amanhã, tenho uns pormenores a limar 😉
Existe tbm um karnel mto bom para o XDA graças ai ao nosso amigo francisco 😛
Bruto! Já ando nisto das roms à algum tempo, mas actualmente tenho a 2.3.5..
Já agora, visto que são bastante parecidos em características, será que dá para instalar essa kernel no Galaxy S?
Cumprimentos e Parabéns pelo post 😉
Não, nada disso, nem tentes flashar isto no Galaxy S 😉
Boas…
Antes de mais parabens, é bom saber k há portugueses, devolta dos DROIDs no XDA….
Depois se quisermos voltar ao kernel original, como fazemos??
Ainda sou um bocado noob no droid…. Fiz root ao meu nexus S à bem pouco tempo, e ainda ando com a ROM original…
Cumprimentos
Para voltares ao kernel original tens que instalar a rom de novo sorry :/
Não consigo root, quantos minutos demora mesmo? fica preso no:
Roting…
Running exploit…
…..
….
o que é necessário fazer? Para além de depuração USB?
Obrigado
Ficou muito bom com esse novo kernel, o unico problema agora é que n consigo mais ver a saida do log quando eu estou debuggando a aplicação, a mensagem de erro que aparece é essa:
“?:??: W/?(?): Unable to open log device ‘/dev/log/main’: No such file or directory”
Tem alguma forma de eu voltar para o antigo kernel, ou fazer alguma coisa pra corrigir esse problema?
Obrigado pela atenção!
Eu vi a sua resposta para o usuário “Gonçalo Pereira”, aonde eu encontro informações para compilar o kernel, eu já compilei algumas vezes o do Archlinux, eu só vou habilitar o modo debug nesse kernel franco.
Força nisso, eu tirei tudo o que é debbug incluindo logcat 😉
Boas, diz-me uma coisa, dá para meter esta kernel num Asus Tansformer?
Não.
boas.
dizes a certa altura que “Obviamente que quando mais se aumentar mais voltagem é preciso dar ao CPU, mas com as voltagens stock é possível ir até aos 10% sem mudanças (pelo menos na GRANDE maioria dos Nexus S)”.
Existe alguma forma de sabermos se podemos realmente fazer isto, ou seja, saber se o nosso nexus s pertence à GRANDE maioria? 😉
forte abraço. e parabens pelo teu trabalho, parece que realmente é uma ferramenta fantastica. tenho seguido tambem o teu post no xda_developers, tens la uma legiao de fans.
Não, é impossível saber isso porque é a nível de hardware, não há dois Nexus S iguais, o meu pode só conseguir 1000 e o teu 1500, e vice versa, não há maneira de prever tal coisa sem ser experimentando !
Ola boa tarde
Sou novo nos androids, e adquiri a pouco tempo um nexus s.
Nao percebo de root ou rom, mas achei o conceito de poder melhorar o telemovel, muito bom.
A minha pergunta é existe algum risco com este procedimento?
Existe alguma programa ou versoes que estejam presente no telemovel que alterem o procedimento e nao corra como previsto e nao de certo?
Como todos costou te lo e nao queria dar cabo dele, mas achei bom o conceito!
Cumprimentos
boa tarde
existe alguma almazinha caridosa que responda as duvidas?
Cumprimentos
Este post morreu?
Grande Francisco!
A fazer “estragos”! 🙂 O pessoal do X5 sente falta do teu Kernel!
Boas,
Existe algum risco para o telemovel?
Perde-se a garantia?
Tou a pensar comprar um.
Obrigado
Boas,
Eu possuo um Galaxy Ace GT-S5830, ja se encontra com root e com o rom manager. No entanto o tlm encontra-se bloqueado à rede vodafone e segundo o software Kies da Samsung não é possivel fazer o upgrade de firmware (presentemente tem o 2.2.1). Já consultei vários forums de modo a fazer o upgrade para 2.3.4, mas tudo me parece um pouco rebuscado e tenho algum receio de fazer o que propoem tendo o tlm bloqueado à rede. inclusive desbloquea-lo… gostaria de saber se tem algum procedimento de confiança.
Agradeço desde ja a disponibilidade
Procura pela ROM Cyanogen Mod Clean e instala pelo metódo recovery, aqui estou com ela a quase dois meses e uso intenso no dia-a-dia muito bom, 902Mhz de overclock e sem esquentar e dar force close. Tem no blog do eusouandroid todo procedimento.
ninguem nos ajuda esta visto 🙁
Muito top essa dica, sem dúvida, um kernel bem montado e configurado faz toda a diferença, e esses scripts também. Aguardando meu Super Droid chegar e testarei, voltando pra comentar com vcs. Abraços a todos e parabéns ao Francisco Franco.