Você deve ter notado que este guia foi postado em pleno século 2024, mesmo que o Motorola One (também conhecido como "motorola one", "moto one", deen ou XT1941) tenha sido lançado no final de 2018... melhor tarde do que nunca!

Resolvi fazer isto pois recentemente eu usei o meu Moto G Turbo (merlin) para fazer dump dos meus TOTP do Authy, já que o Authy decidiu parar de suportar o app de desktop do Authy, e, por isso, eu tive vontade de desbloquear o bootloader e fazer traquinagens com o meu Motorola One.

Para contextualizar: Eu tenho o meu Motorola One desde o final de 2019, comprei ele pois o meu estágio exigia que a gente tivesse um celular para a empresa e, enquanto o meu Moto G Turbo ainda atendia as minhas necessidades, a bateria dele já estava indo de comes e bebes.

Como era um celular da empresa, eu tive que instalar todas aquelas travessuras que empresas gostam, como o tal do "Portal da Empresa" da Microsoft, e como o celular era "administrado" pela empresa, eu não podia nem atrever em fazer root nele.

Eu também tive um problema grave de lentidão com este celular, ele era lento mas ao ponto de ser inutilizável, coisa de "eu clico para abrir o teclado e leva uns 30 segundos para realmente abrir", o que era estranho pois enquanto o meu Moto G Turbo era lento, ele nunca era lento ao ponto de ficar não responsivo. Então eu sempre tive a curiosidade de saber se formatar o celular deixaria ele "bom" de novo. Eu não vou usar ele no meu dia-a-dia, mas se ele deixasse de ficar tão travado, eu pelo ou menos conseguiria usar ele para outras coisas.

Então decidi ir atrás disso... e aí eu me deparei com uma situação deplorável: Tem praticamente nada sobre modding dele na internet! Na época eu achava que o meu Moto G Turbo estava em uma situação difícil por ter sido apenas uma revisão do Moto G³ (2015) (osprey) que foi "mal amada" por ter sido lançada em algumas regiões, então a comunidade de modding dele era bem menor.

Mas pelo ou menos o Moto G Turbo tem TWRP oficial e já teve builds oficiais do LineageOS! Infelizmente o Motorola One não teve o mesmo luxo...

<Pantufa> Mas eu vi aqui e tem builds oficiais do TWRP para o Motorola One!

Não se engane! Existem outros celulares que também possuem a marca "Motorola One" (Motorola One Action (troika), Motorola One Vision (kane), Motorola One Zoom (parker)), e estes outros celulares possuem mais guias e recursos sobre modding para eles.

O Motorola One que estamos falando é o Motorola One, codenome deen, modelo XT1941, e ele parece ser um coitadinho esquecido pela comunidade, pois são poucos os guias que falam sobre como modificar ele.

E por isso eu decidi fazer o meu próprio guia.

Introdução

* I'm not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed (like it did for me...).
* YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you.
* Your warranty will be void if you tamper with any part of your device / software.

Neste guia, eu vou mostrar o que eu normalmente espero quando eu penso sobre "modificar o celular", ou seja:

  • Como desbloquear o bootloader do celular
  • Como instalar a Stock ROM do celular caso alguma modificação der errado
  • Como rootear o celular
  • Como instalar ROMs personalizadas (ROMs exclusivas para o celular e ROMs GSI/Treble)

Eu escrevi o guia como se este não fosse o seu primeiro rodeio na parte de modificação de celulares, mas ao mesmo tempo tentei deixar claro ao ponto de não ter dúvidas, deixando as dúvidas que restam algo que você consiga descobrir sozinho. Mas se tiver alguma dúvida, basta perguntar!

Fontes e Agradecimentos

O que é modo Fastboot?

Durante o guia você terá que entrar no modo Fastboot do celular várias vezes. Para entrar no modo fastboot no Motorola One, desligue o celular, e, após desligado, segure o Botão Power + Botão Volume Down por uns ~5 segundos até entrar na tela de fastboot/recovery.

Desbloqueando o Bootloader

Se você está vendo este guia mais de 6 anos após o celular tenha sido lançado, eu espero que este não seja o seu primeiro rodeio na parte de modding, e que você deve saber que desbloquear o bootloader irá perder todos os arquivos que estão no seu celular, FAÇA BACKUPS DOS SEUS ARQUIVOS!

Lembrando que o processo é IRREVERSÍVEL! Você terá uma tela de "Your device can't be trusted" toda hora que ligar o seu celular, que você NÃO consegue remover.

Após ativar as opções de desenvolvedor do Android (para ativá-las, basta ir em "Sobre o telefone" e ficar clicando no "Número da versão" até ativar o modo desenvolvedor), vá nas "Opções de Desenvolvedor" e ative o "Desbloqueio de OEM", para que o bootloader possa desbloqueado.

