Il bootloader
è un componente fondamentale presente in qualsiasi dispositivo dotato di sistema operativo, che si tratti di un computer, di un telefono Android o persino di sistemi embedded. Si tratta del programma che, nella fase di avvio (boot), carica il kernel del sistema operativo dalla memoria secondaria (ad esempio un hard disk) alla memoria primaria, generalmente la RAM, permettendone l’esecuzione da parte del processore e il conseguente avvio del sistema.
Il termine deriva dal fatto che il processo di avvio viene chiamato bootstrap
. Nel caso di più sistemi operativi installati sulla stessa macchina, il caricamento da parte del bootloader è preceduto dalla selezione del sistema operativo desiderato da parte dell’utente tramite il boot manager.
Quando un telefono Android viene acceso, il bootloader esegue diversi controlli preliminari. Innanzitutto, verifica l’integrità dei file di sistema, accertandosi che non siano danneggiati. Inoltre, controlla che la firma digitale del sistema operativo sia conforme a quella del produttore o di un operatore autorizzato. Solo dopo aver superato con successo questi check, il bootloader consente il caricamento del kernel e degli altri componenti, permettendo così l’avvio di Android o del sistema operativo specifico.
La maggior parte dei produttori impone, di default, il blocco del bootloader sui propri dispositivi. Ciò significa che è possibile caricare esclusivamente sistemi operativi ufficialmente firmati, impedendo l’installazione di versioni non autorizzate o personalizzate.
Il termine sblocco del bootloader
si riferisce all’operazione che permette di rimuovere le restrizioni imposte dal produttore. Questa operazione consente, ad esempio, di installare una custom ROM
, sostituire la recovery
di fabbrica con una versione personalizzata, e ottenere permessi di root
.
Non esiste una procedura univoca, poiché tale processo varia a seconda dei produttori e dei modelli. In alcuni casi, è sufficiente utilizzare un comando da terminale per completare l’operazione. Altri dispositivi richiedono necessariamente un codice di sblocco fornito dal produttore per procedere. In situazioni più complesse, determinati telefoni non offrono alcun metodo di sblocco ufficiale, costringendo gli utenti a ricorrere a exploit o software specifici per superare le restrizioni imposte.
Avvertenze #
- La maggior parte dei produttori annulla la garanzia se riscontra che il bootloader è stato sbloccato
- Durante il processo di sblocco, le partizioni del dispositivo vengono formattate, cancellando totalmente tutti i dati memorizzati
- Un bootloader sbloccato (o una custom ROM) impedirà al dispositivo di superare il Play Integrity Check, impedendo il corretto funzionamento di alcuni servizi come GPay o alcune applicazioni, come quelle bancarie
- Consentire l’installazione di software non verificato può rendere il sistema vulnerabile a potenziali attacchi e minacce di sicurezza
Prerequisiti generali #
- Installare i pacchetti
adb
efastboot
sul proprio computer. Per utenti di distribuzioni Debian e derivate, è sufficiente eseguire il comando:sudo apt install android-tools-adb android-tools-fastboot
- Abilitare le
Opzioni Sviluppatore
sul telefono Android. Successivamente, attivare ilDebugging USB
e losblocco OEM
. Tutta questa procedura é descritta molto bene da iFixit - Collegare il telefono al computer tramite un cavo USB. Assicurarsi di abilitare l’opzione
Trasferimento File/Android Auto
sul dispositivo
Sblocco del bootloader di un Oneplus 6 #
Trattandosi di un device del 2018, la procedura é molto semplice. Sul computer, aprire un terminale e digitare il comando adb -d reboot bootloader
per entrare in modalitá fastboot.
Una volta che il dispositivo sia entrato in questa modalità, verificare che il computer lo riconosca eseguendo il comando:
fastboot devices
Infine, digitare il comando
fastboot oem unlock
per sbloccare il bootloader. A questo punto, il dispositivo potrebbe visualizzare delle schermate che richiedono l’interazione per continuare il processo di sblocco. Se il dispositivo non si riavvia automaticamente, procedere a effettuare un riavvio manuale. Il bootloader dovrebbe ora risultare sbloccato.
A questo punto, é possibile istallare una custom ROM, come LineageOS for microG
, seguendo la procedura ufficiale.
microG #
microG è un re-implementazione libera dei Google Play Services. Consente alle applicazioni che utilizzano le API proprietarie di Google di funzionare su ROM basate su AOSP come LineageOS, agendo come un sostituto dei Google Play Services proprietari.
Si tratta di uno strumento potente per recuperare la propria privacy e libertà, mantenendo le funzionalità core di Android. Per permettere a microG di funzionare correttamente, il sistema Android deve supportare la signature spoofing
. Questa tecnica consente a un’applicazione di simulare la firma digitale di un’altra applicazione, come nel caso dei Google Play Services. Tale pratica permette a microG di ingannare le applicazioni che utilizzano le API di Google, facendole credere di operare in un ambiente in cui i Google Play Services ufficiali sono presenti e attivi.