Qu'est-ce que le démarrage sous Android. Qu'est-ce que Bootloader sur Android. Téléchargement et installation de FastBoot

Pour pouvoir affiner les paramètres du système d'exploitation et du matériel, les utilisateurs d'appareils mobiles fonctionnant sous Android rootent parfois leurs gadgets et apportent également des modifications à . Mais ce ne sont pas tous les moyens disponibles pour obtenir un accès étendu aux paramètres de l'appareil et du système. Vous pouvez regarder sous le « capot » de l’appareil en utilisant un mode appelé Fastboot Mode.

Qu'est-ce que le mode Fastboot

Que signifie le mode Fastboot et qu'est-ce que cela a à voir avec le réglage fin ? Dans certains modèles d'ordinateurs portables, il sert réellement à maximiser la vitesse de démarrage du système, en contournant le BIOS et les applications de débogage ; dans les appareils mobiles, son objectif est quelque peu différent. Sur les smartphones et tablettes Android, ce mode est nécessaire principalement pour permettre l'accès et le contrôle des composants système de l'appareil à l'aide d'un ordinateur.

Grâce aux capacités du mode Fastboot, les spécialistes du centre de service et les utilisateurs expérimentés peuvent installer des logiciels, flasher le gadget, restaurer des applications, effectuer des sauvegardes et des restaurations et modifier les paramètres système cachés. Les développeurs ont souvent recours au « chargement rapide », en l'utilisant pour tester des logiciels et à d'autres fins.

Après avoir expliqué le but du mode, il semble que nous n’ayons toujours pas répondu à la question de savoir ce qu’est essentiellement le mode Fastboot. Ainsi, Fastboot sous Android est un composant logiciel distinct, indépendant du système d'exploitation, implémenté au niveau matériel et enregistré dans la puce mémoire. C'est cette indépendance qui permet à l'appareil de démarrer même si de graves problèmes surviennent avec le système d'exploitation. Le code du programme Fastboot Mode se trouve dans une zone mémoire protégée contre la lecture et l'écriture, ce qui évite qu'il ne soit endommagé.

Dans quels cas le mode Fastboot est-il activé ?

L'environnement Fastboot peut être lancé manuellement via le menu standard ou en appuyant simultanément sur le bouton d'alimentation et la touche de diminution/augmentation du volume sur l'appareil éteint. Mais dans certains cas, le mode démarre tout seul, et ce n'est pas une très bonne chose. Les raisons du chargement spontané peuvent être un clignotement infructueux, le remplacement de l'environnement de récupération standard par un environnement modifié, l'obtention des droits de superutilisateur, une panne du système et des dommages aux fichiers du système d'exploitation Android.

Comment quitter le mode Fastboot

L'activation du mode est indiquée par l'image du robot ouvert et l'inscription sur l'écran du téléphone Fastboot Mode.

Si vous n'avez apporté aucune modification à la configuration du gadget auparavant, la raison du passage au « démarrage rapide » était peut-être une sorte de problème temporaire. Essayez de redémarrer votre smartphone. Si, même après un redémarrage, le téléphone indique fastboot et ne passe pas en mode de fonctionnement normal, cela peut indiquer des problèmes plus graves. Il est possible que le problème s'avère si grave que le gadget doive être reflashé dans un centre de service, mais en attendant, vous devriez essayer de quitter le démarrage rapide vous-même.

Il existe deux manières principales de procéder : via le téléphone lui-même et en utilisant un ordinateur. Si un redémarrage normal ne résout pas le problème, éteignez l'appareil, puis maintenez simultanément les touches d'alimentation et de réduction du volume enfoncées jusqu'à ce que (environ 10 secondes) le menu Sélectionner le mode de démarrage apparaisse à l'écran ou que le téléphone démarre en mode normal. Dans ce menu, sélectionnez l'option Démarrage normal et attendez que le gadget démarre en mode normal.

Dans certains cas, retirer la batterie permet de sortir du mode débogage, si elle est bien entendu amovible.

Parfois, les utilisateurs doivent gérer le chargement en mode fastboot après avoir récupéré le gadget auprès du centre de service. Cela arrive généralement après. La raison probable est que la fonction du mode fastboot est restée activée dans les paramètres. Si tel est le cas, alors pour désactiver le mode Fasboot, accédez aux paramètres, puis dans la section « Affichage » ou « Accessibilité », recherchez l'élément « Démarrage rapide » et décochez-le.

Comment quitter le mode Fastboot à l’aide d’un ordinateur ? Installez des applications sur votre PC, connectez votre téléphone à l'ordinateur, activez le débogage USB, exécutez la ligne de commande en tant qu'administrateur et exécutez la commande redémarrage rapide. C'est un moyen simple mais très efficace de désactiver le démarrage rapide.

Si cela ne résout pas le problème, réinitialisez l'appareil aux paramètres d'usine. Après avoir copié toutes les données importantes, retirez la carte SIM et la carte mémoire du téléphone, démarrez en mode de récupération, recherchez l'option dans le menu. Effacer les données / réinitialisation d'usine et effectuez une restauration en l'utilisant.

