Como customizar sua ROM Android

Nesse artigo, vamos aprender como o sistema Android lida com as partições e vamos aprender como podemos montá-las dentro do ambiente GNU/Linux, afim de fazer modificações. Nós vamos remover Bloatware, serviços do Google e bloquear propagandas, num processo que chamamos de customização de ROM. Divirta-se!

[ Hits: 45.324 ]

Por: Cézar Augusto em 01/12/2020 | Blog: https://www.cezarcampos.com.br/


Como remover Bloatwares



Primeiro, vamos começar removendo os Bloatwares. Para quem não sabe, Bloatwares são aplicativos que vem instalados de fábrica e são impossíveis de se remover pelo usuário, normalmente esses aplicativos nunca não usados e consomem bateria e espaço no armazenamento interno.

Quando você liga um celular Android pela primeira vez, o sistema começa a construir o cache do Dalvik e instalar os aplicativos do sistema na partição de dados, alguns aplicativos são apenas pacotes vazios que serão mais tarde instalados pela PlayStore sem a interação do usuário.

Esses aplicativos são chamados de STUB e você normalmente vai querer removê-los nesse processo de Debloat.

Os aplicativos de sistema no Android são guardados nas pastas /system/priv-app/ e /system/app/. Além dela, existem outras partições que guardam aplicativos de terceiros e de operadoras como por exemplo as partições hidden e product, nós abordaremos essas partições mais pro final. Vamos começar removendo os aplicativos não essenciais da partição do sistema.

Enxugando a partição do sistema

Entre na pasta "system" que você acabou de montar:

# cd system

Liste os aplicativos:
Linux: Como customizar a sua ROM Android
Note que na saída do comando acima, muitos aplicativos estão alojados na parte privilegiada do sistema, muitos deles você consegue distinguir pelo nome e outros são simplesmente difíceis de dizer, mesmo pesquisando na internet. Outros fazem parte do coração do sistema e você simplesmente não pode removê-los, pois se fizer isso o sistema poderá deixar de funcionar. Um bom exemplo disso é o framework de pagamentos da Samsung!

Também note que ali existem alguns Stubs que farão o seu celular instalar sozinho outros aplicativos que não vieram de fábrica, como por exemplo o PreloadInstaller.

Se você já tem uma noção, você já pode começar removendo os APPs que você sabe que não são essenciais, como por exemplo o instalador do Facebook:

sudo rm -rfv "./system/priv-app/FBInstaller_NS/"
Removido './system/priv-app/FBInstaller_NS/FBInstaller_NS.apk'
Foi removido o diretório: './system/priv-app/FBInstaller_NS/'


Ou, o instalador de múltiplos Bloatwares que mencionei antes:

sudo rm -rfv "./system/priv-app/PreloadInstaller/"
Removido './system/priv-app/PreloadInstaller/PreloadInstaller.apk'
Foi removido o diretório: './system/priv-app/PreloadInstaller/'


