Une introduction au firmware Android

Les téléphones et tablettes Android sont généralement beaucoup plus ouverts que leurs homologues exécutant des systèmes d'exploitation tels que iOS, Tizen ou Windows 10 Mobile. Si vous n'aimez pas le firmware que le fabricant de l'appareil a installé sur votre appareil Android, vous êtes libre de le remplacer par votre propre firmware personnalisé. CyanogenMod, Paranoid Android et Pure Nexus Project sont des exemples de microprogrammes personnalisés qui jouissent d'une grande popularité parmi les utilisateurs d'Android..

Un micrologiciel personnalisé est également le seul moyen d'installer des versions plus récentes d'Android sur des appareils qui ne sont plus pris en charge par leurs fabricants. À moins que vous ne possédiez un appareil appartenant à la série Nexus ou Android One, je suis sûr que vous le saviez déjà..

Dans cet article, je vous aide à comprendre ce qu'est le micrologiciel Android et comment il est utilisé par un appareil Android. Je vous présente également les outils que vous pouvez utiliser pour remplacer le micrologiciel d'un périphérique..

Un mot d'avertissement

Le remplacement du micrologiciel est une opération risquée susceptible de rendre votre appareil inutilisable. Dans la plupart des cas, cela annule également la garantie de votre appareil. Assurez-vous de disposer d'une copie de sauvegarde de vos données et d'une copie de l'image d'origine de votre périphérique avant de commencer à expérimenter un micrologiciel personnalisé clignotant..

1. Qu'est-ce qu'un micrologiciel Android??

À l'origine, le terme micrologiciel était utilisé pour désigner de minuscules programmes critiques installés dans la mémoire morte (ROM) d'un périphérique électronique. La modification du micrologiciel était impossible ou nécessitait un équipement spécial hors de portée des utilisateurs finaux ordinaires..

Le firmware Android, cependant, est très différent. Il inclut tout le système d'exploitation Android et est stocké dans une forme de mémoire inscriptible appelée mémoire flash NAND, le même type de mémoire que celui utilisé dans les périphériques de stockage, tels que les clés USB et les cartes SD. Le mot firmware est utilisé uniquement parce que les fabricants de périphériques ne se sont pas donné la peine de trouver un nouveau mot.

Le micrologiciel Android est également souvent appelé ROM Android car, par défaut, il n'est pas possible pour les utilisateurs de l'écrire directement.

2. Que contient le micrologiciel Android??

Le micrologiciel installé sur un appareil Android par son fabricant contient une version du système d’exploitation Android et deux programmes sources fermés supplémentaires qui sont généralement irremplaçables, un chargeur de démarrage et micrologiciel radio.

Comprendre les bootloaders

Un chargeur de démarrage Android est un petit morceau de code propriétaire responsable du démarrage du système d'exploitation Android lorsqu'un périphérique Android est mis sous tension. Cependant, le chargeur de démarrage effectue presque toujours une tâche supplémentaire. Il vérifie si le système d'exploitation qu'il démarre est authentique.

Comment décide-t-il ce qui est authentique? Il vérifie si la partition de démarrage a été signée à l'aide d'un identifiant unique. Clé OEM, qui est court pour Fabricant d'équipement d'origine clé. Bien entendu, la clé OEM appartient au fabricant de l'appareil, elle est privée et il est impossible de savoir ce que c'est..

En raison de la vérification de l'authenticité, vous ne pouvez pas installer directement une ROM personnalisée sur un périphérique Android. Heureusement, ces jours-ci, la plupart des fabricants de périphériques permettent aux utilisateurs de désactiver le contrôle. Dans le jargon Android, ils permettent aux utilisateurs de ouvrir le chargeur de démarrage.

La procédure exacte à suivre pour déverrouiller le chargeur de démarrage dépend de votre appareil. Certains fabricants, tels que Sony et HTC, s’attendent à ce que vous fournissiez un jeton de déverrouillage secret. D'autres s'attendent à ce que vous exécutiez un ensemble fixe de commandes à l'aide d'un terminal.

