☺ sorria, você está sendo programado
| About

# Experimento: usando um Samsung Galaxy S3 Mini como um SoC

Há umas semanas atrás, eu consegui um celular antigo da Samsung, um S3 Mini, era de um parente meu que tinha esse aparelho pegando pó há um bom tempo.
A versão do Android dele é bem antiga, ou seja, algumas aplicações essenciais para alguém que realmente vá usar um smartphone nem sequer tem mais suporte; então, para não deixar esse aparelho na gaveta de novo, eu tive a ideia de tentar transformá-lo num microcomputador ARM, para usar como um “estepe de Raspberry Pi” enquanto não compro um.

A primeira coisa que vamos precisar fazer de fato é uma troca de ROM no dispositivo, a fim de removermos bloat que vem instalado por padrão. Se você não é brasileiro, possivelmente não sabe do que estou falando, então deixa que eu explico: sempre que você compra um smartphone aqui no Brasil que seja vinculado à alguma operadora, ele vem com vários aplicativos instalados que são impossíveis de remover sem root ao menos — inclusive, isso é algo que o Ciro Santilli abordou no site dele em sua página sobre o Brasil — e esses aplicativos são um porre.
Eles geralmente consomem uma boa parte do armazenamento interno e alguns ainda rodam de fundo, o que é longe do ideal para o nosso caso, onde queremos usar o máximo do desempenho do aparelho para processamento e afins.
Além do mais, a própria Samsung botou alguns aplicativos que são úteis (e bons, como no caso do Samsung E-Mail), mas que para nosso experimento não vão servir de muita coisa.

O modelo que tenho em mãos é um GT-I8200L, que é o modelo mais vanilla.
Eu penei um pouco para encontrar os arquivos, mas os encontrei eventualmente, que são a ROM do CyanogenMod (lembra dele?) e o TWRP.
Não gosto de deixar links e downloads (afinal, isso não é um blog de pirataria e downloads, odeio essa estigma), mas nesse caso creio que seria necessário por conta da dificuldade que você teria de encontrá-los.
A ROM do CyanogenMod pode ser encontrada nessa thread do XDA Developers:
https://forum.xda-developers.com/t/cm-rom-for-s-iii-mini-value-edition-gt-i8200.3432885/

E a imagem do TWRP para o GT-I8200L também poderia ser encontrada aqui:
https://forum.xda-developers.com/t/twrp-for-galaxy-s3-mini-gt-i8200.3595483/

Pelo o que eu li, o GT-I8200L e o GT-I8200 são o mesmo modelo.

Depois que eu baixei os arquivos para o meu modelo, eu fui atrás de um programa para flasheá-los no aparelho — eu sei que poderia possivelmente fazer isso com o adb + flashboot, mas como eu disse antes a documentação é bem escassa e ninguém falava propriamente sobre o uso do adb nessa. Lembro de que o pessoal usava (e muito) o tal Odin, mas não vou usar ele pois, além de não ter para Linux, é um programa que foi vazado da Samsung, é bem lento e não é muito confiável; no lugar estarei usando o Heimdall, um programa de código-aberto e livre (tá na MIT), criado pela Glass Echidna, que é uma empresa australiana que produz software e presta consultoria de TI, ele tá disponível no AUR, então instalar ele no Arch é bem straightforward.

G450%; git clone https://aur.archlinux.org/heimdall-git                                                                       
Cloning into 'heimdall-git'...                                                                                                
remote: Enumerating objects: 24, done.                                                                                        
remote: Counting objects: 100% (24/24), done.                                                                                 
remote: Compressing objects: 100% (24/24), done.                                                                              
remote: Total 24 (delta 0), reused 24 (delta 0), pack-reused 0                                                                
Unpacking objects: 100% (24/24), 8.95 KiB | 763.00 KiB/s, done.                                                               
G450%; cd heimdall-git                                                                                                        
G450%; # Instale o Heimdall no /usr/local ao invés do /usr                                                                    
G450%; sed -i -e 's@/usr/bin@/usr/local/bin@g' -e 's@/usr/share@/usr/local/share@g' -e 's@-DCMAKE_INSTALL_PREFIX="/usr"@-DCMAK
E_INSTALL_PREFIX="/usr/local"@g' PKGBUILD                                                                                     
G450%; # Cheque se tudo foi trocado corretamente dentro do PKGBUILD                                                           
G450%; grep '/usr/local' PKGBUILD --color=always                                                                              
        cmake . -DCMAKE_INSTALL_PREFIX="/usr/local"                                                                           
        install -m644 -D "$srcdir/heimdall.desktop" "$pkgdir/usr/local/share/applications/heimdall.desktop"                   
        install -m644 -D LICENSE "$pkgdir/usr/local/share/licenses/$pkgname/LICENSE"                                          
        install -d "$pkgdir"/usr/local/bin                                                                                    
        install -Dm755 bin/* "$pkgdir"/usr/local/bin/                                                                         
G450%; # Agora só compile o pacote usando o makepkg                                                                           
G450%; makepkg -si                                                                                                            
==> WARNING: Cannot find the sudo binary. Will use su to acquire root privileges.                                             
==> Making package: heimdall-git 1.4.2.r10.g3997d5c-1 (Mon Nov  1 07:26:31 2021)                                              
==> Checking runtime dependencies...                                                                                          
==> Checking buildtime dependencies...                                                                                        
==> Retrieving sources...                                                                                                     
  -> Cloning Heimdall git repo...                                                                                             
Cloning into bare repository '/var/tmp/heimdall-git/Heimdall'...                                                              
                                                                                                                              
                                                                                                                              
[0] 0:bash  1:bash* 2:zsh  3:heimdall-frontend  4:vim-                                                  "G450" 07:26 01-Nov-21