De plus, vous pouvez effacer le contenu du stockage en sélectionnant l'option Effacer la partition de cache.

Comment mettre votre téléphone en mode Fastboot

Le mode Fastboot est un mode de service auquel vous devez le plus souvent recourir si vous devez modifier la configuration de l'appareil via un PC, par exemple, installer un micrologiciel modifié ou obtenir les droits root sans utiliser de programmes tiers. Le démarrage en mode rapide peut également être nécessaire pour fournir un accès complet aux dossiers système Android et restaurer le système d'exploitation (comme alternative aux outils du mode de récupération).

La méthode pour accéder au mode Fastboot peut varier selon les appareils. Dans les smartphones Asus, pour cela, vous devez maintenir enfoncés les boutons d'alimentation et d'augmentation du volume, dans Nexus et HTC - les boutons d'alimentation et de réduction du volume, chez Sony, le mode de démarrage rapide se chargera si vous maintenez l'augmentation du volume enfoncée et connectez le gadget à le PC via USB.

Mais il existe également une méthode universelle de chargement dans un fastboot, qui fonctionne de la même manière sur tous les appareils mobiles Android. Téléchargez et installez le programme sur votre ordinateur Exécution de la BAD. Ensuite, activez le débogage USB dans les paramètres du téléphone, connectez l'appareil au PC et, après avoir lancé Adb Run, sélectionnez dans le menu Redémarrer – Redémarrer le chargeur de démarrage.

Le gadget redémarrera en mode Fastboot.

Le système d'exploitation Android, comme tout autre produit logiciel, peut parfois échouer. Et l'un de ces problèmes est l'affichage d'un écran noir sur l'écran d'un smartphone ou d'une tablette avec les mots Fastboot Mode ou Select Boot Mode. De nombreux propriétaires d'appareils mobiles, voyant une image similaire, commencent à paniquer et emmènent l'appareil à l'atelier le plus proche. Cependant, vous ne devez pas prendre d'actions irréfléchies, car dans la plupart des cas, vous pouvez quitter le mode Fastboot vous-même. Voyons ce qui cause le mode Fastboot, ce que c'est sur Android et comment s'en débarrasser.

Objectif et causes

Fastboot est un outil efficace pour modifier et personnaliser le système d'exploitation Android, inclus dans le progiciel destiné aux développeurs. Sa tâche principale est d'installer un firmware personnalisé. Cependant, ce bootloader sert également à installer des sauvegardes, diverses mises à jour, formater une carte mémoire, etc.

Sélectionner le mode de démarrage et le mode Fastboot ne sont pas des commandes internes ou externes. Ils démarrent plus tôt que le système d'exploitation lui-même (comme le BIOS sous Windows). Cela vous permet de configurer le système et de résoudre divers problèmes même si Android est tombé en panne.

Malgré sa polyvalence et son utilité, l'activation de Fastboot seule peut être le signe d'une panne logicielle. Les principales raisons de l'apparition de ce mode sur Android incluent :

  1. Activation accidentelle par l'utilisateur. Cet outil peut être lancé manuellement via le menu du gadget.
  2. Dysfonctionnement d'Android. Si un smartphone ou une tablette ne peut pas démarrer en mode normal, il passe automatiquement en mode Fastboot.
  3. Firmware infructueux via .
  4. Suppression manuelle d'un fichier exécutable du répertoire système après avoir déverrouillé l'accès root.
  5. Exposition à des logiciels malveillants. Si vous disposez des droits de superutilisateur sur l'appareil, certains virus peuvent bloquer ou même supprimer des fichiers système, ce qui entraîne un crash du système d'exploitation.

Après avoir compris ce qu'est le chargeur de démarrage du mode Fastboot et quelles sont les raisons de son apparition, vous pouvez commencer à réfléchir à la question de savoir comment quitter le mode de démarrage sur Xiaomi, Meizu, Lenovo et d'autres modèles d'appareils mobiles.

Désactiver le mode Fastboot sur Android

Il existe deux manières de désactiver le chargeur de démarrage Fastboot :

  • directement depuis votre téléphone ;
  • via PC.

Le choix d'une option ou d'une autre dépend de la raison qui a conduit au lancement de ce mode. A titre d'exemple, voyons comment empêcher le chargement de la fenêtre Fastboot sur un smartphone Xiaomi.

Face à ce problème, essayez d’abord de maintenir la touche Marche / Arrêt enfoncée pendant 20 à 30 secondes. L'appareil doit redémarrer en mode standard.

Au lieu de Fastboot, le formulaire Sélectionner le mode de démarrage peut apparaître sur l'écran du téléphone mobile. Ses champs signifient ce qui suit :

Essayez de choisir la deuxième option. Si cela ne résout pas le problème, procédez comme suit :