Habituellement, un outil appelé fastboot, qui fait partie du SDK Android, est utilisé pour exécuter les commandes de déverrouillage. Par exemple, si vous possédez un appareil Nexus, vous pouvez déverrouiller son chargeur de démarrage en exécutant la commande suivante:

fastboot clignotant déverrouiller

Vous en apprendre plus sur fastboot plus tard dans cet article. Notez que si vous possédez un appareil dont le chargeur de démarrage ne peut pas être déverrouillé, il n’existe pas de moyen facile de modifier ou de remplacer son firmware..

Comprendre le micrologiciel radio

Cela pourrait vous surprendre, mais votre smartphone Android utilise en réalité un autre système d'exploitation sur un processeur indépendant appelé processeur de bande de base. Micrologiciel radio fait référence au système d'exploitation qui s'exécute sur le processeur en bande de base.

En général, il s’agit d’un RTOS, qui signifie système d'exploitation en temps réel, et est responsable de la gestion des capacités de radio cellulaire du périphérique. En d’autres termes, c’est ce qui permet à votre appareil de passer des appels et de se connecter à Internet à l’aide de technologies sans fil telles que 2G, 3G et 4G LTE..

Le RTOS est un morceau de code propriétaire et les fabricants de processeurs de bande de base populaires, tels que Qualcomm, MediaTek et Spreadtrum, veillent à ce que son fonctionnement interne reste secret. Le système d'exploitation Android communique généralement avec le RTOS à l'aide de sockets et de callbacks..

En règle générale, ce n'est pas une bonne idée de remplacer le firmware de la radio de votre appareil.

Comprendre les versions Android

La version Android est la seule partie du micrologiciel créée à partir de code open source. Par conséquent, c'est la seule partie que vous pouvez modifier et étendre. Lorsque vous entendez les passionnés d’Android dire «j’ai flashé une nouvelle ROM sur mon appareil», vous pouvez être sûr qu’ils parlent d’une nouvelle version d’Android..

Une version Android est généralement partagée sous la forme d'un fichier ZIP pouvant être utilisé par fastboot. Il a le contenu suivant:

update.zip | - android-info.txt | - boot.img | - recovery.img | - system.img '- userdata.img

android-info.txt est un fichier texte spécifiant les prérequis de la construction. Par exemple, il peut spécifier les numéros de version du chargeur de démarrage et du micrologiciel de la radio nécessaires à la construction. Voici un échantillon android-info.txt fichier:

require board = hareng nécessite version-bootloader = I9020XXJK1 besoin version-baseband = I9020XXKD1

boot.img est un fichier binaire contenant à la fois un noyau Linux et un disque mémoire sous la forme d'une archive GZIP. Le noyau est un fichier de démarrage exécutable zImage pouvant être utilisé par le chargeur de démarrage..

Le disque mémoire, en revanche, est un système de fichiers en lecture seule monté par le noyau pendant le processus de démarrage. Il contient le bien connu init processus, le premier processus lancé par n’importe quel système d’exploitation basé sur Linux. Il contient également divers démons tels que adbd et santé, qui sont lancés par le init processus. Voici ce que l’arborescence du répertoire disque ram ressemble à:

disque virtuel / | - charger -> / sbin / healthd | - data | - default.prop | - dev | - fichiers_fichiers | - fstab.grouper | - init | - init.environ.rc | - - init.grouper.rc | - init.grouper.usb.rc | - init.rc | - init.recovery.grouper.rc | - init.trace.rc | - init.usb.rc | - - init.zygote32.rc | - proc | - property_contexts | - sbin | | - adbd | | - santé | | - ueventd ->… / init | '- watchdogd ->… / init | - seapp_contexts | - selinux_version | - sepolicy | - service_contexts | - sys | - system | - ueventd.grouper.rc' - ueventd.rc

