Ich versuche herauszufinden, ob Android (dh Galaxy Nexus, Nexus S und/oder Motorola Xoom) mit einer Art Fähigkeit ausgestattet ist, ein "Boot-Up"-Protokoll zu erstellen. (ähnlich wie Linux-Startbildschirm) Es wäre immens hilfreich, herauszufinden, wie weit das Telefon in den Startphasen kommt, bevor es abstürzt (z. B. Bootloader der ersten Stufe, Haupt-Bootloader, dann Laden des Kernels usw.). Weiß jemand, wie man dem Telefon ermöglicht, diese Protokolldatei auszuspucken oder einen "verbose" Startmodus zu aktivieren (und tatsächliche Nachrichten an das Terminal des Linux-Computers zu drucken, an den das Telefon angeschlossen ist)?
Mein Telefon bleibt mit meinem aktuellen modifizierten Build in einer "Boot-Schleife" hängen und ich möchte es nach Möglichkeit debuggen.
Alternativ kennt jemand nützliche Ressourcen oder Tutorials, die erklären, wie man das Telefon einfach "hackt", um dies zu tun (kein Durcheinander mit der Hardware)? Oder von irgendwelchen Foren, wo meine Frage vielleicht gestellt wurde, aber in einer obskureren Form?
Dies war in letzter Zeit ein frustrierendes Problem, daher wäre jede Hilfe sehr willkommen!
Es gibt ein paar Möglichkeiten, dies zu tun:
cat /proc/last_kmsg > /sdcard/last_kernel_message_log.txt
dmesg > /sdcard/kernel_boot_log.txt
adb logcat
von Ihrem Windows-Cmd- oder Linux-Terminal aus, es bleibt hängen und wartet darauf, dass das Gerät online geht. Schalten Sie jetzt das Smartphone ein. Der Logcat sollte dann anfangen zu scrollen.Da Sie Interesse daran bekundet haben, herauszufinden, wie weit das eigene Telefon in der Startphase kommt, bevor es abstürzt , sollten diese Methoden hilfreich sein. Die Sache ist, dass Sie ziemlich schnell sein müssen, um das Protokoll des Kernels zu erhalten (die ersten beiden Methoden, die oben gezeigt werden).
Was ich tun würde, ist Folgendes, auf meiner Arch-Linux-Box, zwei Terminalfenster, eines für die adb logcat
, das andere, um das Protokoll abzurufen, sobald logcat mit dem Scrollen beginnt!
Bearbeiten:
Beachten Sie, dass es Unterschiede bei der Verwendung von adb
und gibt fastboot
!
fastboot
funktioniert anders, es wird nur zum Flashen von Images in bestimmte Partitionen verwendet und ist stärker mit dem Bootloader-Prozess verbunden, dh es kann den Bootloader-Mechanismus verstehen. Es erfordert auch, dass:
Der Grund dafür ist, dass es bestimmte Ein-/Ausgaben der Hardware umgeht und daher nicht im adb
Protokoll "spricht", sondern direkt mit dem Bootloader "spricht". Etwas, das als normaler Benutzer nicht möglich ist. Hier ist die Hilfe zur Verwendung von 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
Eine bekannte Verwendung von fastboot
ist zum Beispiel das Flashen eines Wiederherstellungsabbilds: sudo fastboot flash recovery recovery.img
, eine andere ist das direkte Flashen eines RAW-Abbilds, sudo fastboot flash system system.img
. Um mehr für den Fall der Kernel-Entwicklung zu verwenden fastboot boot new_kernel
, lädt dies vorübergehend einen neuen Kernel herunter und bootet damit, ohne den eigenen Boot des Bootloaders zu berühren.
Es gibt auch eine Begrenzung für die Größe eines Rohbildes, das geflasht werden muss. Wenn ich Rohbild sage, beziehe ich mich auf eine Datei mit einer .img
Erweiterung, das Bild darf 128 MB nicht überschreiten. ( Ich habe dies bei der Entwicklung von ics4blade herausgefunden, nachdem der Build abgeschlossen war, war die system.img 162 MB groß, und ich versuchte, sie zu flashen, aber Fastboot lehnte ab! Um die Einschränkung zu umgehen, musste ich eine CWM-flashfähige ZIP-Datei erstellen, um dies zu tun und herumzukommen es! )
Seien Sie vorsichtig und stellen Sie sicher, dass die Partition korrekt ist, und überprüfen Sie sie und überprüfen Sie sie erneut, wenn nötig, gehen Sie vom Computer weg, machen Sie eine Pause, kommen Sie wieder zurück und überprüfen Sie sie erneut, hier kann es schrecklich schief gehen. Flashen Sie die falsche Datei in die falsche Partition ... na ja, zuckt mit den Schultern
cache
Die einzige Alternative, die mir einfällt, ist, die und Partition
per Fastboot zu löschen data
- ich bin nicht verantwortlich für etwas Unerwünschtes, wenn Sie fortfahren! Und versuchen Sie, das ROM erneut über CWM zu flashen. Noch besser , vergessen Sie Fastboot und verwenden Sie CWM, um sowohl Cache als auch Daten zu löschen. Es hört sich so an, als ob der Bootloop auf einen gebohrten Cache oder Daten zurückzuführen ist ...fastboot
erfordert nicht immer Root-Zugriff, zumindest nicht auf einigen Linux-Distributionen. Sie könnten die Leute einfach anweisen, sudo oder administrator zu verwenden, wenn ihnen die Berechtigung verweigert wird.Sie können LiveBoot verwenden. Es ist im Google Play Store. Es wird genau das tun, worum Sie bitten.
Sie können auf diesem Bildschirm in die Wiederherstellung wechseln, damit Sie auf einige Protokolldateien zugreifen können, auf die Sie nach dem Hochfahren des Telefons nicht zugreifen können. Was Sie versuchen zu beheben, wird in diesen Pre-Boot-Protokollen stehen.
Ryan Konrad
9AusnahmeWerfer9
Ryan Konrad
9AusnahmeWerfer9