24/11/2014

24/11/2014

Como converter o Nexus 7 para F2FS


A chegada do Android Lollipop veio relembrar a lentidão que por vezes se abate sobre o Nexus 7 devido às suas memórias flash. O método de limpar a partição da cache apenas minimiza o problema temporariamente, mas hoje trazemos-vos uma solução que embora sendo mais trabalhosa, tem resultados definitivos: alterarem o vosso Nexus 7 de modo a usar o F2FS.

O F2FS é um filesystem que foi concebido de raiz para ser usado com armazenamento "flash", e que por isso pode abandonar por completo as pressupostos dos discos mecânicos; e como vantagem adicional tem uma melhoria substancial no desempenho de todas as operações de leitura e escrita na memória.

Após testar esta opção o Nexus 7 ganhou uma vida completamente nova, com uma velocidade que já nem me parecia ser possível para este tablet com mais de dois anos.)


Para se mudar o filesystem do Nexus 7 de ext4 para F2FS é necessário:
  • Desbloquear o Bootloader, e correr uma Recovery com suporte wipe/format em F2FS
  • Mudar partições (data, cache) de ext4 para F2FS, via opção Wipe no Recovery;
  • Flashar kernel com suporte  F2FS.
Em seguida iremos seguir os procedimentos passo a passo sobre como fazer tudo isto:


AVISO


Façam backup dos vosso conteúdos. Todo os dados do tablet serão eliminados!
E tal como é costume neste tipo de artigos: embora o risco de algo correr mal seja reduzido (e de haver quase sempre hipóteses de recuperação) não poderemos assumir qualquer responsabilidade caso fiquem com um tablet inutilizável. Isto é: se o desejarem fazer, façam-no por vossa conta e risco.

Apesar de um pouco extenso, é aconselhável ler a totalidade do guia antes de executar qualquer um dos passos, de forma a ficarem com uma visão geral do que é necessário, que passos devem ser executados e quais as implicações. Se nunca instalaram uma ROM e não sabem o que é ADB, Recovery, etc, convém aprender esses conceitos primeiro!


1. O que é necessário


Fazer download dos seguintes ficheiros:

1.1) Minimal ADB and Fastboot (ver a secção Prerequisites antes de instalar) https://chnfdn.s.cld.pt
1.2) Nexus Root Tookit (WugFresh) https://zf1h0k.s.cld.pt
1.3) Kernel com suporte a F2FS https://l8w0sv.s.cld.pt
1.4) Team Win Recovery Project 2.8 https://t7m59g.s.cld.pt


2. Preparativos

2.1) [Android] A opção "USB Debugging" tem que estar ligada; ver em Settings-Developer Options (ou ADB Debugging em algumas ROM's). Se não encontram a opção "Developer options", vejam como a poderão activar aqui: LINK


2.2) [Windows] O computador tem que reconhecer o dispositivo, isto é, deve ser possível ver/aceder à drive do Nexus 7 no Windows Explorer.

Instalar o Nexus Root Toolkit e em seguida instalar os drivers necessários a partir da opção "Full drivers install...". Seguir todos os passos indicados.

nota: se já têm os drivers instalados, não é necessário voltar a instalar os mesmos.

Se o Nexus não aparece, experimentar mudar de "USB Mass Storage/PTP" para "MPT" em Settings ; Storage ; USB Computer connection [...] Ver como aqui: LINK

Se o computador continuar a não reconhecer a drive do Nexus, tentem mudar de porta USB, aguardem uns segundos e deixem o Windows finalizar a instalação dos drivers necessários.



2.3) Instalar o Fast ADB, quando vos perguntar qual a pasta para a instalação podem escolher uma diferente da proposta. Eu escolhi c:\adb para simplicidade de acesso.


Copiar para esta pasta o ficheiro da recovery e do kernel anteriormente descarregados: boot-new.img e openrecovery-twrp-2.8.2.0-grouper.img.

Abrir uma janela com a linha de comandos. Se escolheram criar um atalho no desktop, podem utilizá-lo para este efeito.

Aceder à pasta onde instalaram o adb, no meu caso cd \adb

Executar o comando adb devices


Se for listado um número, por exemplo "List of devices attached 5700XXXX device" significa que o Nexus está a ser detectado. Falta no entanto autorizar a ligação USB. No ecrã do Nexus devem ter um caixa com esse pedido. Basta autorizar o mesmo.

Se não aparecer nenhum número, executar/verificar o passo 2) até conseguirem.


3. Flash do Kernel e Boot da Recovery com suporte a F2FS

Só devem executar os passos seguintes quando o computador reconhecer o Nexus 7 devidamente!

O bootloader do Nexus tem de estar desbloqueado. Se ainda não fizeram esta alteração, têm obrigatoriamente de a fazer agora. Para isso, basta utilizarem o Toolkit e seguirem o guia anteriormente publicado: LINK