Si vous pouvez accéder aux paramètres Xiaomi, c'est-à-dire que le système d'exploitation fonctionne, essayez de désactiver manuellement le mode Fastboot. Sur cet appareil, rendez-vous dans l'onglet « Accessibilité » et en face de l'élément correspondant, faites glisser le curseur vers la position Off.

Désactivation du mode Fastboot via un ordinateur

Si le système d'exploitation plante, lorsqu'il est techniquement impossible d'utiliser le menu du smartphone et que les autres méthodes de désactivation de Fastboot sont inefficaces, vous pouvez essayer de résoudre le problème via un PC et la ligne de commande cmd. Cela se fait comme suit:


La ligne de commande est le moyen le plus efficace de se débarrasser du mode Fastboot. Si cela ne résout pas le problème, la question de savoir comment allumer l'appareil mobile en mode normal est toujours d'actualité, il vous suffit de changer le firmware du téléphone ou de l'emmener dans un atelier.

Le choix des éditeurs

Mode Fastboot sous Android : nous effectuons [manipulations avec le gadget] au niveau du système

Parfois, les utilisateurs de téléphones ou de tablettes Android rencontrent le mode Fastboot sans vraiment comprendre de quoi il s'agit ?

Lorsqu'ils allument leur gadget, ils voient un écran avec une animation et une liste de données, qui rappelle davantage une panne du système.

Généralement, Un redémarrage régulier ne résoudra pas ce problème et il vaut mieux suivre les instructions étape par étape que d'essayer de le comprendre par vous-même. Après tout, c'est l'un des systèmes, et un utilisateur peu familiarisé avec de telles choses peut accidentellement endommager son propre gadget.

Par la suite, à cause de cela, vous devrez contacter le service, perdant ainsi votre temps et votre argent. Mais cela peut être facilement évité si vous résolvez le problème sans hâte inutile.

Ci-dessous, vous pouvez découvrir en détail de quoi il s’agit, pourquoi le processus se produit et comment agir lorsqu’il apparaît.

Contenu:

Ce que c'est

Dans le système d'exploitation Android, il offre un accès complet à un smartphone ou une tablette pour le contrôler via un ordinateur. Cette approche permet:

  • installer des applications ;
  • configurer divers paramètres ;
  • flasher le gadget ;
  • distribuer les droits d'accès.

Fastboot ne fait pas partie d'un système d'exploitation spécifique, mais on le trouve souvent dans l'environnement du SDK Android, car sans lui, il ne sera pas possible d'établir pleinement la communication entre le PC et le gadget.

Dans ce cas, nous entendons un transfert de données difficile, à savoir la configuration de l'appareil.

Il convient de noter qu'il démarre plus tôt que le système d'exploitation lui-même. Cela suggère que le mode peut être utilisé même s'il n'est pas encore installé sur votre gadget.

Pourquoi cela se produit

Disposer d’un tel mode est très utile, mais que faire lorsque vous n’avez pas besoin de configurer votre smartphone de cette manière et qu’une fenêtre apparaît soudainement ?

Raisons de son apparition peut être différent:

  • erreur lors du flashage du gadget ;
  • appuis accidentels sur des touches – allumer le smartphone et augmenter le volume en même temps ;
  • obtenir les droits d'utilisateur root ;
  • défaillance du système.

Dans tous ces cas, l'icône Android apparaîtra sur l'écran de l'appareil, ainsi que les informations système de votre gadget.

Pour commencer, si Fastboot se produit, vous devez vérifier si .

Les boutons d'augmentation et de diminution du volume sont actifs - avec le premier, nous faisons défiler les éléments affichés à l'écran, et avec le second, nous faisons un choix (comme utiliser une touche Entrer sur PC).

On arrive ainsi à l'inscription "Démarrage normal" et sélectionnez-le avec le bouton de réduction du volume.

Si, après cela, le smartphone s'allume silencieusement, cela indique au minimum qu'il n'y a aucun problème et qu'une panne du système n'en est pas non plus la cause. Parfois, cela se produit en raison de la connexion à l'ordinateur.

La synchronisation se produit, vous effectuez toutes les actions nécessaires : installez une nouvelle application, téléchargez une photo ou téléchargez un film, puis, en vous déconnectant du PC, vous voyez qu'elle ne disparaît pas.

Cela est dû au fait que le centre de service n'a probablement pas désactivé cette fonction. Vous pouvez gérer cela vous-même:

  • une fois le gadget chargé normalement, allez-y "Paramètres";
  • puis sélectionnez l'onglet "Écran";
  • Après avoir trouvé l'élément dedans, décochez-le.

Ainsi, le mode fastboot sera désactivé, et une fois activé, il ne dérangera plus l'utilisateur.

Que faire en cas de panne du système

Si le passage à "Démarrage normal" bloqué ou, pire encore, un seul message est visible à l'écran "Mode de boot rapide" et il n'y a pas de résumé des paramètres, alors pour une raison quelconque, le système du gadget est en panne et il existe deux options pour tout réparer.

Option 1

Vous pouvez toujours essayer de restaurer le système et de remettre le smartphone en état de fonctionnement.