Inicie o celular em modo fastboot e, agora, você tem que fazer toda a "dança" que a Motorola força você fazer antes de desbloquear o bootloader, como a própria Motorola explica como desbloquear, vou deixar o link do website deles: https://en-us.support.motorola.com/app/standalone/bootloader/unlock-your-device-a

Só vou deixar algumas coisas importantes

  • A Motorola recomenda você instalar o SDK do Android para ter acesso ao adb e ao fastboot, mas eu recomendo você instalar as ferramentas que tem no website do LineageOS.
  • Na primeira página, ignore tudo e só vá até o final e clique no "Proceed Anyway" que está no final da página.
  • Na segunda página, vá e baixe os drivers USB da Motorola, sem instalar eles o fastboot não irá reconhecer o seu celular!
  • Na segunda página, quando ele faz o "Verifying Eligibility", parece que o website faz nada, mas na verdade ele só libera o botão no final da página.

Após você fazer toda a burocracia, use fastboot oem unlock CódigoQueVocêRecebeuNoEmail, se o código estiver certo, o bootloader do celular será desbloqueado e o celular irá reiniciar no modo fastboot novamente.

<Loritta> Se você está usando o PowerShell no Windows, não se esqueça de colocar .\ antes de cada comando!

E agora toda hora que você iniciar o celular tem um aviso de "Your device can't be trusted" que dura 5 segundos, yay...

Ah, e todos os seus dados foram deletados, espero que você tenha feito backup! E não se preocupe, o celular realmente demora durante o primeiro boot.

Instalando a Stock ROM

É sempre bom saber como instalar a Stock ROM (ROM de Fábrica) do celular para caso a vaca vá pro brejo e o celular entre em um bootloop. Felizmente é difícil realmente fazer o seu celular ficar realmente irreparável (hard brick).

Após desbloquear o bootloader você teoricamente já está com a Stock ROM do celular, mas recomendo você instalar a Stock ROM novamente para você já ter as manhas de como tudo vai funcionar.

Para o modelo do meu Motorola One, o nome do arquivo é XT1941-3_DEEN_RETBR_10_QPKS30.54-22-27_cid50_subsidy-DEFAULT_regulatory-DEFAULT_CFC.xml.zip

Link da Stock ROM que eu usei: https://mirrors-obs-2.lolinet.com/firmware/lenomola/2018/deen/official/RETBR/XT1941-3_DEEN_RETBR_10_QPKS30.54-22-27_cid50_subsidy-DEFAULT_regulatory-DEFAULT_CFC.xml.zip

Lista das Stock ROMs: https://mirrors-obs-2.lolinet.com/

Atenção: Você tem que baixar a Stock ROM do modelo correto do seu Motorola One! O link que eu passei é as dos modelos vendidos no Brasil (XT1941-3).

Inicie o celular em modo fastboot.

Extraia os arquivos da Stock ROM na pasta onde está o executável do fastboot e abra o prompt de comando na pasta onde está o fastboot.

Na teoria você deveria executar o seguinte comando grep '"flash"' flashfile.xml|cut -d\" -f4,8|tr '"' ' '|awk '{print "fastboot flash " $2 " " $1}' pelo WSL (Windows System for Linux) ou pelo Git Bash for Windows para pegar a lista de comandos que você deve executar pelo fastboot, mas como a Motorola já parou o suporte do Motorola One, e como eu acho que ela não irá magicamente lançar um nova ROM para ela, aqui está a lista de comandos para ficar mais prático.

fastboot flash partition gpt.bin
fastboot flash bootloader bootloader.img
fastboot flash modem NON-HLOS.bin
fastboot flash fsg fsg.mbn
fastboot flash dsp adspso.bin
fastboot flash logo logo.bin
fastboot flash boot boot.img
fastboot flash system system.img_sparsechunk.0
fastboot flash system system.img_sparsechunk.1
fastboot flash system system.img_sparsechunk.2
fastboot flash system system.img_sparsechunk.3
fastboot flash system system.img_sparsechunk.4
fastboot flash system system.img_sparsechunk.5
fastboot flash system system.img_sparsechunk.6
fastboot flash system system.img_sparsechunk.7
fastboot flash system system.img_sparsechunk.8
fastboot flash system system.img_sparsechunk.9
fastboot flash system_b system_other.img
fastboot flash vendor vendor.img_sparsechunk.0
fastboot flash vendor vendor.img_sparsechunk.1
fastboot flash oem oem.img
fastboot flash oem_b oem_other.img

E no final, não se esqueça de usar

fastboot -w

Para limpar os dados do celular, se não o celular irá ficar preso em um bootloop na hora de iniciar.

Prontinho! Você instalou a Stock ROM! Agora basta você iniciar o sistema! E não se preocupe, o primeiro boot demora mesmo.

