Comment découvrir les commandes Fastboot cachées

Dans ma quête pour en savoir le plus possible sur la personnalisation Android, j'ai fait de nombreuses découvertes à la fois obscures et intéressantes. Je vous ai montré comment accéder aux menus cachés sur votre appareil en passant au crible toutes les activités des applications cachées sur votre téléphone. Plus récemment, je vous ai montré comment accéder à l'outil de diagnostic de matériel caché sur certains smartphones. Maintenant, je me rends compte que certains d’entre vous ont été déçus par le fait que votre smartphone n’a pas été couvert dans le précédent article, et je m'en excuse.

Pour compenser cela, je vais vous guider dans quelque chose de beaucoup plus avancé et passionnant: décharger le chargeur de démarrage de votre appareil pour découvrir les commandes cachées de démarrage rapide . Ce guide, bien que réalisé sur mon Nexus 6P, est très certainement reproductible sur la majorité des smartphones. Toutefois, les commandes auxquelles vous aurez accès varieront considérablement d’un périphérique à l’autre. La plupart des commandes ne vous aideront pas vraiment dans une situation réelle, mais il est néanmoins intéressant de plonger aussi profondément dans les paramètres de votre téléphone. Commençons.

Clause de non-responsabilité: tant que vous savez ce que vous faites et pouvez suivre les instructions de manière appropriée, rien de grave ne devrait arriver à votre appareil. Mais nous continuons à jouer avec les partitions de nos périphériques et le chargeur de démarrage, il est donc impossible de prédire ce qui pourrait se passer si vous entrez la mauvaise commande. Assurez-vous d'avoir une sauvegarde hors périphérique prête!


Préparation

Avant de commencer, il y a une chose vraiment très importante à noter. Pour extraire le chargeur de démarrage de votre appareil, vous devez disposer d'un accès root sur votre téléphone. Si vous ne disposez pas d'un accès root, vous pouvez continuer à lire ce guide à des fins pédagogiques, mais vous ne pourrez exécuter aucune des commandes nécessaires. C'est compris? Bien. Une autre condition préalable à remplir est de vous assurer que votre ordinateur dispose de tous les pilotes appropriés ADB / fastboot . Si vous ne possédez pas les fichiers binaires ADB / fastboot, je vous recommande d'installer Minimal ADB & Fastboot à partir de nos forums. En ce qui concerne les pilotes, vous pouvez récupérer les pilotes nécessaires pour les appareils Google Nexus ici et pour tous les autres appareils d'ici. Comment savez-vous si vous êtes prêt à partir? Branchez votre appareil, activez le débogage USB sous Paramètres du développeur, ouvrez une invite de commande et tapez:

 adb devices 

Si vous voyez apparaître le numéro de série de votre appareil, vous avez les bons pilotes.


Dumping du chargeur de démarrage

Notre première étape consiste à ouvrir un shell sur notre périphérique afin de pouvoir exécuter des commandes via ADB. Il est préférable d'exécuter des commandes sur ADB, car nous sommes beaucoup plus enclins à commettre des erreurs lorsque vous tapez sur un clavier virtuel. Ce n'est pas quelque chose que vous souhaitez faire ici. La première commande à exécuter dans votre invite est la suivante:

 adb shell 

Si l'invite de commande ne présente plus le répertoire binaire ADB mais affiche le nom de code de votre appareil Android, vous avez entré le shell de ligne de commande local de votre appareil. Maintenant, pour accéder aux partitions que nous devons vider, vous aurez besoin d’un accès superutilisateur. Pour ce faire, tapez ce qui suit:

 su 

Le symbole devant le nom de code de votre périphérique devrait passer de $ à #, indiquant que vous pouvez désormais exécuter des commandes avec des privilèges élevés. Sois prudent maintenant!

Ensuite, nous déterminerons l'emplacement exact de l'image du chargeur de démarrage de votre appareil. Afin de trouver le répertoire exact, nous allons imprimer une liste de toutes les partitions et de leurs répertoires par nom, et en rechercher un en particulier appelé " aboot". Vous devrez entrer deux commandes comme suit:

 cd /dev/block/bootdevice/by-name ls -all 

Comme vous pouvez le voir ci-dessus, une liste géante de répertoires de partitions est imprimée. Ces partitions sont triées par nom, ce qui nous permet de déterminer facilement l’emplacement de notre partition d’amorçage. Dans mon cas, le chargeur de démarrage, qui est "aboot" dans l'image ci-dessus, peut être trouvé dans / dev / block / mmcblk0p10. Cela varie en fonction de votre appareil. Il est donc important que vous suiviez ces instructions pour déterminer le véritable répertoire dans lequel se trouve votre chargeur de démarrage. Prenez note de ce répertoire, cependant, comme nous le référencerons dans la commande suivante pour vider le chargeur de démarrage:

 dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img 