Important! Lors de la récupération, toutes les données stockées sur le smartphone sont formatées, il est donc préférable de se protéger et de retirer d'abord la carte mémoire.

Tout d’abord, vous devez maintenir enfoncés simultanément les boutons d’alimentation et d’augmentation du volume. Dans le menu qui apparaît, recherchez l'élément – ​​effacer les données/réinitialisation d'usine.

Et puis sélectionnez-le et attendez que tous les paramètres soient annulés. Le processus peut prendre de une à plusieurs minutes.

Le gadget redémarrera et vous pourrez à nouveau l'utiliser à vos propres fins.

Mais les applications installées et les signets dans le navigateur devront à nouveau être restaurés, car une telle procédure le ramène aux paramètres d'usine.

Option 2

Vous devez recourir à cette option en dernier recours lorsqu’aucune des méthodes décrites ci-dessus ne fonctionne définitivement.

Si le mode qui apparaît lorsque vous l'allumez ne contient pas de paramètres, si le redémarrage du gadget ne fait rien et que vous ne pouvez même pas l'appeler, alors vous devez procéder comme suit :

  • retirez la batterie ;
  • réinsérez-le;
  • Appuyez et maintenez enfoncé le bouton d'alimentation pendant au moins 30 secondes.

Le retour du mode Fastboot indiquera clairement qu’il est temps de passer à des actions plus drastiques.

Vous devrez redémarrer l'appareil, mais via l'ordinateur.

Note! Pour travailler avec un smartphone ayant connu une panne système, vous aurez besoin de pilotes adaptés.

Pas si difficile.

Utilisez simplement un moteur de recherche, et parmi une série de sites proposés proposant de télécharger du « bois de chauffage », essayez de choisir des sites officiels afin d'éliminer les incidents désagréables liés à l'introduction de virus, etc.

1 Décompresser téléchargé « bois de chauffage » ;

2 Données des archives mets-le dans un dossier;

3 Après connectez le gadget au PC via un câble USB ;

4 Tu devras passer un certain temps à attendre, pendant que l'ordinateur reconnaît le smartphone, après quoi il proposera d'installer des pilotes pour commencer à travailler avec le gadget ;

5 Puisque nous les avons déjà pré-téléchargés, alors sélectionnez « Installer à partir d'un emplacement spécifié »;

6 Sélectionnez le dossier dans lequel vous les avez placés et cliquez sur Entrer.

Une fois les pilotes installés avec succès, passons au travail avec l'appareil via la ligne de commande.

  • aller au menu "Commencer";
  • dans la ligne d'exécution, nous écrivons "cmd";

Cette méthode, qui inclut l'utilisation d'un PC, est le plus efficace. Mais il est toujours préférable d’y recourir lorsque des actions de récupération plus petites et plus simples ne fonctionneront probablement pas.

Comment entrer les paramètres

Si un tel besoin s’en fait sentir, tout dépendra uniquement du modèle de smartphone que vous utilisez.

Mais malgré cela, vous aurez besoin d'un ordinateur et. Assurez-vous d'éteindre le gadget avant de commencer.

Après avoir travaillé avec ce mode, pour qu'il ne vous dérange pas régulièrement, il est préférable de le désactiver à nouveau dans les paramètres.

Vous êtes-vous déjà demandé comment fonctionnent fastboot ou ADB ? Ou pourquoi est-il presque impossible de transformer un smartphone sous Android en brique ? Ou peut-être avez-vous longtemps voulu savoir où réside la magie du framework Xposed et pourquoi les scripts de démarrage /system/etc/init.d sont nécessaires ? Et la console de récupération ? Est-ce une partie d'Android ou une chose en soi et pourquoi la récupération régulière ne convient-elle pas à l'installation d'un micrologiciel tiers ? Vous trouverez des réponses à toutes ces questions et à bien d’autres dans cet article.

Comment fonctionne Android

Vous pouvez découvrir les capacités cachées des systèmes logiciels en comprenant le principe de leur fonctionnement. Dans certains cas, cela est difficile à faire, car le code système peut être fermé, mais dans le cas d'Android, nous pouvons étudier l'ensemble du système de fond en comble. Dans cet article, je ne parlerai pas de toutes les nuances d'Android et me concentrerai uniquement sur le démarrage du système d'exploitation et les événements qui se produisent dans l'intervalle entre l'appui sur le bouton d'alimentation et l'apparition du bureau.

En cours de route, j'expliquerai ce que nous pouvons changer dans cette chaîne d'événements et comment les développeurs de micrologiciels personnalisés utilisent ces capacités pour mettre en œuvre des éléments tels que le réglage des paramètres du système d'exploitation, l'extension de l'espace de stockage des applications, la connexion du swap, diverses personnalisations et bien plus encore. Toutes ces informations peuvent être utilisées pour créer votre propre firmware et mettre en œuvre divers hacks et modifications.

La première étape. ABOOT et table de partition

