Un Raspberry pour flasher Android
Page mise à jour le 06-01-2026 à 23:21
Dans ce tutoriel il est question d’implémenter une plateforme et les outils permettrant de flasher une rom Android depuis un Raspberry.
Ceci a été réalisé dans un but purement expérimental et peut être reproduit avec un PC basé sur Debian.
Les procédures d'installation sur un téléphone d'un custom recovery, d'un firmware alternatif et du mode root ne sont pas détaillées ici.
Avant de commencer

Fiche technique du Raspberry Pi 3B+
Type de produit Nano-ordinateur
Marque Raspberry
Modèle Pi 3B+
Type de stockage Carte Micro-SD
Processeur (CPU) Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz
Mémoire vive (RAM) 1GB LPDDR2 SDRAM
Processeur graphique (GPU) VideoCore IV
Ports USB 4 x USB 2.0
Port Ethernet Gigabit Ethernet over USB 2.0 (maximum throughput 300 Mbps)
Wireless 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2, BLE
Ports GPIO / MPI DSI / MPI CSI Extended 40-pin GPIO header / CSI camera port / DSI display port
Port HDMI Full-size HDMI
Audio 4 poles stereo output and composite video port
Alimentation micro USB (5V – 2.5A)
POE Power-over-Ethernet (PoE) support (requires separate PoE HAT)
Dimensions 85mm x 56mm

PREREQUIS
Un Raspberry Pi 3B+
Une carte microSD (8Go mini, 64Go maxi, 16Go conseillé)
La version de Raspberry Pi OS x64 with desktop Debian 11 Bullseye disponible depuis le site officiel
L'archive est à décompresser avec 7zip

Premier démarrage du Raspberry

Formatez la carte microSD avec SD Card Formatter (facultatif)
Flashez sur la carte microSD l’image iso raspios-xxxxxx-arm64.img avec Win32DiskImager

Insérez la carte microSD et connectez l’alimentation.
Le système Raspberry Pi OS s'installe puis démarre sur un assistant.
• Sélectionnez France / Français / Paris
• Conservez par défaut tous les autres paramètres et cliquez sur SKIP lorsque ce choix est proposé.

Si vous n'obtenez pas d’affichage au démarrage du Raspberry (problème constaté avec certains convertisseurs HDMI/VGA)
Insérez la carte microSD dans un lecteur USB et éditez le fichier /boot/config.txt
Décommentez les lignes suivantes en appliquant ces paramètres.
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=81
hdmi_drive=2

Installation de la plateforme

A propos des téléphones de la marque Samsung :
Le logiciel officiel Samsung Odin n’est disponible que pour le système d'exploitation Windows.
Toutefois un outil libre nommé JOdin3 a été développé pour combler cette lacune sous Linux.
Les paquets Heimdall, Java 8 et OpenJFX sont requis pour son fonctionnement.

Installez les paquets
sudo apt-get update
sudo apt-get install android-tools-adb
sudo apt-get install android-tools-fastboot
sudo apt-get install heimdall-flash
sudo apt-get install heimdall-flash-frontend
sudo apt-get install default-jre
sudo apt-get install openjfx

Vérifiez que Java est au minimum dans sa version 8
java -version
    openjdk version "11.0.9.1" 2020-11-04
    OpenJDK Runtime Environment (build 11.0.9.1+1-post-Raspbian-1deb10u2)
    OpenJDK Server VM (build 11.0.9.1+1-post-Raspbian-1deb10u2, mixed mode)

Téléchargez et décompressez l’archive JOdin3CASUAL-xxxxx-dist.zip (adaptez la version)
Positionnez-vous dans le répertoire JOdin3CASUAL-xxxxx-dist/app/
Lancez la commande
java --module-path /usr/share/openjfx/lib/ --add-modules javafx.fxml,javafx.web -jar JOdin3CASUAL.jar

Redémarrez le système
sudo reboot

Vérifiez le fonctionnement de ADB et Fastboot avec un téléphone autre que Samsung
• Démarrez le téléphone en mode normal
• Activez le Débogage USB
• Connectez le téléphone au Raspberry
• Entrez les commandes suivantes
adb devices               # affiche le numéro de série
adb reboot bootloader     # redémarre le téléphone en mode fastboot
fastboot reboot           # redémarre le téléphone

Vérifiez le fonctionnement de ADB et Heimdall avec un téléphone Samsung uniquement
• Démarrez le téléphone en mode download (Volume down + Home + Power)
• Connectez le téléphone au Raspberry
• Entrez les commandes suivantes
adb devices               # affiche le numéro de série
heimdall detect           # affiche Device detected
heimdall print-pit        # affiche la table des partitions et redémarre

Remarques sur JOdin3 :
• Son interface est similaire à celle d’Odin.
• Détection correcte des périphériques.
• Autorise le flash de custom roms.
• Aucune documentation précise quant à son installation.
• Finition négligée de l’interface.
Jodin3 accepte tous types de fichiers, alors prudence !



Annexe 1 - La commande Heimdall

# Syntaxe : heimdall <option> <arguments>

