Отладка бутлупа: Получить информационный лог без ADB? Эмулятор может помочь? [дубликат]

Возможный дубликат:
сообщения о загрузке Android для отладки?

В связи с этим сообщением, которое я создал: создает ли эмулятор Android какой-либо файл журнала, к которому я могу получить доступ, если он выйдет из строя?

Я искал и пытался выяснить, есть ли вообще способ получить какую-либо информацию об отладке или какие-либо сообщения ядра с телефона Android , если он застрял в состоянии начальной загрузки? Это означает, что телефон зависает на заставке «Google», затем вылетает, затем переходит к этому, затем вылетает.

Я знаю, что у телефона есть несколько этапов загрузки, но чтобы понять, почему мой образ системы/модифицированное ядро ​​вызывает сбой телефона, мне нужно хотя бы знать, где происходит сбой телефона?

Есть ли какой-либо журнал, который может выдавать эмулятор Android, который показывает, как он проходит этапы загрузки: то есть загрузчик этапа 1, загрузчик основного этапа, загрузка ядра, процесс инициализации, Zygote, инициализация Zygote Dalvik VM, выполнение системного сервера, затем загрузка завершена (когда ACTION_BOOT_COMPLETEфлаг/событие поднято).

Я пытался модифицировать init.rcэхо-команды в журнале загрузки (но это не сработало, хотя я не знаю, доходит ли телефон до этого этапа, все, что у меня есть, это бесполезная заставка), я пробовал любой из материала ADB, но, конечно, ADB не работает, если телефон не достигает стабильного состояния, команда Linux dmesgработает только для того, чтобы показать, что телефон подключен через USB, и разработчики Android решили, по крайней мере, не объяснять меня, что только у них есть такие инструменты разработчика. Может ли кто-нибудь дать мне несколько советов, что я могу сделать для отладки процесса загрузки? По крайней мере, должен быть какой-то журнал, к которому вы можете получить доступ с помощью эмулятора.

Другими словами, как кто-то может получить какой-либо журнал со своего телефона/эмулятора, если он застрял в бутлупе?

Дополнительная информация, моя версия ядра, которую я, как мне кажется, загрузил для сборки своего телефона, представляет собой ядро ​​​​Linux версии 3.x (стандартное ядро, извлеченное из tunaпапки и использующее проект «omap»), для Android Galaxy Nexus (maguro), с платформой Андроид 4.0.3 ICS.

Ответы (1)

Вы будете знать, если ядро ​​​​зависло, светодиод останется включенным и не пойдет дальше.

Что касается вашего вопроса, вы должны быть более четкими и конкретными, поскольку мы не знаем, и поскольку вы ранее задавали аналогичный вопрос. Вы не указали, что это за устройство, какая у него версия Android, какое у него ядро, все это не учтено и, таким образом, здесь играете в угадайку.

  • Виртуальный диск создан неправильно?
  • Это адрес, используемый для загрузки, неверен?
  • ПЗУ построено для VMSPLIT 3G, а ядро ​​построено для VMSPLIT 2G или наоборот?
  • Что за чипсет? Ядро ARMv7 с ПЗУ, скомпилированное для ARMv6...
  • Ядро действительно загружается? если да, то как вы знаете?

Здесь слишком много вещей, чтобы строить догадки.

Редактировать:

Этот бит связан с отладкой на уровне ядра.

Единственный способ узнать , действительно ли ядро ​​загружается, — это использовать кабель USB-Serial TTY с выводами JTAG на небольшой печатной плате, прикрепленной/припаянной к задней части рассматриваемого устройства, и иметь драйвер последовательного порта. компилируется в ядро ​​и обрабатывает консоль как tty-устройство, а также считывает ее через minicom или гипертерминал, чтобы увидеть последовательность загрузки.

Что касается бутлупов,

Причина загрузочных циклов связана с самим ПЗУ, где-то происходит сбой последовательности инициализации. Теперь будьте осторожны :), ядро ​​само по себе может зацикливаться также из-за неисправного драйвера, паники и перезагрузки.

Так вот вопрос, что это? , Это ядро ​​постоянно перезагружается или оно прошло этот этап и начало загружать ПЗУ? Если на этапе загрузки ПЗУ, то что-то в инициализации падает, при падении ПЗУ посылает сигнал на отключение SurfaceFlinger, AudioFlinger, демона adb, MedaServices и т.д.

Что вы можете сделать, так это - в init.rc, где у вас есть это:

service console /system/bin/sh
    console
    disabled
    user shell

Измените disabledна enabled, в следующий раз Android выкинет вас в консоль, т.е. без привычного графического интерфейса.

Кроме того, найдите строки, содержащие servicemanager, если там указан демон adbd, удалите его, поскольку то, что происходит, является предложением директивы criticalи onrestartприведет к тому, что у вас не будет никаких средств adb!

Я отредактировал свой пост, чтобы отразить более конкретные сведения о системе.