Tout commence par le chargeur de démarrage principal. Après la mise sous tension, le système exécute le code du chargeur de démarrage stocké dans la mémoire permanente de l'appareil. Ensuite, il transfère le contrôle au chargeur de démarrage aboot avec prise en charge intégrée du protocole fastboot, mais le fabricant de la puce mobile ou du smartphone/tablette a le droit de choisir n'importe quel autre chargeur de démarrage de son choix. Par exemple, Rockchip utilise son propre chargeur de démarrage qui n'est pas compatible avec le démarrage rapide et nécessite des outils propriétaires pour le flasher et le gérer.

Le protocole fastboot, quant à lui, est un système de gestion du chargeur de démarrage à partir d'un PC, qui vous permet d'effectuer des actions telles que le déverrouillage du chargeur de démarrage, le flashage d'un nouveau noyau et la récupération, l'installation du firmware et bien d'autres. La raison d'être de fastboot est de pouvoir restaurer un smartphone à son état d'origine dans une situation où tous les autres moyens échouent. Fastboot restera en place même si, à la suite d'expériences, vous effacez toutes les partitions de mémoire NAND contenant Android et la récupération de votre smartphone.

Après avoir reçu le contrôle, aboot vérifie la table de partition et transfère le contrôle au noyau flashé dans la partition nommée boot, après quoi le noyau extrait l'image RAM de la même partition en mémoire et commence à charger Android ou la console de récupération. La mémoire NAND des appareils Android est divisée en six sections requises sous condition :

  • boot - contient le noyau et le disque RAM, généralement d'une taille d'environ 16 Mo ;
  • récupération - console de récupération, composée d'un noyau, d'un ensemble d'applications console et d'un fichier de paramètres, d'une taille de 16 Mo ;
  • système - contient Android, dans les appareils modernes, la taille est d'au moins 1 Go ;
  • cache - conçu pour stocker les données mises en cache, également utilisé pour sauvegarder le micrologiciel lors d'une mise à jour OTA et a donc une taille similaire à la taille de la partition système ;
  • données utilisateur - contient les paramètres, les applications et les données utilisateur, tout l'espace mémoire NAND restant lui est alloué ;
  • misc - contient un indicateur qui détermine dans quel mode le système doit démarrer : Android ou récupération.

En plus d'eux, il peut y avoir d'autres sections, mais le balisage général est déterminé au stade de la conception du smartphone et, en cas de démarrage, est intégré au code du chargeur de démarrage. Cela signifie que : 1) la table de partition ne peut pas être supprimée, puisqu'elle peut toujours être restaurée à l'aide de la commande fastboot oem format ; 2) pour changer la table de partition, vous devrez déverrouiller et reflasher le bootloader avec de nouveaux paramètres. Il existe cependant des exceptions à cette règle. Par exemple, le chargeur de démarrage du même Rockchip stocke des informations sur les partitions dans le premier bloc de mémoire NAND, il n'est donc pas nécessaire de flasher le chargeur de démarrage pour le modifier.

La section divers est particulièrement intéressante. On suppose qu'il a été créé à l'origine pour stocker divers paramètres indépendamment du système principal, mais pour le moment, il n'est utilisé que dans un seul but : indiquer au chargeur de démarrage à partir de quelle partition le système doit être chargé - démarrage ou récupération. Cette fonctionnalité, en particulier, est utilisée par l'application ROM Manager pour redémarrer automatiquement le système en mode récupération avec installation automatique du micrologiciel. Sur cette base, le mécanisme de double démarrage Ubuntu Touch est construit, qui met le chargeur de démarrage Ubuntu en mode récupération et vous permet de contrôler quel système démarrera la prochaine fois. Effacé la partition diverse - chargements Android, remplissage de données - chargements de récupération... c'est-à-dire Ubuntu Touch.

Deuxième étape. Section de démarrage

Si la section misc n'a pas d'indicateur de démarrage de récupération, aboot transfère le contrôle au code situé dans la section de démarrage. Ce n'est rien de plus que le noyau Linux ; il est situé au début de la section, et immédiatement suivi d'une image disque RAM emballée à l'aide des archiveurs cpio et gzip, contenant les répertoires nécessaires au fonctionnement d'Android, le système d'initialisation init et d'autres outils. Il n'y a pas de système de fichiers sur la partition de démarrage ; le noyau et le disque RAM se suivent simplement. Le contenu du disque RAM est :

  • data - répertoire pour monter la partition du même nom ;
  • dev - fichiers de périphérique ;
  • proc - procfs est monté ici ;
  • res - un ensemble d'images pour le chargeur (voir ci-dessous) ;
  • sbin - un ensemble d'utilitaires et de démons (adbd, par exemple) ;
  • sys - sysfs est monté ici ;
  • système - répertoire pour monter la partition système ;
  • chargeur - application pour afficher le processus de charge ;
  • build.prop - paramètres système ;
  • init - système d'initialisation ;
  • init.rc - paramètres du système d'initialisation ;
  • ueventd.rc - paramètres du démon uventd inclus dans init.

