29 votes

Messages de démarrage d'Android pour le débogage ?

J'essaie de savoir si Android (c'est-à-dire Galaxy Nexus, Nexus S, et/ou Motorola Xoom) a la capacité de produire un journal de "démarrage". (un peu comme l'écran de démarrage de Linux) Cela serait immensément utile pour savoir jusqu'où le téléphone va dans les étapes de démarrage avant de se planter (comme le premier stade du bootloader, le bootloader principal, puis le chargement du noyau, etc). Quelqu'un sait-il comment permettre au téléphone de produire ce fichier journal ou d'activer un mode de démarrage "verbeux" (et d'imprimer les messages réels sur le terminal de l'ordinateur Linux auquel le téléphone est connecté) ?

Mon téléphone est bloqué dans une "boucle de démarrage" avec ma version modifiée actuelle et je voudrais le déboguer si possible.

Sinon, quelqu'un connaît-il des ressources ou des tutoriels utiles qui expliquent comment "pirater" facilement le téléphone pour faire cela (sans toucher au matériel) ? Ou des forums où ma question a peut-être été posée, mais sous une forme plus obscure ?

C'est un problème frustrant ces derniers temps, et toute aide serait grandement appréciée !

0 votes

Je sais qu'il commence à écrire dans le logcat très tôt, mais cela est effacé une fois qu'il redémarre. il devrait commencer à écrire dès qu'il montre l'"animation de démarrage" (ou peut-être même un peu plus tôt).

3 votes

Comment accéder à logcat sans "adb" ? Adb ne fonctionne que lorsque le téléphone est dans un état stable, ce qui va à l'encontre de la raison d'être de logcat (qui se soucie de savoir si le téléphone démarre correctement, pas besoin de cet outil).

0 votes

Adb est l'un des premiers services qui démarrent. si vous voyez l'animation de démarrage, adb est déjà en cours d'exécution. adb est même disponible lorsque vous êtes en mode récupération.

18voto

Nick Pierpoint Points 7976

Il y a plusieurs façons de le faire :

  • cat /proc/last_kmsg > /sdcard/last_kernel_message_log.txt
  • dmesg > /sdcard/kernel_boot_log.txt
  • branchez le câble usb avec le smart-phone éteint. Puis lancez la commande adb logcat à partir de votre terminal Windows cmd ou Linux, il attendra que le dispositif soit mis en ligne, maintenant allumez le smartphone. Le logcat devrait alors commencer à défiler.

Puisque vous avez exprimé votre intérêt pour déterminer jusqu'où son téléphone peut aller dans les étapes de démarrage avant de se planter. ces méthodes devraient vous aider. Le problème est que vous devez être assez rapide pour saisir le journal du noyau (les deux premières méthodes présentées ci-dessus).

Ce que je ferais, c'est ceci : sur ma boîte Arch Linux, deux terminaux Windows, l'un pour l'interface utilisateur et l'autre pour l'interface utilisateur. adb logcat l'autre, pour saisir le journal à la minute où logcat commence à défiler !

Editar:

Sachez qu'il y a des différences avec l'utilisation de adb y fastboot ¡!

fastboot fonctionne différemment, il n'est utilisé que pour flasher des images dans des partitions spécifiques, et est plus lié au processus du chargeur de démarrage, c'est-à-dire qu'il peut comprendre le mécanisme du chargeur de démarrage. Il nécessite également que :

  • sous Windows, le privilège 'Administrateur' pour l'exécuter
  • sous Linux, le privilège "Root".

La raison pour laquelle il l'exige est qu'il contourne certaines entrées/sorties du matériel et, par conséquent, ne "parle" pas en anglais. adb Il s'agit plutôt de "parler" directement avec le chargeur de démarrage. Quelque chose qui ne peut pas être fait par un utilisateur normal. Voici l'aide pour l'utilisation de fastboot .

$ sudo fastboot
usage: fastboot [ <option> ] <command>

commands:
  update <filename>                        reflash device from update.zip
  flashall                                 flash boot + recovery + system
  flash <partition> [ <filename> ]         write a file to a flash partition
  erase <partition>                        erase a flash partition
  getvar <variable>                        display a bootloader variable
  boot <kernel> [ <ramdisk> ]              download and boot kernel
  flash:raw boot <kernel> [ <ramdisk> ]    create bootimage and flash it
  devices                                  list all connected devices
  continue                                 continue with autoboot
  reboot                                   reboot device normally
  reboot-bootloader                        reboot device into bootloader
  help                                     show this help message

options:
  -w                                       erase userdata and cache
  -s <serial number>                       specify device serial number
  -p <product>                             specify product name
  -c <cmdline>                             override kernel commandline
  -i <vendor id>                           specify a custom USB vendor id
  -b <base_addr>                           specify a custom kernel base address
  -n <page size>                           specify the nand page size. default: 2048

Une utilisation bien connue de fastboot est pour flasher, par exemple, pour flasher une image de récupération : sudo fastboot flash recovery recovery.img une autre consiste à flasher directement une image brute, sudo fastboot flash system system.img . Pour plus de pour le cas du développement du noyau, en utilisant cette fastboot boot new_kernel Ceci permet de télécharger temporairement un nouveau noyau et de démarrer en l'utilisant sans toucher au démarrage du chargeur d'amorçage.

Il y a aussi une limitation de la taille d'une image brute qui doit être flashée, quand je dis image brute, je me réfère à un fichier qui a une valeur de .img extension, l'image ne doit pas dépasser 128Mb. ( J'ai découvert cela en développant ics4blade, après que la construction soit terminée, le system.img était de 162Mb, et j'ai essayé de le flasher mais fastboot a refusé ! Pour contourner la limitation, j'ai dû créer un fichier zip flashable CWM pour le faire et contourner le problème ! )

Faites preuve de prudence et assurez-vous que la partition est correcte, vérifiez et revérifiez encore, si nécessaire, éloignez-vous de l'ordinateur, faites une pause, revenez et revérifiez encore, c'est là que cela peut mal tourner, en plaçant le mauvais fichier dans la mauvaise partition... bien. haussements d'épaules

4 votes

C'est une excellente idée, mais il y a un problème : ....adb ne fonctionne que si le démon adb peut détecter le périphérique. Si le téléphone n'a pas démarré avec succès, adb ne fonctionne pas. Donc un "boot-loop", quand vous auriez le plus besoin de logcat ne fonctionnerait pas, et ce n'est pas le cas en ce moment où je l'essaie. La seule chose à laquelle vous avez accès en termes de commande qui ne se soucie pas de savoir si le téléphone a bien démarré est "fastboot". Quelle est l'alternative dans ce cas ?

0 votes

@9exceptionThrower9 ai édité ma réponse pour inclure le concept de fastboot et pour répondre à votre commentaire, fastboot ne fonctionnera pas :)

0 votes

La seule alternative à laquelle je peux penser est d'effacer par fastboot le cache y data partition - Je ne suis pas responsable de tout ce qui pourrait arriver si vous continuez ! Et essayez de flasher la ROM à nouveau avec CWM. Encore mieux oubliez fastboot et utiliser CWM pour effacer les deux cache y données il semble que la boucle de démarrage soit due à un cache ou à des données défectueuses...

1voto

Narcotixs Points 193

Vous pouvez utiliser LiveBoot. Il est dans le Google Play Store. Il fera exactement ce que vous demandez.

1 votes

Et si j'avais un bootloop ? Y a-t-il un moyen de le faire avec un câble USB ?

0 votes

Je ne sais pas si cela mérite l'étiquette "logging" mais c'est une bonne idée :) play.google.fr/store/apps/details?id=eu.chainfire.liveboot

0voto

Chinoy Points 11

Vous pouvez aller en récupération sur cet écran, il vous permet d'accéder à quelques fichiers journaux que vous ne pouvez pas accéder une fois que le téléphone démarre. Ce que vous essayez de dépanner se trouve dans ces journaux de pré-démarrage.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X