-close-pc-screen
[--verbose] [--no-reboot] [--resume] [--stdout-errors] [--usb-log-level <none/error/warning/debug>]
# Attempts to get rid off the "connect phone to PC" screen.
# Note: --no-reboot causes the device to remain in download mode after the action is completed.
# If you wish to perform another action whilst remaining in download mode, then the following action
# must specify the --resume flag.

-detect
[--verbose] [--stdout-errors] [--usb-log-level <none/error/warning/debug>]
# Indicates whether or not a download mode device can be detected.

-download-pit
--output <filename> [--verbose] [--no-reboot] [--stdout-errors] [--usb-log-level <none/error/warning/debug>]
# Downloads the connected device's PIT file to the specified output file.
# Note: --no-reboot causes the device to remain in download mode after the action is completed.
# If you wish to perform another action whilst remaining in download mode, then the following action must
# specify the --resume flag.

-flash
    [--<partition name> <filename> ...]
    [--<partition identifier> <filename> ...]
    [--pit <filename>] [--verbose] [--no-reboot] [--resume] [--stdout-errors]
    [--usb-log-level <none/error/warning/debug>]
-flash
    --repartition --pit <filename> [--<partition name> <filename> ...]
    [--<partition identifier> <filename> ...] [--verbose] [--no-reboot]
    [--resume] [--stdout-errors] [--usb-log-level <none/error/warning/debug>]
# Flashes one or more firmware files to your phone.
# Partition names (or identifiers) can be obtained by executing the print-pit action.
# Note: --no-reboot causes the device to remain in download mode after the action is completed.
# If you wish to perform another action whilst remaining in download mode, then the following action must
# specify the --resume flag.
# WARNING: If you're repartitioning it's strongly recommended you specify all files at your disposal.

-print-pit
[--file <filename>] [--verbose] [--no-reboot] [--stdout-errors] [--usb-log-level <none/error/warning/debug>]
# Prints the contents of a PIT file in a human readable format. If a filename is not provided then Heimdall
# retrieves the PIT file from the connected device.
# Note: --no-reboot causes the device to remain in download mode after the action is completed.
# If you wish to perform another action whilst remaining in download mode, then the following action must
# specify the --resume flag.

-help
# Displays this dialogue.

-info
# Displays information about Heimdall.

-version
# Displays the version number of this binary.

Annexe 2 - La commande Java

La commande jar crée une archive pour les classes et les ressources, et peut manipuler ou restaurer les classes ou ressources individuelles à partir d'une archive.

# Syntaxe
jar [OPTION...] [ [--release VERSION] [-C dir] files] ...

# Création d'une archive nommée classes.jar composée de deux fichiers de classe
jar --create --file classes.jar Foo.class Bar.class

# Création d'une archive à l'aide d'un manifeste existant, avec tous les fichiers dans foo/
jar --create --file classes.jar --manifest mymanifest -C foo/

# Création d'une archive JAR modulaire où le descripteur de module est situé dans classes/module-info.class
jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/ classes resources

# Mise à jour d'un fichier JAR non modulaire existant vers un fichier JAR modulaire
jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/ module-info.class

# Crée un fichier JAR multiversion en plaçant certains fichiers dans le répertoire META-INF/versions/9
jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes

# Pour raccourcir ou simplifier la commande JAR, vous pouvez spécifier des arguments dans un fichier texte
# distinct et le transmettre à la commande JAR avec le signe arobase (@) en tant que préfixe

# Options de lecture supplémentaires et liste des fichiers de classe à partir du fichier classes.list
jar --create --file my.jar @classes.list

# Mode d'exploitation principal
-c, --create                Crée l'archive
-i, --generate-index=FILE   Génère des informations d'index pour les archives JAR indiquées
-t, --list                  Affiche la table des matières de l'archive
-u, --update                Met à jour une archive JAR existante
-x, --extract               Extrait des fichiers nommés (ou tous les fichiers) de l'archive
-d, --describe-module       Affiche le descripteur de module ou le nom de module automatique

# Modificateurs d'opération valides pour tous les modes
-C DIR              Passe au répertoire spécifié et inclut le fichier suivant
-f, --file=FILE     Nom du fichier d'archive. Si omis, stdin ou stdout est utilisé en fonction de l'opération
--release VERSION   Place tous les fichiers suivants dans un répertoire avec numéro de version du fichier JAR
                    (à savoir META-INF/versions/VERSION/)
-v, --verbose       Génère une sortie en mode verbose d'une sortie standard

# Modificateurs d'opération valides uniquement en modes create et update
-e, --main-class=CLASSNAME  Point d'entrée d'une application en mode autonome intégrée à une archive JAR
                            modulaire ou exécutable
-m, --manifest=FILE         Inclut les informations de manifeste du fichier manifeste donné
Papy WinTux - Philippe DESLOGES - 2023-2026 - Powered by Debian - Apache 2.4.54 - PHP 7.4.33 - Last update 06-01-2026 23:21 - Page size 30 ko built in 0 ms
All trademarks, logos, images and documents on these pages belong exclusively to their respective owners.