C'est, pour ainsi dire, le squelette du système : un ensemble de répertoires pour connecter les systèmes de fichiers à partir des partitions de mémoire NAND et un système d'initialisation qui gérera le reste du travail de démarrage du système. L'élément central ici est l'application init et sa configuration init.rc, dont je parlerai en détail plus tard. En attendant, j'aimerais attirer votre attention sur les fichiers charger et ueventd.rc, ainsi que sur les répertoires sbin, proc et sys.

Le fichier du chargeur est une petite application dont le seul travail est d'afficher l'icône de la batterie. Cela n'a rien à voir avec Android et est utilisé lorsque l'appareil est connecté au chargeur à l'état éteint. Dans ce cas, Android ne se charge pas et le système charge simplement le noyau, connecte le disque RAM et démarre le chargeur. Ce dernier affiche une icône de batterie dont l'image, dans tous les états possibles, est stockée dans des fichiers PNG ordinaires dans le répertoire res.

Le fichier ueventd.rc est une configuration qui détermine quels fichiers de périphérique dans le répertoire sys doivent être créés lors du démarrage du système. Dans les systèmes basés sur le noyau Linux, l'accès au matériel s'effectue via des fichiers spéciaux dans le répertoire dev, et le démon ueventd, qui fait partie d'init, est responsable de leur création dans Android. Dans une situation normale, il fonctionne en mode automatique, en acceptant les commandes pour créer des fichiers à partir du noyau, mais certains fichiers doivent être créés indépendamment. Ils sont répertoriés dans ueventd.rc.

Le répertoire sbin en stock Android ne contient généralement rien d'autre que adbd, c'est-à-dire le démon ADB, qui est responsable du débogage du système à partir du PC. Il s'exécute à un stade précoce du démarrage du système d'exploitation et vous permet d'identifier d'éventuels problèmes lors de la phase d'initialisation du système d'exploitation. Dans les firmwares personnalisés, vous pouvez trouver de nombreux autres fichiers dans ce répertoire, par exemple mke2fs, qui peuvent être requis si les partitions doivent être reformatées en ext3/4. De plus, les moddeurs y placent souvent une BusyBox, avec laquelle vous pouvez appeler des centaines de commandes Linux.

Le répertoire proc est standard pour Linux ; dans les prochaines étapes de démarrage, init s'y connectera procfs, un système de fichiers virtuel qui donne accès aux informations sur tous les processus du système. Le système connectera sysfs au répertoire sys, qui ouvre l'accès aux informations sur le matériel et ses paramètres. En utilisant sysfs, vous pouvez, par exemple, mettre l'appareil en veille ou modifier l'algorithme d'économie d'énergie utilisé.

Le fichier build.prop est conçu pour stocker les paramètres Android de bas niveau. Plus tard, le système réinitialisera ces paramètres et les écrasera avec les valeurs du fichier system/build.prop actuellement inaccessible.


Points à retenir du texte

  • Fastboot restera en place même si, à la suite d'expériences, vous effacez le contenu de toutes les sections de mémoire NAND de votre smartphone
  • La section de récupération est complètement autonome et contient un système d'exploitation miniature qui n'a aucun rapport avec Android
  • En modifiant légèrement le fichier fstab, on peut forcer init à démarrer le système depuis la carte mémoire

Deuxième étape, alternative. Section de récupération

Si l'indicateur de démarrage de récupération dans la section misc est activé ou si l'utilisateur allume le smartphone avec la touche de réduction du volume enfoncée, aboot transférera le contrôle au code situé au début de la section de récupération. Comme la partition de démarrage, elle contient le noyau et un disque RAM, qui est décompressé en mémoire et devient la racine du système de fichiers. Cependant, le contenu du disque RAM est ici quelque peu différent.

Contrairement à la partition de démarrage, qui fait office de lien de transition entre les différentes étapes de chargement de l'OS, la partition de récupération est totalement autosuffisante et contient un système d'exploitation miniature qui n'est en aucun cas connecté à Android. Recovery possède son propre noyau, son propre ensemble d'applications (commandes) et sa propre interface qui permet à l'utilisateur d'activer les fonctions de service.

Dans une récupération standard (stock), il n'y a généralement que trois fonctions de ce type : installation du micrologiciel signé avec la clé du fabricant du smartphone, effacement et redémarrage. Les récupérations tierces modifiées, telles que ClockworkMod et TWRP, ont beaucoup plus de fonctions. Ils peuvent formater des systèmes de fichiers, installer un micrologiciel signé avec n'importe quelle clé (lire : personnalisé), monter des systèmes de fichiers sur d'autres partitions (à des fins de débogage du système d'exploitation) et inclure la prise en charge des scripts, qui vous permet d'automatiser le processus du micrologiciel et de nombreuses autres fonctions.