Instalando o Magisk (Root) na Stock ROM

Para rootear a Stock ROM usando o Magisk, baixe o APK do Magisk e instale ele no celular.

Dos arquivos da Stock ROM que você baixou, copie o boot.img para o celular e abra o Magisk.

No Magisk, vá em "Instalar", depois em "Próximo" e depois em "Selecione e corrija um arquivo".

Selecione o boot.img que você copiou para o celular (se você não está encontrando ele, clique nos três pontos e "Mostrar armazenamento interno")

Após selecionar, clique em "Vamos Lá" e deixe o Magisk fazer a "mágica" dele, se der tudo certo, vai aparecer "All Done!" e a boot.img patcheada será salva no seu dispositivo na pasta de Download.

Copie o boot.img patcheado para o seu computador, desligue o celular e inicie em modo fastboot e, depois, flasheie a boot.img patcheada, alterando o nome do arquivo no exemplo abaixo.

fastboot flash boot NomeDoBootImgQueOMagiskPatcheou.img

Após flashear, inicie o celular e abra o Magisk novamente. Ao abrir, o Magisk vai falar que tem uma "Configuração adicional exigida", clique em "OK" e espere o celular reiniciar.

E pronto! O celular está rooteado. Para testar se o root está realmente funcionando, abra um shell pelo adb e use o comando su para iniciar uma sessão como root. Ao usar o comando, o Magisk irá pedir permissão para elevar o usuário para root.

Instalando ROMs personalizadas

ROMs personalizadas dão uma "vida nova" ao seu dispositivo, proporcinando versões novas e modificadas do sistema operacional do celular. Convenhamos que a Stock ROM da Motorola é boa, já que ela é bem leve comparado com outras marcas, mas uma vantagem de ROMs personalizadas é que elas deixam você instalar sistemas operacionais que jamais foram suportados pela Motorola, como versões mais recentes do Android!

Entretanto, ROMs personalizadas também podem causar instabilidades ou algumas funcionalidades do celular podem não funcionar enquanto usa uma ROM personalizada! Então instale, teste e, se você acabar não gostando, basta instalar a Stock ROM de volta.

O Motorola One usa o esquema A/B de partição do Project Treble, então, antes de tudo, vamos alterar a partição ativa do sistema para a a.

fastboot --set-active=a

Baixe o TWRP feito pelo jro1979 que é compatível com o Motorola One, coloque o celular em modo fastboot e inicie o TWRP.

fastboot boot twrp-deen-3.6.9.img

Neste exemplo eu irei usar o LineageOS 19.1 feito pelo jro1979, mas se você quiser outra ROM, eu recomendo você procurar as ROMs que o jro1979 fez já que elas são as mais recentes que eu encontrei, mas tem outras no XDA Forums.

<Pantufa> Você sabe que a situação tá crítica para o celular quando a melhor recomendação é o SourceForge

Clique em "Cancel" na parte que ele pede a senha de decriptografia, pois não adianta você colocar a senha correta pois ele sempre falará que a senha está errada, e no final isto não importa, pois iremos formatar o celular.

Deslize em "Swipe to Allow Modifications"

Vá em "Wipe" -> "Advanced Wipe" -> e formate...

  • Dalvik / ART Cache
  • System
  • Data

E depois clique em "Back", volte uma tela e clique para "Format Data", escreva "yes" (sem aspas). Quando acabar, volte para a tela inicial do TWRP.

<Loritta> Mas já não tinha apagado? Para que apagar de novo?

É porque o "Format Data" remove a encriptação da partição. Se você não fizer isso, da próxima vez que você iniciar o TWRP ele vai pedir uma chave de decriptografia (que você não tem), e o Android irá falar que os dados do sistema estão criptografados. Enquanto o sistema Android consegue remover a criptografia se você colocar a senha correta, já que a senha correta é a última senha que você usou no celular, nós precisamos fazer isso para poder instalar o Google Apps e o Magisk antes de iniciar o sistema.

Agora iremos copiar a ROM para o celular usando o adb.

adb push LineageOS-deen-19.1-20220629-signed.zip /sdcard

<Loritta> Não é só copiar os arquivos pelo Windows Explorer?

Enquanto normalmente você consegue copiar os arquivos para o TWRP usando o Windows Explorer, como o TWRP não consegue montar as partições, ele também não consegue expor as pastas do TWRP para o Explorer, então a gente tem que copiar pelo adb mesmo.

Após copiar, volte para a tela inicial do TWRP, vá em "Install" e instale APENAS a ROM, que é o LineageOS-deen-19.1-20220629-signed.zip.

Observação: O motivo de fazer deste jeito é porque, se você olhar nos logs, a ROM que eu testei sempre instala na partição inativa do sistema, tem chances que outras ROMs que você testar não façam isso.

