
Ich habe untersucht, wie man Android von einer SD-Karte bootet. Dies ist der Beitrag mit den Anweisungen:
Sieg!
Ich habe die Standard-ZIP-Datei (4.3) von sdbags genommen und auf meinem Computer entpackt. Ich habe unmkbootimg verwendet, um initramfs.gz und kernel.gz aus boot.img im ROM zu extrahieren. Ich habe das initramfs entpackt und es uncpio-frei gemacht und dann macallan.fstab so geändert, dass es auf /dev/block/mmcblk1p1 für /data, p2 für /system und p3 für /cache verweist. Ich habe auch init.macallan.rc geändert, um zu vermeiden, dass es versucht, Dateisysteme auf dem EMMC zu erstellen – ich möchte, dass es überhaupt nicht versucht, das EMMC zu berühren.
Als nächstes habe ich initramfs.gz neu erstellt. Ich habe eine hochwertige MicroSD der Klasse 10 gekauft und sie auf meinem Computer in drei primäre Partitionen aufgeteilt, eine für /data, eine für /system und eine für /cache (ca. 2 GB und 1 GB für /system und /cache). Ich habe auf allen drei Partitionen ext4-Dateisysteme erstellt, p2 gemountet, das ROM kopiert und es manuell installiert, wobei ich das Updater-Skript als Anleitung verwendet habe. Dann habe ich die SD-Karte ausgehängt und in mein TF701t gesteckt.
Um es zu booten, habe ich mein Tablet in den Fastboot-Modus versetzt. Ich habe den Kernel und die Ramdisk mit „Fastboot Boot“ gebootet – kein Kexec aus der Wiederherstellung erforderlich. Ich kann dies tun, ohne mich in irgendeiner Weise auf das interne EMMC verlassen zu müssen. Das Booten hat eine Weile gedauert, aber es hat beim ersten Versuch gebootet. Die App-Schublade hat etwas langsam geöffnet, aber ich bin ziemlich froh, dass ich mein Tablet überhaupt benutzen kann! Dieser ganze Vorgang erwies sich als VIEL einfacher als ich erwartet hatte, und ich bin ziemlich zuversichtlich, dass ich damit jedes gewünschte ROM booten kann. Ich verwende nur die Standardversion, da ich Treiberprobleme mit meiner Bluetooth-Tastatur habe.
Ich bin aber immer noch bereit, mich an der Pflege des ROM2SD-Zweigs von Cromi zu versuchen
Vielen Dank an alle für Ihre Hilfe!
Dann gab es weitere AusarbeitungenHier:
Um Ihre Frage zu beantworten: Ich weiß es nicht. Meine Methode funktioniert beim Booten, weil ich die Vorstellung des ROM geändert habe, auf welchem Gerät/welcher Partition /system und /data liegen. Ich weiß nicht, wo Ihr Gerät seine Vorstellung davon hat, welche Partition die Radio-Firmware enthält. Wenn es irgendwo im initramfs ist, können Sie es auf die gleiche Weise ändern, wie ich meins geändert habe, und es anweisen, das Radio von der externen SD zu laden. Wenn das ROM fest codiert ist, um auf der internen SD nach dem Radio zu suchen, sind Sie möglicherweise aufgeschmissen.
Eine kurze Anmerkung zu initramfs für Neugierige: initramfs (initrd, initramdisk usw.) ist ein komprimiertes Miniatur-Linux-Dateisystem, das die absolut notwendigen Elemente enthält, die zum Laufen eines Linux-Systems erforderlich sind. Die Aufgabe von initrd besteht darin, herauszufinden, wo sich die Dateisysteme befinden, die die eigentliche Linux-Installation enthalten, diese zu mounten und die Kontrolle an dieses Linux-System zu übergeben.
Es ist nicht unbedingt notwendig, ein initrd zu verwenden, um ein Linux-System zu booten, aber es macht es viel einfacher, weil Sie Treiber laden, das Dateisystem vorbereiten usw. können. Das Standard-ROM für das TF701t (und ich gehe davon aus, dass die meisten, wenn nicht alle ROMs für alle Android-Geräte) ein initrd verwenden, um /system, /data und alle anderen erforderlichen Partitionen zu mounten. Ich sage ihm nur, dass es diese von meiner externen SD-Karte mounten soll, statt von der internen.
Ich weiß nicht, wie Radiopartitionen funktionieren. Ist es nur ein Roh-Firmware-Image auf der Partition oder ist es ein ext4-Dateisystem (oder ein anderes) mit einer binären Firmware-Datei darauf? Im letzteren Fall könnte das initrd die Radio-Firmware zusammen mit allem anderen mounten, was es tut, bevor es die Kontrolle an Android übergibt. Das könnte also bedeuten, dass Sie es in eine Partition auf der externen Karte ändern können.
Ich verstehe das nicht ganz und hatte auf eine ausführlichere Erklärung gehofft, da es sich hier anscheinend um ähnliche Dinge wie beim Linux-Betriebssystem (inramfs.gz, kernel.gz und dem Startvorgang im Allgemeinen) handelt.
Antwort1
Ich kenne keine Standardmethode zum Booten von einer SD-Karte. Wie einfach das ist oder nicht, hängt hauptsächlich davon ab, welches Android-Gerät Sie verwenden:
Wenn Sie beispielsweise ein Nexus-Gerät haben, können Sie einfach MultiROM aus dem Play Store herunterladen und schon kann es losgehen. Normalerweise ist es nie so einfach. Ich versuche derzeit, mein Mediatek MT6575-basiertes Gerät dazu zu bringen, von der SD-Karte zu booten, da der interne eMMC-Speicher tot ist, und habe es bisher nicht geschafft, also nehme ich an, dass es im Moment „gemauert“ ist.
Was ich hier sagen möchte, ist, dass es keine Schritt-für-Schritt-Anleitung gibt, die mit allen Geräten funktioniert, da es eine große Bandbreite an Geräten gibt, jedes mit unterschiedlichen Partitionslayouts, Kerneln usw.
Ich werde einige Beispiele zum Booten von SD für ein paar unterschiedliche Geräte bereitstellen und Sie werden hoffentlich erkennen, was dazu gehört. Wenn Sie außerdem sagen, welches Gerät Sie haben, bin ich möglicherweise auf eine funktionierende Methode für dieses Gerät gestoßen.
Android vom SdCard-Wiki booten– Dies befindet sich auf einer Site für „Sunxi“-Android-Tablets, aber die Informationen sind hilfreich, da sie Angaben zum Bearbeiten der Wiederherstellungs- und Startpartitionen enthalten, auch wenn die SD-Kartenbilder nur auf Sunxi-Tablets funktionieren.
Verwenden Sie SD statt eMMC auf GS3- Beschreibt Schritt für Schritt, wie man die SD-Karte partitioniert und boot.img bearbeitet. Ich habe diese Methode auf meinem MT6575 ausprobiert, aber nur die Informationen in der fstab zu ändern, war nicht genug. Es versuchte immer noch, von eMMC für mein Gerät zu booten, aber wenn Sie ein GS3 haben, ist dies ideal.
Multiboot für MediaTek-Geräte- So erhalten Sie 1 ROM auf dem internen eMMC und ein 2. ROM auf der SD-Karte. Gibt eine grobe Schritt-für-Schritt-Anleitung, funktioniert möglicherweise, wenn Sie ein Mediatek-Gerät haben.
Konvertieren Sie ROM, um von der SD-Karte zu booten- Geschrieben für ein Nokia X2, aber ich gehe diese Methode gerade durch, mountet beide Systempartitionen gleichzeitig, Mount-Punkt für die SD-Systempartition ist /system-ext
Das ist alles, was ich im Moment habe. Wenn Sie es schaffen, von der SD-Karte zu booten, könnten Sie bitte einen Kommentar hinterlassen und angeben, welche Methode und welches Gerät Sie verwendet haben. Danke. :)