À l'aide de scripts, par exemple, vous pouvez vous assurer qu'après le démarrage, la récupération trouve automatiquement le micrologiciel nécessaire sur la carte mémoire, les installe et redémarre sous Android. Cette fonctionnalité est utilisée par le ROM Manager, les outils de flashage automatique, ainsi que le mécanisme de mise à jour automatique de CyanogenMod et d'autres micrologiciels.

La récupération personnalisée prend également en charge les scripts de sauvegarde situés dans le répertoire /system/addon.d/. Avant de flasher, la récupération vérifie les scripts et les exécute avant de flasher le micrologiciel. Grâce à de tels scripts, les gapps ne disparaissent pas après l'installation d'une nouvelle version du firmware.

commandes de démarrage rapide

Pour accéder à fastboot, vous devez installer le SDK Android, connecter votre smartphone à votre PC à l'aide d'un câble et l'allumer en maintenant les deux boutons de volume enfoncés. Après cela, vous devez accéder au sous-répertoire platform-tools du SDK et exécuter la commande

Appareils à démarrage rapide

Le nom de l'appareil sera affiché à l'écran. Autres commandes disponibles :

  • déverrouillage OEM Fatsboot- déverrouillage du bootloader sur les Nexus ;
  • mettre à jour le fichier.zip- installation du firmware ;
  • démarrage flash boot.img- flasher l'image de la partition de démarrage ;
  • récupération flash recovery.img- flasher l'image de la partition de récupération ;
  • système flash système.img- flasher l'image système ;
  • format OEM- restauration d'une table de partition détruite ;

Troisième étape. Initialisation

Ainsi, après avoir reçu le contrôle, le noyau connecte le disque RAM et, après avoir initialisé tous ses sous-systèmes et pilotes, démarre le processus d'initialisation, qui lance l'initialisation d'Android. Comme je l'ai déjà dit, init possède un fichier de configuration init.rc, à partir duquel le processus apprend exactement ce qu'il doit faire pour faire démarrer le système. Dans les smartphones modernes, cette configuration a une longueur impressionnante de plusieurs centaines de lignes et est également équipée d'une bande-annonce de plusieurs configurations enfants connectées à la configuration principale à l'aide de la directive d'importation. Cependant, son format est assez simple et consiste essentiellement en un ensemble de commandes divisées en blocs.

Chaque bloc définit une étape de chargement ou, dans le langage des développeurs Android, une action. Les blocs sont séparés les uns des autres par une directive on suivie du nom de l'action, comme on early-init ou on post-fs. Le bloc de commandes ne sera exécuté que si le déclencheur du même nom se déclenche. Au démarrage, init activera tour à tour les déclencheurs early-init, init, early-fs, fs, post-fs, early-boot et boot, lançant ainsi les blocs de commande correspondants.