Eu compilei uma lista de todos os Bloatwares que removi do meu smartfone sem quebrar o meu sistema, vou compartilhar com vocês para terem uma ideia:
  • ./system/app/AutomationTest_FB
  • ./system/app/BasicDreams
  • ./system/app/BBCAgent
  • ./system/app/BCService
  • ./system/app/CarrierDefaultApp
  • ./system/app/Chrome
  • ./system/app/ChromeCustomizations
  • ./system/app/DictDiotekForSec
  • ./system/app/DuoStub
  • ./system/app/EasymodeContactsWidget81
  • ./system/app/EmergencyLauncher
  • ./system/app/Facebook_stub
  • ./system/app/FactoryCameraFB
  • ./system/app/FBAppManager_NS
  • ./system/app/Foundation
  • ./system/app/GearManagerStub
  • ./system/app/GameOptimizer
  • ./system/app/GameOptimizingService
  • ./system/app/GoogleCalendarSyncAdapter
  • ./system/app/GoogleContactsSyncAdapter
  • ./system/app/SplitSoundService
  • ./system/app/SPrintSpooler
  • ./system/app/Gmail2
  • ./system/app/GoogleTTS
  • ./system/app/Maps
  • ./system/app/MDMApp
  • ./system/app/Netflix_activationCarriers
  • ./system/app/Netflix_activationCommon
  • ./system/app/Netflix_activationSamsung
  • ./system/app/Netflix_stub
  • ./system/app/PartnerBookmarksProvider
  • ./system/app/PhotoTable
  • ./system/app/PlayAutoInstallConfig
  • ./system/app/SafetyInformation
  • ./system/app/SamsungPassAutofill_v1
  • ./system/app/SecFactoryPhoneTest
  • ./system/app/SmartReminder
  • ./system/app/SmartSwitchAgent
  • ./system/app/Stk
  • ./system/app/Stk2
  • ./system/app/UniversalMDMClient
  • ./system/app/WallpaperBackup
  • ./system/app/WebManual
  • ./system/app/WlanTest
  • ./system/app/YouTube
  • ./system/priv-app/AndroidAutoStub
  • ./system/priv-app/BackupRestoreConfirmation
  • ./system/priv-app/BeaconManager
  • ./system/priv-app/BixbyService
  • ./system/priv-app/BlockedNumberProvider
  • ./system/priv-app/CallLogBackup
  • ./system/priv-app/CarrierCodeChanger
  • ./system/priv-app/CarrierConfig
  • ./system/priv-app/ConfigUpdater
  • ./system/priv-app/CSC
  • ./system/priv-app/EasySetup
  • ./system/priv-app/EmergencyInfo
  • ./system/priv-app/EmojiUpdater
  • ./system/priv-app/FBInstaller_NS
  • ./system/priv-app/FBServices
  • ./system/priv-app/Fmm
  • ./system/priv-app/FotaAgent
  • ./system/priv-app/GameHome
  • ./system/priv-app/GameTools_Dream
  • ./system/priv-app/KeyguardWallpaperUpdator
  • ./system/priv-app/MateAgent
  • ./system/priv-app/NSFusedLocation_v4.0
  • ./system/priv-app/OmaCP
  • ./system/priv-app/OMCAgent5
  • ./system/priv-app/OneDrive_Samsung_v3
  • ./system/priv-app/PhoneErrService
  • ./system/priv-app/PaymentFramework
  • ./system/priv-app/PreloadInstaller
  • ./system/priv-app/SamsungBilling
  • ./system/priv-app/SamsungDeviceHealthManagerService
  • ./system/priv-app/SamsungDigitalWellbeing
  • ./system/priv-app/SamsungPass
  • ./system/priv-app/SecureFolder
  • ./system/priv-app/SendHelpMessage
  • ./system/priv-app/serviceModeApp_FB
  • ./system/priv-app/SmartManager_v6_DeviceSecurity
  • ./system/priv-app/SmartSwitchAssistant
  • ./system/priv-app/SOAgent
  • ./system/priv-app/TADownloader
  • ./system/priv-app/TaPackAuthFw
  • ./system/priv-app/Turbo
  • ./system/priv-app/UltraDataSaving_O
  • ./system/priv-app/UserDictionaryProvider
  • ./system/priv-app/Velvet
  • ./system/priv-app/WallpaperCropper
  • ./system/hidden
  • ./system/priv-app/GalaxyAppsWidget_Phone_Dream

É lógico que nem tudo nessa lista pode ser considerado um Bloatware, para algumas pessoas, a pasta segura da Samsung (SecureFolder) pode ser útil. Além disso, a remoção de alguns aplicativos pode causar algum efeito colateral, como por exemplo o Knox parar de funcionar. A lista pode variar de aparelho para aparelho e nem todos os nomes de aplicativos serão iguais a esses que eu listei, então, tome cuidado ao usar listas pegas da internet feitas por terceiros.

Para usar essa lista é bem simples, coloque ela na raiz do sistema Android, na pasta onde você montou o arquivo de imagem e rode o seguinte loop como usuário root:

# while IFS= read line
> do
> rm -rf "$line"
> done < bloatware_list.txt


Após este processo, a partição de sistema da sua ROM já deve estar alguns quilos mais leve. O próximo passo agora é remover os aplicativos de outra partição que normalmente vêm instalados de fábrica.

Ah, não esqueça de tirar a lista de dentro do sistema!

# mv bloatware_list.txt ../

Enxugando a partição do produto

Outro lugar que costuma ter aplicativos pré-instalados é a partição "product", mas isso pode variar de celular para celular. Por sorte, o Galaxy-A20 costuma trazer aplicativos ali, então eu vou mostrar como removê-los.

Entre na pasta "product", onde você montou o arquivo de imagem "product.raw" anteriormente:

# cd ../product

Dê um ls:

# ls
app  build.prop  etc  HWRDB  lost+found  omc  priv-app  sipdb

Como você pode ver, existe uma pasta "app" e uma "priv-app", o que quer dizer que existem aplicativos ali. Remova todos os que você julgar necessário.

# rm -rfv app/* priv-app/*

No meu, só tinha um manual de usuário, SamsungMax e o SamsungDTI.

# rm etc/permissions/privapp-permissions-com.dti.samsung.xml