Quando acabar de instalar, clique em "Reboot" e clique em "Bootloader" para bootar no modo fastboot, para que a gente possa mudar a partição para a partição B.

Enquanto é tentador clicar no "Slot B" direto pelo TWRP, na minha experiência isso não funciona: ele tenta alterar a partição ativa e falha, então vamos ter que trocar a partição ativa pelo fastboot e depois bootar no TWRP novamente.

fastboot --set-active=b
fastboot boot twrp-deen-3.6.9.img

O Google Apps você pode baixar o MindTheGapps, baixe uma versão compatível para a sua arquitetura (o Motorola One é arm64) e para a versão do Android que você instalou.

O Magisk você tem que baixar o APK do Magisk e renomear o .apk para .zip, para que possa instalar ele pelo TWRP.

adb push MindTheGapps-12.1.0-arm64-20231025_200924.zip /sdcard
adb push Magisk-v27.0.zip /sdcard

Instale ambas as ZIPs e, se der tudo certo, clique em "Reboot" e depois em "System".

E se tudo der certo o sistema iniciará corretamente, com os Google Apps instalados e o Magisk instalados no sistema! Você ainda precisará instalar o APK do Magisk e, depois colocar a "Instalação direta (recomendada)" para realmente instalar o Magisk no sistema.

Instalando ROMs personalizadas (GSI/Treble)

O Motorola One suporta o Project Treble, um projeto da Google onde o sistema em si pode ser "genérico" (GSI/Generic System Image). Diferente de ROMs convencionais que são feitas especificamentes para um modelo de celular específico, uma imagem GSI pode ser iniciada em qualquer celular que suporte o Project Treble sem que o autor da ROM precise diretamente suportar o celular.

Mesmo que você já recebido o spoiler que o Motorola One suporta o Project Treble, eu recomendo instalar o Informações sobre o Treble (Treble Info) para ver qual é o tipo de imagem necessária para o seu celular. No caso do Motorola One, o tipo de imagem é o system-arm64-ab-vndklite.img.xz. Mais informações sobre o suporte do Treble aqui.

Você precisa estar rodando a Stock ROM antes de instalar uma ROM Treble e, de preferência, que seja em uma instalação Stock ROM que não teve updates OTA, para evitar que o celular esteja usando uma partição diferente do sistema. No caso do Motorola One, como o celular não recebe updates desde 2021, se você instalou a Stock ROM do zero depois disso você não terá problemas com isso.

GSIs que eu testei e o celular bootou:

GSIs que eu testei e o celular não bootou:

  • GSI do Android 10 AOSP feito pela Google
    • Ficou preso em um bootloop na tela do "Android".
  • GSI do LineageOS 21 (Android 14) feito pelo Andy Yan
    • O celular nem aparece a tela de boot, ele fica preso no aviso que o bootloader foi desbloqueado.

Vou ser sincero com vocês: Eu recomendo usar a Stock ROM ou uma ROM feita exclusivamente para o Motorola One, pois as duas que eu consegui bootar estavam sem o alto-falante do celular, e isso foi apenas um dos problemas que eu encontrei! No final, como o GSI é genérico e não tem suporte de hardware do vendor, tem muita coisa que acaba não funcionando. Um celular suportar o Project Treble só significa que ele vai conseguir bootar o GSI, não que ele vá funcionar bem.

Neste exemplo eu vou usar o GSI do Android 10 AOSP feito pelo phhusson. Para o Motorola One, nós precisamos baixar o system-quack-arm64-ab-gapps.img.xz.

Você SEMPRE deve baixar as variações das ROMs que são vndklite, se estiverem disponíveis, entretanto parece que as GSIs para Android 10 não tem variações vndklite, mas elas funcionam normalmente.

fastboot flash system system-quack-arm64-ab-gapps.img
fastboot -w

fastboot reboot

Após flashear a ROM, pode ser que o celular inicie em uma tela de "Encryption Unsuccessful", mas é só você clicar em "Erase All Data", esperar ele apagar tudo, e depois ligar de novo.

E se der tudo certo, o celular irá iniciar normalmente, yay!

Se você flashear uma ROM e o fastboot der o seguinte erro (bootloader) Preflash validation failed, vá no celular e navegue até o "Bootloader Logs", se aparecer no celular que o erro é "Image is too large", então significa que a ROM é muito grande para o celular.

Partições Ativas

O Motorola One usa o esquema A/B de partição do Project Treble, você pode usar fastboot getvar current-slot para ver a partição atual que ele está usando e, para alterar a partição ativa, use fastboot --set-active=PartiçãoQueVocêQuerQueSejaAtiva (por exemplo: fastboot --set-active=a).

Talvez eu tenha investido muito tempo nesse guia só por causa da piada de deen -> deer