Si le fichier de configuration contient plusieurs autres configurations répertoriées au début (et c'est presque toujours le cas), alors les blocs de commande du même nom qu'ils contiennent seront combinés avec la configuration principale, de sorte que lorsque le déclencheur se déclenche, init exécuter des commandes à partir des blocs correspondants de tous les fichiers. Ceci est fait pour faciliter la création de fichiers de configuration pour plusieurs appareils, lorsque la configuration principale contient des commandes communes à tous les appareils et que celles spécifiques à chaque appareil sont écrites dans des fichiers séparés.

La configuration supplémentaire la plus remarquable est nommée initrc.device_name.rc, où le nom du périphérique est déterminé automatiquement en fonction du contenu de la variable système ro.hardware. Il s'agit d'un fichier de configuration spécifique à la plate-forme qui contient des blocs de commande spécifiques au périphérique. En plus des commandes responsables du réglage du noyau, il contient également quelque chose comme ceci :

Mount_all ./fstab.device_name

Cela signifie que init doit maintenant monter tous les systèmes de fichiers répertoriés dans le fichier ./fstab.device_name, qui a la structure suivante :

Nom_du_périphérique (partition) point_de_montage système_fichier options_fs autres options

Il contient généralement des instructions pour monter des systèmes de fichiers à partir de partitions NAND internes vers les répertoires /system (OS), /data (paramètres de l'application) et /cache (données mises en cache). Cependant, en modifiant légèrement ce fichier, on peut forcer init à démarrer le système depuis la carte mémoire. Pour ce faire, divisez simplement la carte mémoire en trois 4 sections : 1 Go/ext4, 2 Go/ext4, 1 Go/ext4 et l'espace fat32 restant. Ensuite, vous devez déterminer les noms des partitions de la carte mémoire dans le répertoire /dev (ils diffèrent selon les périphériques) et les remplacer par les noms de périphériques d'origine dans le fichier fstab.


À la fin du bloc d'initialisation de démarrage, il rencontrera très probablement la commande class_start default, qui vous informera que vous devez alors démarrer tous les services répertoriés dans la configuration liés à la classe par défaut. La description des services commence par la directive service, suivie du nom du service et de la commande qui doit être exécutée pour le démarrer. Contrairement aux commandes répertoriées dans les blocs, les services doivent être exécutés en permanence, donc tout au long de la vie du smartphone, init restera en arrière-plan et surveillera cela.

Android moderne comprend des dizaines de services, mais deux d'entre eux ont un statut particulier et déterminent tout le cycle de vie du système.

Commandes init.rc

Le processus d'initialisation possède un ensemble de commandes intégré, dont beaucoup suivent le jeu de commandes Linux standard. Les plus remarquables d'entre eux :

  • exec /chemin/vers/commande- exécuter une commande externe ;
  • interface ifup- augmenter l'interface réseau ;
  • class_start nom_classe- démarrer les services appartenant à la classe spécifiée ;
  • class_stop nom_classe- arrêter les services ;
  • insmod /chemin/vers/module- charger le module noyau ;
  • monter le répertoire des périphériques FS- connecter le système de fichiers ;
  • valeur du nom setprop- définir une variable système ;
  • démarrer le service_name- démarrer le service spécifié ;
  • nom du déclencheur- activer le déclencheur (exécuter le bloc de commandes spécifié) ;
  • écrire /chemin/vers/ligne de fichier- écrire une ligne dans un fichier.

Quatrième étape. Zygote et app_process

À un certain stade du chargement, init rencontrera quelque chose comme ce bloc à la fin de la configuration :

Service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server classe socket par défaut zygote stream 660 système racine au redémarrage écrire /sys/android_power/request_state wake onrestart écrire /sys/power/state on onrestart redémarrer les médias onrestart redémarrer netd

Ceci est une description du service Zygote, un composant clé de tout système Android responsable de l'initialisation, du démarrage des services système, du démarrage et de l'arrêt des applications utilisateur et de nombreuses autres tâches. Zygote est lancé à l'aide d'une petite application /system/bin/app_process, qui est très clairement visible dans la partie ci-dessus de la configuration. La tâche app_proccess consiste à lancer la machine virtuelle Dalvik, dont le code se trouve dans la bibliothèque partagée /system/lib/libandroid_runtime.so, puis à exécuter Zygote par-dessus.

Une fois que tout cela est fait et que Zygote a le contrôle, il commence à construire le runtime de l'application Java en chargeant toutes les classes Java du framework (actuellement plus de 2000 d'entre elles). Il démarre ensuite system_server, qui comprend la plupart des services système de haut niveau (écrits en Java), notamment le gestionnaire de fenêtres, la barre d'état, le gestionnaire de packages et, plus important encore, le gestionnaire d'activités, qui à l'avenir sera responsable de la réception du début et de la fin. applications de signaux.

Après cela, Zygote ouvre le socket /dev/socket/zygote et se met en veille, en attendant les données. A ce moment, l'Activity Manager précédemment lancé envoie une intention de diffusion Intent.CATEGORY_HOME pour trouver l'application responsable de la création du bureau et donne son nom à Zygote via le socket. Ce dernier, à son tour, crée et exécute l'application au-dessus de la machine virtuelle. Voila, nous avons un bureau sur notre écran, trouvé par Activity Manager et lancé par Zygote, et une barre d'état lancée par system_server dans le cadre du service Status Bar. Après avoir appuyé sur l'icône, le bureau enverra une intention avec le nom de cette application, Activity Manager la recevra et enverra une commande pour démarrer l'application au démon Zygote.

INFO

Dans la terminologie Linux, un disque RAM est une sorte de disque dur virtuel qui n'existe que dans la RAM. Au début du processus de démarrage, le noyau extrait le contenu du disque de l'image et le monte en tant que système de fichiers racine (rootfs).

Pendant le processus de démarrage, Android affiche trois écrans de démarrage différents : le premier apparaît immédiatement après avoir appuyé sur le bouton d'alimentation et est flashé dans le noyau Linux, le second est affiché pendant les premières étapes de l'initialisation et enregistré dans le fichier /initlogo.rle (à peine utilisé aujourd'hui), ce dernier est lancé à l'aide de l'application bootanimation et est contenu dans le fichier /system/media/bootanimation.zip.

En plus des déclencheurs standards, init vous permet de définir vos propres déclencheurs, qui peuvent être déclenchés par divers événements : connexion d'un appareil à USB, modification de l'état d'un smartphone ou modification de l'état des variables système.

Entre autres choses, Activity Manager tue également les applications en arrière-plan lorsque la mémoire est insuffisante. Les valeurs de seuil de mémoire libre sont contenues dans le fichier /sys/module/lowmemorykiller/parameters/minfree.

Tout cela peut paraître un peu déroutant, mais le plus important est de se rappeler trois choses simples :

À bien des égards, Android est très différent des autres systèmes d’exploitation, et il est difficile de le comprendre tout de suite. Cependant, si vous comprenez comment tout fonctionne, les possibilités sont tout simplement infinies. Contrairement à iOS et Windows Phone, le système d'exploitation de Google possède une architecture très flexible qui permet de modifier sérieusement son comportement sans avoir à écrire de code. Dans la plupart des cas, il suffit de corriger les configurations et scripts nécessaires.




Haut