Também removi o arquivo que dava permissão para o SamsungDTI fazer mudanças no aparelho.

Enxugando a partição hidden

Outra partição que costuma ter APPs de terceiros é a partição "hidden", como o Galaxy-A20 não possui essa partição, eu vou mostrar um exemplo pego de um Samsung Galaxy J7 (2016).

# ls ./hidden
Common_app  INTERNAL_SDCARD  lost+found

# ls ./hidden/Common_app/
apps_brasil_v1.0.1_signed_aligned.apk  mcare-recarga-multi-samsung-v1.3.0-r3.apk  SamsungAppsClube_v1.19.201.apk  smarttutor_b212.apk

# rm ./hidden/Common_app/*

Como você pode ver, eu removi todos os APKs dentro da pasta "Common_app", isso quer dizer que eles não existirão mais no aparelho. Com as partições devidamente enxugadas, vamos para o próximo passo.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Como montar as partições do Android
   3. Como remover Bloatwares
   4. Bloqueio de propagandas e malware
   5. Instalando o Aurora Services
   6. Como reempacotar sua ROM
   7. Resultado e Instalação
Outros artigos deste autor

Computador e Placas Antigas Nvidia em Pleno 2019

Apresentando o Molotov

Como Modificar a Tela do Bootloader do Android

E a guerra contra bots continua

Instalando o Adminer, do jeito certo, no Debian

Leitura recomendada

Assumindo o controle do teu Android com ADB

Hello Android! Meu Primeiro APP

Como usar o Heimdall

ARCore: SDK para realidade aumentada da Google

Processing - Programando para Android e iOS

  
Comentários
[1] Comentário enviado por fabio em 01/12/2020 - 11:25h

Excelente trabalho, meus parabéns!

[2] Comentário enviado por maurixnovatrento em 01/12/2020 - 12:44h


Excelente.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[3] Comentário enviado por cizordj em 02/12/2020 - 09:54h

Obrigado

[4] Comentário enviado por MiccoXW em 03/12/2020 - 13:41h

Queria muito customizar, mas o medo do celular ficar inutilizável é maior kkkk

[5] Comentário enviado por albfneto em 03/12/2020 - 15:49h

Olha, eu gostei e favoritei!
vc consegue sem o celular ser "rooted"?
isso funciona num android antigo, android 6?

¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: [i] Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva[/i].

[6] Comentário enviado por leandropscardua em 04/12/2020 - 20:02h

Interessante e motivador! Uma sugestão de artigo futuro é como dar "saída" em dispositivos antigos. Tipo instalar nova rom num galaxy pocket ou num galaxy tab7. Os devices antigos ficam abandonados coitados!

[7] Comentário enviado por cizordj em 04/12/2020 - 20:28h


[5] Comentário enviado por albfneto em 03/12/2020 - 15:49h

Olha, eu gostei e favoritei!
vc consegue sem o celular ser "rooted"?
isso funciona num android antigo, android 6?

Hmmm, nos Androids mais antigos é meio diferente a parada, se eu não me engano existe um negócio chamado CF auto root onde você tem que instalar dois arquivos e um deles é responsável por desbloquear o bootloader e o outro é o que faz root no aparelho, no caso né... Se você tivesse esses dois arquivos você só teria que desbloquear o bootloader e não usar o outro arquivo, depois que tiver o bootloader desbloqueado você pode partir pro abraço e customizar a partição do sistema.

O máximo que vai acontecer no teu caso é o aparelho rejeitar a instalação do sistema e te obrigar a reinstalar tudo de novo o sistema original de fábrica. Tenha sempre um becape!

[8] Comentário enviado por cizordj em 04/12/2020 - 20:34h


[6] Comentário enviado por leandropscardua em 04/12/2020 - 20:02h

Interessante e motivador! Uma sugestão de artigo futuro é como dar "saída" em dispositivos antigos. Tipo instalar nova rom num galaxy pocket ou num galaxy tab7. Os devices antigos ficam abandonados coitados!


Concordo, o jeito é instalar uma custom ROM nesses aparelhos, pra isso dar certo você tem que procurar no fórum do Xda-developers pelo modelo exato e ver se alguém já fez isso por você, nunca se sabe, lá pode ter uma ROM maravilhosa feita por um desenvolvedor sério mas também pode não ter nada.

[9] Comentário enviado por Alannah358 em 07/01/2021 - 05:59h

Thank you for sharing. https://mcdvoice.me/

[10] Comentário enviado por MiccoXW em 13/01/2021 - 12:53h

Tem duas pastas meta-data, uma no AP e outra no CSC, qual delas eu devo colocar na pasta principal?

