A partições do
Android são, em sua maioria, imagens esparsas de algum sistema de arquivos EXT4. O Android, quando inicia, monta as partições a partir de blocos que são arquivos de imagem somente leitura, elas permanecem assim pelo resto da vida, a não ser que o fabricante torne a modificá-los através de alguma atualização ou o usuário instale uma ROM customizada.
Algumas partições podem conter arquivos TAR, ao invés de um sistema de arquivos, como mostrado no artigo:
Mas por quê as imagens são esparsas? A ideia por trás disso é economizar espaço, visto que o armazenamento de memória nos celulares é muito limitado. Os Bytes vazios são cortados e o tamanho da imagem só aumenta conforme o usuário adiciona dados ao aparelho, consumindo apenas o espaço guardado nele, isso no caso da partição de dados que é dinâmica.
Para montar uma imagem esparsa no
Linux, você primeiro tem que converter ela para uma imagem crua e depois montá-la. Note que depois da conversão, o arquivo de imagem vai mostrar o seu real tamanho.
Download da stock ROM
Primeiro, baixe a ROM original do seu aparelho no site da Samsung, pesquise pelo modelo do celular, país e operadora. Os sites onde você pode baixar são esses, mas podem haver muitos outros também:
Após descompactar o arquivo ".zip", você vai ver que os arquivos terminam com ".tar".md5. Você pode verificar a integridade deles com essa dica:
Se pular a verificação, então descompacte os arquivos com qualquer programa de sua preferência. Se a ROM tiver comprimida com LZ4, instale o seguinte pacote para descomprimi-lo:
# apt install liblz4-tool
E depois, para descomprimir:
lz4 -d seu_arquivo_compactado.lz4
Após descomprimir todos os arquivos, você terá agora uma pasta cheia de binários. Eu recomendo criar uma pasta separada só para guardá-los, para fins de organização.
Eu chamei esta pasta de "stock" pois é aonde vão ficar os arquivos originais sem modificação, caso alguma coisa dê errado nós teremos um becape.
Crie uma outra pasta para guardar os seus arquivos modificados, afim de não se perderem. Na imagem abaixo, pode-se notar que eu criei outra pasta chamada "modified", pois é onde vão ficar os arquivos do Android modificado.
Com o terminal aberto nesta pasta, vamos converter a imagem do sistema Android para um formato que o Linux "possa entender":
simg2img ./stock/system.img ./modified/system.raw
Entre na pasta "modified" e monte a imagem do sistema como usuário root:
cd modified
mkdir system
sudo mount ./system.raw ./system/
Agora, nós temos a imagem do sistema montada na pasta "system" do nosso diretório de ROMs customizadas, dentro dela podemos fazer virtualmente qualquer coisa.
Vamos montar a partição product:
mkdir product
simg2img ../stock/product.img product.raw
sudo mount ./product.raw ./product/
Pronto, agora vamos começar a customização na próxima página.