Une fois que vous avez réussi, vous devriez trouver un fichier nommé ' aboot.img ' situé à la racine de votre stockage interne. Maintenant que nous avons vidé le chargeur de démarrage, nous devons l'examiner pour déterminer les commandes cachées que nous pouvons trouver.


Commandes Fastboot cachées et leurs utilisations

Vous connaissez peut-être certaines des commandes fastboot les plus courantes, telles que le flash rapide ou le démarrage rapide . Il existe de nombreuses autres commandes fastboot telles que définies dans le protocole open source fastboot. Voici une liste des commandes fastboot disponibles sur chaque périphérique avec un chargeur de démarrage basé sur le dernier code AOSP:

Ce qui manque dans cette liste, ce sont les commandes Fastboot oem . Ces commandes sont spécifiques aux fabricants d’appareils Android et il n’existe pas de liste complète ni de documentation pour les commandes oo à démarrage rapide disponibles. Maintenant, si le fabricant de votre appareil a eu la gentillesse de fournir une commande fastboot qui répertorie toutes les commandes oem (essayez fastboot oem? Et voyez si cela fonctionne), vous n’aurez rien à faire. Si aucune commande n'imprime une liste des commandes OEM fastboot disponibles, vous devez imprimer une liste de chaînes à partir du fichier aboot.img et rechercher les commandes oem manuellement.

'strings' est une commande linux, pour laquelle la documentation est disponible ici. Comme vous pouvez le constater, j’utilise personnellement une machine Windows, c’est pourquoi j’utilise un programme qui imite les chaînes de Linux. La sortie brute de la commande 'strings' sur un fichier aboot.img sera assez compliquée, mais si vous utilisez simplement CTRL + F pour 'oem', vous devriez trouver ce dont vous avez besoin. Si vous souhaitez affiner votre recherche, vous pouvez essayer cette commande (pour la version Windows que j'ai liée):

 strings * | findstr /i oem 

Pour le Nexus 6P, j’ai compilé la liste suivante de commandes oem fastboot:

 fastboot oem unlock-go fastboot oem frp-unlock fastboot oem frp-erase fastboot oem enable reduced-version fastboot oem device-info fastboot oem enable-charger-screen fastboot oem disable-charger-screen fastboot oem enable-bp-tools fastboot oem disable-bp-tools fastboot oem enable-hw-factory fastboot oem disable-hw-factory fastboot oem select-display-panel fastboot oem off-mode-charge enable fastboot oem off-mode-charge disable fastboot oem ramdump enable fastboot oem ramdump disable fastboot oem uart enable fastboot oem uart disable fastboot oem hwdog certify begin fastboot oem hwdog certify close fastboot oem get-imei1 fastboot oem get-meid fastboot oem get-sn fastboot oem get-bsn fastboot oem get_verify_boot_status 

Soyez averti que vous ne devez tenter aucune des commandes ci-dessus, ni aucune des commandes que vous découvrez sur votre appareil, à moins que vous ne souhaitiez accepter les risques. Il y a une raison pour laquelle ces commandes sont masquées à l'utilisateur.

Cela étant dit, j'ai pensé à quelques utilisations intéressantes de certaines de ces commandes fastboot que j'ai trouvées (qui peuvent ou non être présentes sur votre appareil, alors suivez les instructions ci-dessus pour vérifier!) Qui devrait séduire les plus hardcore Android passionné. Il y a deux commandes ici qui pourraient avoir une utilisation pratique.

La première étape est la commande fastboot oem (enable | disable) -charger-screen . Cela désactive l’écran de chargement qui s’affiche lorsque votre appareil est éteint. Si vous n'êtes pas un fan de la luminosité aveuglante de l'écran de charge lorsque votre téléphone est éteint, vous pouvez le désactiver via cette commande fastboot cachée!

Ensuite, il y a la commande fastboot oem off-mode-charge (enable | disable) . Cette commande détermine si votre appareil s’allumera automatiquement ou non lorsqu’une source d’alimentation est détectée. Par défaut, il est défini sur 'désactiver'. J'admets que cette commande n'a pas beaucoup d'utilisation pour les téléphones, mais si vous envisagez de monter votre tablette dans le tableau de bord de votre voiture, vous la trouverez extrêmement utile. Vous pourrez configurer votre appareil pour qu'il s'allume immédiatement lorsque la tablette est alimentée, par exemple lorsque la batterie de votre voiture démarre. À l'inverse, il est assez facile d'éteindre la tablette en cas de coupure de courant à l'aide d'une application d'automatisation telle que Tasker. Soit dit en passant, cette commande fonctionne exactement comme celle écrite sur le Nexus 7 (2013).


Voilà pour cette leçon de personnalisation Android. Partagez les commandes que vous découvrez (idéalement dans un lien pastebin) dans les commentaires ci-dessous!

Merci au développeur reconnu, Dees_Troy, pour son aide dans la rédaction de cet article!