Android Debug Bridge (adb
), Fastboot (fastboot
) et Heimdall (heimdall
) sont trois outils en ligne de commande qui permettent à un PC de communiquer avec un smartphone, notamment pour accéder à des partitions protégées en écriture. Dans mon quotidien, je m’en sers concrètement pour remplacer le système propriétaire Android préinstallé par son équivalent open source LineageOS.
Installer ADB et Fastboot
Sous Rocky Linux 8, le dépôt de paquets tiers EPEL (Extra Packages for Enterprise Linux) fournit le paquet android-tools
avec les deux binaires adb
et fastboot
, entre autres choses :
# dnf install -y android-tools # rpm -ql android-tools | head -n 6 /usr/bin/adb /usr/bin/append2simg /usr/bin/avbtool /usr/bin/e2fsdroid /usr/bin/ext2simg /usr/bin/fastboot
Configurer ADB
Maintenant que ADB est installé, il faut le configurer sur le smartphone :
- Applications > Paramètres > À propos de l’appareil.
- Appuyez sept fois sur Numéro de version.
- Revenez en arrière et sélectionnez Options de développement.
- Cochez Débogage USB.
- Cochez Déblocage OEM.
- Reliez le smartphone au PC avec un câble USB.
- Autoriser le débogage USB > Toujours autoriser ce PC > OK.
Si tout s’est bien passé, la commande adb devices
devrait afficher le téléphone branché :
$ adb devices List of devices attached a851c680 device
Si ça ne fonctionne pas comme prévu, essayez de remplacer le protocole MTP par PTP pour vous connecter. Dans les paramètres du téléphone, allez dans Options de développement > Réseau > Configuration USB > PTP.
Installer Heimdall
Heimdall est un outil spécifiquement conçu pour les smartphones de la marque Samsung. Sous Linux, on a le choix entre une version en ligne de commande (heimdall
) et un frontal graphique (heimdall-frontend
). J’ai testé les deux, et j’avoue que je préfère de loin la version en ligne de commande.
Sous Rocky Linux 8, aucun dépôt de paquets officiel ou tiers ne fournit de paquet binaire correspondant. Nous allons donc chasser l’ours à mains nues et compiler l’outil depuis les sources, ce qui ne relève pas de la magie noire.
Dans un premier temps, il faut installer quelques prérequis pour la construction :
# dnf group install -y "Development Tools" # dnf install -y cmake libusb-devel qt5-devel
Ensuite, on va récupérer les sources de Heimdall :
$ git clone https://github.com/Benjamin-Dobell/Heimdall.git
Le fichier README
fournit des instructions sommaires pour la compilation. Voici en gros ce qu’il faut faire :
$ cd Heimdall/ $ mkdir build $ cd build $ cmake -DCMAKE_BUILD_TYPE=Release .. $ make
Si tout s’est bien passé, on peut procéder à l’installation :
$ sudo make install
N’ayez pas peur de spammer votre système. Le résultat de cette opération, ce sont deux binaires proprement rangés dans un endroit approprié :
$ tree /usr/local/bin/ /usr/local/bin/ ├── heimdall └── heimdall-frontend
Le fichier 60-heimdall.rules
permet aux utilisateurs communs mortels d’accèder à un smartphone Samsung branché sur le port USB du PC :
$ cd .. $ sudo cp heimdall/60-heimdall.rules /etc/udev/rules.d/
Configurer Heimdall
Pour mes tests, je me suis servi d’un vieux Samsung Galaxy SM-A520F :
- Éteindre le téléphone.
- Démarrer en mode Download : VolDown+Home+Power.
- Un avertissement s’affiche : appuyer sur VolUp pour continuer.
- Le téléphone affiche
Downloading... Do not turn off target
.
Testez Heimdall en invoquant la commande suivante :
$ heimdall print-pit
Si le téléphone redémarre et que votre terminal vous affiche un tsunami d’informations, c’est que tout fonctionne correctement.
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
1 commentaire
Emmanuel · 13 août 2023 à 10 h 42 min
Sur un sujet connexe, il serait intéressant de pouvoir utiliser une carte SIM sous Linux.
Jusqu’à présent, je n’ai malheureusement pas vraiment trouvé de documentation ni de pilote non propriétaire pour le faire.