system.img est l'image de la partition qui sera montée sur le vide système répertoire que vous pouvez voir dans l’arbre ci-dessus. Il contient les fichiers binaires nécessaires au fonctionnement du système d'exploitation Android. Il comprend les applications système, les polices, les fichiers JAR du framework, les bibliothèques, les codecs multimédias, etc. De toute évidence, c’est le fichier qui intéresse le plus les utilisateurs d’Android lorsqu’ils flasheront une nouvelle ROM..

L'image système est également le fichier qui pousse la plupart des utilisateurs d'Android à s'intéresser au micrologiciel personnalisé clignotant. Les fichiers d’image système fournis par les fabricants d’appareils regorgent souvent d’applications et de personnalisations inutiles, appelées officieusement bloatware. Le seul moyen de supprimer le bloatware est de remplacer l'image système du fabricant par une image système plus souhaitable..

userdata.img est une image de partition qui sera montée sur le vide Les données répertoire que vous pouvez voir dans l’arborescence de répertoires du disque virtuel. Lorsque vous téléchargez une ROM personnalisée, cette image est généralement vierge et elle est utilisée pour réinitialiser le contenu de la Les données annuaire.

récupération.img est très similaire à boot.img. Il contient un fichier noyau exécutable que le chargeur d’amorçage peut utiliser et un disque mémoire. Par conséquent, l'image de récupération peut également être utilisée pour démarrer un appareil Android. Lorsqu’il est utilisé, à la place d’Android, un système d’exploitation très limité est lancé. Il permet à l’utilisateur d’effectuer des opérations administratives, telles que la réinitialisation des données utilisateur du périphérique, l’installation d’un nouveau micrologiciel et la création de sauvegardes..

La procédure à suivre pour démarrer à l'aide de l'image de récupération est spécifique à l'appareil. Habituellement, cela implique de passer en mode bootloader, également appelé mode de boot rapide, en appuyant sur une combinaison de touches matérielles présentes sur le périphérique, puis en sélectionnant le Récupération option. Par exemple, sur un appareil Nexus, vous devez maintenir enfoncé le bouton d'alimentation en combinaison avec le bouton de réduction du volume..

Alternativement, vous pouvez utiliser adb, un outil inclus dans le SDK Android, pour entrer directement en mode de récupération.

récupération de redémarrage adb

3. Utiliser fastboot

Le moyen le plus simple de flasher un nouveau micrologiciel sur votre appareil est d’utiliser le fastboot outil. fastboot suit le protocole fastboot pour communiquer avec un appareil Android. Cependant, il ne peut le faire que lorsque le périphérique a été démarré en mode de démarrage rapide. Le moyen le plus rapide de passer en mode de démarrage rapide consiste à utiliser adb:

redémarrage du chargeur de démarrage adb

Pour flasher une ROM personnalisée disponible sous la forme d'un fichier ZIP contenant tous les fichiers image mentionnés dans la section précédente, vous pouvez utiliser le mise à jour rapide commander. Par exemple, voici comment flasher une ROM présente dans un fichier nommé update.zip:

mise à jour fastboot update.zip

Si vous ne voulez que flasher une image spécifique, vous pouvez le faire en utilisant le bouton flash rapide commander. Par exemple, voici comment vous flasher uniquement l'image du système:

système flash rapide system.img

De même, si vous souhaitez remplacer uniquement l'image de démarrage, utilisez la commande suivante:

démarrage rapide flash boot.img

Il est toujours judicieux de vérifier si une image de démarrage ou de récupération fonctionne avant de la montrer à votre appareil. Pour ce faire, vous pouvez utiliser le démarrage rapide commander. Par exemple, voici comment vérifier si une image de récupération personnalisée appelée twrp.img est compatible avec votre appareil:

démarrage rapide twrp.img

Notez qu'aucun des fastboot les commandes mentionnées dans cette section fonctionneront si le chargeur de démarrage de votre appareil n'a pas été déverrouillé.

Conclusion

.