[11] Comentário enviado por cizordj em 23/03/2021 - 07:40h


[10] Comentário enviado por MiccoXW em 13/01/2021 - 12:53h

Tem duas pastas meta-data, uma no AP e outra no CSC, qual delas eu devo colocar na pasta principal?

Ignore-as, essas pastas são usadas pelo Odin na hora da instalação da ROM. As únicas coisas que importam mesmo são os arquivos de imagem,


[12] Comentário enviado por omicael em 19/04/2021 - 23:53h

Já baixei a ROM de vários sites, mas não tem esse product.img (ROM do Galaxy J4). Tem como continuar ou é o sinal de que meu celular não aceita modificação?

[13] Comentário enviado por boinaverde22 em 02/07/2021 - 10:35h

Olá, Parabéns, Belo Post!
Estou tendo problemas para gerar as imagens na pasta Modified (que transformei em StockRom_Mod por originalidade rsrs). Esta é a saída no meu terminal:

$ simg2img ./StockRom/system.img ./Sto^CRom_Mod/system.raw
Cannot open output file ./StockRom_Mod/system.raw

Verifiquei se os nomes estavam certos, neste caso positivo, estão certos. Mas paro nesta parte do tutorial.
Obrigado!

P.s.: o arquivo de imagem esta com extensão .ext4, então renomeei para .img (originalmente system.img.ext4)


[14] Comentário enviado por cizordj em 28/09/2022 - 08:20h


[12] Comentário enviado por omicael em 19/04/2021 - 23:53h

Já baixei a ROM de vários sites, mas não tem esse product.img (ROM do Galaxy J4). Tem como continuar ou é o sinal de que meu celular não aceita modificação?

Podes continuar, o esquema de partição muda bastante de celular para celular.

[15] Comentário enviado por cizordj em 28/09/2022 - 08:23h


[13] Comentário enviado por boinaverde22 em 02/07/2021 - 10:35h

Olá, Parabéns, Belo Post!
Estou tendo problemas para gerar as imagens na pasta Modified (que transformei em StockRom_Mod por originalidade rsrs). Esta é a saída no meu terminal:

$ simg2img ./StockRom/system.img ./Sto^CRom_Mod/system.raw
Cannot open output file ./StockRom_Mod/system.raw

Este comando foi um erro de digitação ou você fez de propósito? Tente ver se pelo menos se o seu usuário possui permissões de escrita na pasta StockRom_Mod e se ainda der erro crie um arquivo vazio e tente novamente:

$ touch StockRom_Mod/system.raw
$ simg2img ./StockRom/system.img ./StockRom_Mod/system.raw


[16] Comentário enviado por Dawson6358 em 07/11/2022 - 02:41h



[17] Comentário enviado por Dawson6358 em 07/11/2022 - 02:42h


Same issue here and I can't find any methods.

[18] Comentário enviado por willium532 em 09/11/2022 - 00:40h


Notwithstanding, you should focus in on a piece of this stuff.
https://www.my-ascension.com/

[19] Comentário enviado por FranklinSD em 21/11/2022 - 02:45h



Thanks for sharing. I found a lot of interesting information here.

https://www.tellhappystar.net/

[20] Comentário enviado por William98125 em 23/11/2022 - 05:56h

Hello you have picked very interesting topic about customization of android ROM but sir I can't implement it .
so please someone can guide me again .

https://www.mybkexperience.one

[21] Comentário enviado por FrankD1 em 29/11/2022 - 08:07h


That's great. I was impressed by your writing. I am happy to see such a topic. Please come to my blog and read it.


https://www.mykplan.me/

[22] Comentário enviado por Geraldpennington em 07/12/2022 - 02:03h


Thanks for sharing that..

https://www.monkey.vin/

[23] Comentário enviado por thatininge em 23/03/2023 - 02:59h


[17] Comment Submitted By Dawson6358 On 11/07/2022 - 02:42 AM


Same issue here and I can't find any methods. I highly appreciate your hard-working skills as the post you published have some great information which is quite beneficial for me https://www.checkmyrota.net/




[24] Comentário enviado por taradean em 03/04/2023 - 08:58h

Thanks for the information.. https://www.mygeorgiasouthern.net/

[25] Comentário enviado por Georgia69 em 22/04/2023 - 07:34h

Keep it concise: Long comments can be difficult to read and may not be fully appreciated by other readers. Try to keep your comments concise and to the point. https://www.etenet.biz/

[26] Comentário enviado por Abnerpp em 28/06/2023 - 12:29h


Da para conseguir instalar uma rom de linux, excluindo o sistema original? Fazendo o aproveitamento somente do KERNEL.....?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts