Как изменить последовательность загрузки Android, чтобы загружаться с SD-карты?

Как изменить последовательность загрузки Android, чтобы загружаться с SD-карты?

Я искал, как загрузить Android с SD-карты. Вот пост с инструкциями:

Победа!

Я взял стандартный zip-архив sdbags (4.3) и распаковал его на своем компьютере. Я использовал unmkbootimg для извлечения initramfs.gz и kernel.gz из boot.img в ROM. Я распаковал initramfs и un-cpio, затем изменил macallan.fstab так, чтобы он ссылался на /dev/block/mmcblk1p1 для /data, p2 для /system и p3 для /cache. Я также изменил init.macallan.rc, чтобы он не пытался создавать файловые системы на EMMC — я хочу, чтобы он вообще не пытался трогать EMMC.

Затем я пересобрал initramfs.gz. Я купил microsd класса 10 хорошего качества и разбил ее на своем компьютере на 3 основных раздела: один для /data, один для /system и один для /cache (около 2 ГБ и 1 ГБ для /system и /cache). Я создал файловые системы ext4 на всех 3 разделах, смонтировал p2, скопировал rom и установил его вручную, используя updater-script в качестве руководства. Затем я отмонтировал и вставил SD-карту в свой TF701t.

Чтобы загрузить его, я перевел планшет в режим fastboot. Я загрузил ядро ​​и ramdisk с помощью «fastboot boot» — нет необходимости в kexec из восстановления. Я могу сделать это без какой-либо зависимости от внутреннего EMMC. Загрузка заняла некоторое время, но загрузка прошла с первой попытки. Панель приложений немного медленно открывалась, но я очень рад, что вообще могу пользоваться планшетом! Весь этот процесс оказался НАМНОГО проще, чем я ожидал, и я вполне уверен, что смогу сделать это для загрузки любого ПЗУ, которое захочу. Я использую только стандартную версию из-за проблем с драйверами моей клавиатуры Bluetooth.

Хотя я все еще готов попробовать свои силы в поддержке ветки ROM2SD от Cromi.

Спасибо всем за вашу помощь!

Затем было больше уточнений.здесь:

Отвечая на ваш вопрос, я не знаю. Мой метод работает для загрузки, потому что я изменил идею ПЗУ о том, на каком устройстве/разделе находятся /system и /data. Я не знаю, где ваше устройство хранит идею о том, на каком разделе находится прошивка радио. Если это где-то в initramfs, то вы можете изменить его так же, как я изменил свой, и указать ему загружать радио с внешней SD. Если ПЗУ жестко закодировано на поиск радио на внутренней SD, то вы можете быть влипли.

Краткое примечание об initramfs для любопытных: initramfs (initrd, initramdisk и т. д.) — это сжатая миниатюрная файловая система linux, содержащая самые необходимые элементы для работы системы linux. Задача initrd — выяснить, где находятся файловые системы, содержащие фактическую установку linux, смонтировать их и передать управление этой системе linux.

Не обязательно использовать initrd для загрузки системы Linux, но это значительно упрощает задачу, поскольку вы можете загрузить драйверы, подготовить файловую систему и т. д. Стандартный ROM для TF701t (и я предполагаю, что большинство, если не все ROM для всех устройств Android) используют initrd для монтирования /system, /data и любых других необходимых разделов. Я просто говорю ему монтировать их с моей внешней SD вместо внутренней.

Я не знаю, как работают разделы радио. Это просто сырой образ прошивки на разделе или это файловая система ext4 (или другая) с двоичным файлом прошивки на ней? Последний случай может означать, что initrd монтирует прошивку радио вместе со всем остальным, что он делает, прежде чем передать управление android, поэтому это может означать, что вы можете изменить его на раздел на внешней карте.

Я не совсем понимаю, и надеялся на некоторые пояснения, поскольку, похоже, это касается схожих вещей в ОС Linux (inramfs.gz, kernel.gz и процесс загрузки в целом).

решение1

Я на самом деле не знаю стандартного способа загрузки с SD-карты, насколько он прост или нет, в основном зависит от того, какое Android-устройство вы используете:

Например, если у вас есть устройство Nexus, вы можете просто загрузить MultiROM из Play Store, и все готово. Обычно это не так просто; в настоящее время я пытаюсь заставить свое устройство на базе Mediatek MT6575 загрузиться с SD-карты, поскольку внутренняя память eMMC мертва, и пока не смог этого сделать, так что, полагаю, сейчас оно «закирпичено».


Я пытаюсь сказать, что не существует пошагового руководства, которое будет работать со всеми устройствами, поскольку существует большой выбор устройств, каждое из которых имеет различную структуру разделов, ядра и т. д.

Я приведу несколько примеров того, как загрузиться с SD-карты для нескольких различных устройств, и, надеюсь, вы сможете понять, что для этого нужно; если вы также скажете, какое у вас устройство, возможно, я найду работающий метод для этого устройства.

Загрузка Android с SD-карты wiki- Это сайт для планшетов на базе Android «sunxi», но информация полезна, поскольку содержит сведения о редактировании разделов восстановления и загрузки, даже если образы SD-карт будут работать только на планшетах sunxi.

Используйте SD вместо eMMC на GS3- Пошаговое руководство по разбиению SD-карты и редактированию boot.img. Я пробовал этот метод на своем MT6575, но простого изменения информации в fstab было недостаточно, он все еще пытался загрузиться с eMMC для моего устройства, но если у вас GS3, это идеальный вариант.

Мультизагрузка для устройств MediaTek- Как иметь 1 ROM на внутренней eMMC и 2-й ROM на SD-карте. Дает грубую пошаговую инструкцию, может сработать, если у вас устройство MediaTek.

Конвертировать ПЗУ для загрузки с SD-карты- Написано с расчетом на Nokia X2, но я сейчас использую этот метод, монтирует оба системных раздела одновременно, точка монтирования для системного раздела SD - /system-ext

Это все, что у меня есть на данный момент. Если вам удастся загрузиться с SD, не могли бы вы оставить комментарий с указанием того, какой метод и какое устройство вы использовали? Спасибо. :)

Связанный контент