Nota: seguir estes passos *exactamente* - se algum falhar, não continuar.

3.1) Ligar o Nexus 7 ao PC, isto se ainda não o fizeram

3.2) Abrir uma janela com a linha de comandos e aceder à pasta onde têm o adb instalado, no meu caso cd \adb

3.3) Executar o comando adb devices para garantir que o Nexus está a ser devidamente reconhecido.

3.4) Colocar o Nexus em modo fastboot: adb reboot bootloader

O Nexus vai reiniciar e terão uma imagem com o robot no ecrã. Podem verificar que o lock state já é UNLOCKED. Se for a primeira vez que o fazem, o windows vai instalar o respectivo driver.



3.5) Se executarem o comando fastboot devices, aparece listado o vosso Nexus. Se não for esse o caso, devem voltar ao ponto 2.2 para reinstalar o driver.


Neste momento estão criadas as condições para executar o procedimento.

3.6) Instalar o novo Kernel com o seguinte comando: fastboot flash boot boot-new.img


3.7) Correr a custom recovery: fastboot boot openrecovery-twrp-2.8.2.0-grouper.img



3.8) Ao correr a recovery ficam com o seguinte ecrã no tablet



Opcional: Fazer backup da partição /data

Podem nesta fase optar por fazer um backup da partição data. Só o podem fazer se tiverem até 50% da partição data ocupada. Quem tenha muita coisa instalada, ou o SD interno cheio, que passe esta fase. É melhor copiar fotos e música para o PC, e depois de terminado o processo, reinstalar apps e restaurar os ficheiros que considerar necessário.

Este processo é moroso, há que ter paciência.

Na janela da linha de comandos executar os seguintes comandos:

adb shell
cd /data
tar zcpf data.tar.gz --exclude=./data.tar.gz . .??*
exit

adb pull /data/data.tar.gz


No caso do Nexus das minhas miúdas, que só tem 4 ou 5 jogos (foi limpo aquando da instalação), o ficheiro ficou com 1,1GB e demorou mais de 6 minutos a copiar para o PC. A comprimir foi outro tanto. E ainda falta o restaurar dos dados...




4) Mudar partições de ext4 para F2FS


4.1) Seleccionar Wipe, Advanced Wipe, partição Data e Repair or Change File System


4.2) Seleccionar Change File System, F2FS e por último deslizem o dedo no Swype to change


4.3) Carregar no "back" três vezes até voltar ao ecrã de selecção da partição a formatar (imagem da direita na primeira fila destas imagens) e repetir o procedimento para a partição cache.

Nota: Se quiserem mais tarde voltar ao filesystem ext4 basta executar estes passos, mas escolher ext4 em vez de f2fs.


Se tudo correu como esperado, fazer "Back"



Opcional: Fazer restore do backup da partição  /data que se tinha guardado anteriormente

Na janela da linha de comandos executar as seguintes instruções:adb push data.tar.gz /data/


O 1,1GB "só" demorou um quarto de hora a ser copiado para o Nexus.

Nota: Se por acaso o Nexus não estiver a ser detectado não entrem em stress.


No Tablet, seleccionem reboot e depois bootloader. De seguida, na janela da linha de comandos voltar a corre a recovery:fastboot boot openrecovery-twrp-2.8.2.0-grouper.img.
Neste caso, e só neste caso, repetir o comando:adb push data.tar.gz /data/

Agora vamos descompactar o ficheiro e por fim apagar o mesmo:

adb shell
cd /data
tar zxvpf data.tar.gz
rm data.tar.gz
sync
exit

Fim do Opcional


5. Fim

Resumindo, formataram duas partições com um novo tipo de sistema de ficheiros e instalaram um kernel modificado que reconhece o mesmo. Voltando ao Nexus 7, podem desligar o cabo USB e escolher a opção reboot, system. 

Agora há que ter calma. O primeiro boot demora mesmo muito tempo.



Se ficaram de alguma forma algo assustados com tantos comandos e opções ou têm algum receio em danificar o Android não desesperem. A grande vantagem é que 99% das vezes é possível voltar a por o Nexus a funcionar reinstalando a "factory image" que a Google disponibiliza.


Alguns pontos que correram menos bem:

  • Tinha vários drivers instalados, a solução foi utilizar o toolkit para os remover e voltar a instalar apenas um .
  • O PC nem sempre conseguia detectar o Nexus quando estava com a recovery alternativa. A solução era desligar o Nexus e voltar a correr a recovery. Este aspecto só é importante para quem for utilizar a opção de backup da partição Data. Para alteração do formato da partição, não tem qualquer problema.



Agradecimentos: Este artigo só foi possível com a colaboração do +António Rodrigues que nos forneceu um guia que serviu de base a este, e do +Bruno Barão que compilou os comandos necessários para execução do procedimento.

0 comments:

Enviar um comentário