Kernel per Fastboot temporär booten

  • 19 Antworten
  • Letztes Antwortdatum
J

jtsn

Neues Mitglied
2
Ich habe hier ein Huawei Ascend Y300-0100 und erfolgreich den Bootloader entsperrt:
Code:
$ fastboot oem get-bootinfo
...
(bootloader)
*******************************************
(bootloader)     Bootloader Lock State: UNLOCKED

(bootloader)     System State: Bootloader in UNLOCKED state
(bootloader)     Bootloader Version: 001.001.000
(bootloader)
*******************************************
OKAY [  0.006s]
finished. total time: 0.006s
Nun würde ich gern wie auf dem Huawei Ideos X3 meine eigenen Kernel-Images ohne Brick-Gefahr über USB booten können. Dazu betreibe ich das Gerät ohne Akku, hänge es per USB an den PC und boote es dann mit:
Code:
$ adb reboot bootloader
$ fastboot boot kernel.img ramdisk.img
Wenn ich mit meinen Experimenten fertig bin, ziehe ich den USB-Stecker und die Kiste ist aus und wieder komplett Original.

Auf dem Ideos X3 funktioniert das einwandfrei. Das Y300 bleibt jedoch einfach hängen. Zum Testen habe ich einfach mal versucht, eine Recovery zu booten:
Code:
$ fastboot boot openrecovery-twrp-2.7.0.2-u8833.img
downloading 'boot.img'...
OKAY [  0.746s]
booting...
OKAY [  2.549s]
finished. total time: 3.297s
Danach passiert nichts mehr und das Y300 ist weder per adb noch per fastboot ansprechbar. Ich habe es auch mal mit dem Stock-Kernel (boot.img) aus der "Huawei Ascend Y300-V100R001C00B199.zip" probiert. Damit sollte eigentlich ganz normal die Werksfirmware booten, aber auch hier passiert nichts.

Weiß irgendjemand, ob der (entsperrte) Bootloader überhaupt funktioniert? Ich möchte das Ascend Y300 schlicht per USB booten, wie es jedes andere Android ebenfalls kann.

Vor dem Antworten bitte beachten:

In diesem Thread geht es nicht darum, die Firmware zu rooten, das vorinstallierte Android zu modifizieren oder eine Custom-Firmware zu flashen (auch kein Custom-Recovery). Das ROM soll unverändert bleiben und OTA-Update weiter funktionieren.)
 
Hallo,

Code:
$ adb reboot bootloader
$ fastboot boot kernel.img ramdisk.img
so klappt das nicht.

Code:
fastboot boot <kernel> [ <ramdisk> ]   download and boot kernel
Also entweder die entpackte Recovery.img. Die besteht dann aus dem Kernel (zImage) und dem Ramdisk Ordner:

fastboot boot zImage ramdisk

Oder die Recovery.img

fastboot boot recovery.img

Gruß :) Isa
 
isabella-herzchen schrieb:
fastboot boot zImage ramdisk
Das habe ich auf dem Y300 bisher noch gar nicht versucht.

fastboot boot recovery.img
Genau das funktioniert eben nicht. Der HUAWEI-Ascend-Logo bleibt steht und die Kiste stellt sich bis zum Trennen der Stromversorgung komplett tot.

Zum Rumtesten habe ich auch mal das openrecovery-twrp-2.7.0.2-u8833.img in Kernel und Ramdisk zerlegt:
Code:
$ dd if=openrecovery-twrp-2.7.0.2-u8833.img of=bzImage bs=2048 skip=1 count=2549
dd if=openrecovery-twrp-2.7.0.2-u8833.img of=ramdisk bs=2048 skip=2550
$ file bzImage
bzImage: Linux kernel ARM boot executable zImage (little-endian)
$ file ramdisk
ramdisk: gzip compressed data, from Unix
$ fastboot boot bzImage ramdisk
creating boot image...
creating boot image - 8122368 bytes
downloading 'boot.img'...
OKAY [  0.745s]
booting...
OKAY [  0.197s]
finished. total time: 0.943s
Und dann wieder nichts. Ich habe bis jetzt versucht, folgendes über fastboot boot zu booten:
  • TWRP 2.5.0.1, 2.6.3.3 und 2.7.0.2
  • recovery-clockwork-6.0.4.5-u8833-R3.img
  • der Boot-Image der B199-Originalfirmware (boot.img)
  • das B199-Original-Recovery (recovery-new.img)
Nichts davon hat geklappt. Nun wüßte ich gern, ob das USB-Booten bei irgendeinem Y300-Besitzer überhaupt funktioniert.
 
Ich kann es leider nicht testen, da ich kein y300 habe.

Gruß
 
Warum bist Du nicht nach der beschriebenen Methode vorgegangen: Klick.

Denn über das Tool ist Unlock, Recovery sicher drauf, von da aus kannst dann alles machen :)



Gruß
Markus
 
@TSC Yoda,

du hast das wohl nicht richtig durch gelesen. Der Bootloader ist ja schon offen.
Es geht darum eine boot.img oder recovery.img über fastboot nur zu booten und nicht zu flashen.

Sieht aber wohl so aus, das das der offene Bootloader nicht zu läßt.

Gruß
 
  • Danke
Reaktionen: TSC Yoda
Alles klar.

Frage: was soll das bringen?
 
jtsn, ich glaube Du solltest mal Dein "Konzept" überdenken, aber Dich auch einmal zu den Begriffen und dem Gerät im allgemeinen einlesen, denn sonst kann auch das "beste" Konzept schon einmal grundsätzlich nicht funktionieren. ;)

Das Fastboot-Interface ist nur aktiv, wenn das Gerät auch in den Fastboot-Modus gebootet wurde. Beauftragst Du Fastboot damit, das Gerät neu zu booten, befindest Du Dich nach der Absetzung dieses Befehls an den Bootloader nun mal nicht mehr im Fastboot-Modus. Je nach der Software des Gerätes erfolgt dabei mit der allergrößten Wahrscheinlichkeit eine erneute Initialisierung des RAM und somit der Verlust der bisherigen, dortigen Inhalte.

Ach ja, und das ADB-Interface gibt's nur, wenn das Gerät ins Hauptbetriebssystem gebootet wurde.

Bei den Geräten von Huawei befindet sich das Minibetriebssystem in einer gesonderten Partition, hat also mit der Partition des Kernels nichts zu schaffen. Das bedeutet, dass Du den Inhalt der als "Recovery" bezeichneten Partition ändern kannst wie Du lustig bist, ohne dass das Auswirkungen auf den vorhandenen Kernel hat.

Wenn Du also einen alternativen Kernel testen willst, dann flashst Du den wohl am besten in die entsprechende Partition und bootest ins Hauptbetriebssystem. Selbstverständlich kannst Du mit dem im Minibetriebssystem integrierten NANDroid-Tool zuvor ein Backup der Kernel-Partition anlegen.


BTW: herzlich willkommen im Forum!
 
  • Danke
Reaktionen: TSC Yoda
@TSC Yoda

fastboot boot xyz ist halt eine Entwickler option. Zb. du compilierst eine CWM oder einen Kernel. Dann kannst du sehen ob das Gerät bootet mit der Geänderten Dateien ohne sie zu Flashen. Bootet das Gerät ist alles Prima, bootet es nicht hast du immer noch das alte System.

@email.filtering

ich glaube @jtsn hat das schon verstanden was fastboot ist, und wenn du seinen Beitrag liest ist sein Gerät auch im fastboot.

@jtsn ich hatte auch mal ein Huawei mit offenem Bootloader wo booten über fastboot nicht ging. Weiss nicht mehr welches Gerät das war, waren die letzten 2 Jahre zu viele.

Gruß Isa
 
  • Danke
Reaktionen: TSC Yoda
TSC Yoda schrieb:
Warum bist Du nicht nach der beschriebenen Methode vorgegangen
Weil das Gerät gar nicht gerootet werden soll. Das vorinstallierte System für den Alltagsbetrieb soll unverändert bleiben, inkl. OTA-Update.

Recovery sicher drauf, von da aus kannst dann alles machen :)
Außer selbstgebaute Kernel ohne Brick-Gefahr fastbooten. Und das ist ja genau das, was ich machen möchte.

isabella-herzchen schrieb:
Der Bootloader ist ja schon offen.
Es geht darum eine boot.img oder recovery.img über fastboot nur zu booten und nicht zu flashen.
Eben, sonst kann man sich das Entsperren ja sparen, wenn der Bootloader dann außer dem vorinstallierten Kernel trotzdem nichts ... bootet.

TSC Yoda schrieb:
Frage: was soll das bringen?
Das ist der offizielle Weg, eigenen Code auf einem Android zu booten, ohne das Gerät zu flashen. Wenn das auf dem Ascend Y300 überhaupt nicht funktioniert, geht das Gerät natürlich zurück, weil es sich dann für meine Zwecke nicht eignet.

Ich möchte aber nicht gleich aufgeben, vielleicht findet sich ja jemand, bei dem 'fastboot boot' funktioniert. Vielleicht gibt es einen anderen Weg, den Bootloader zur Mitarbeit zu überreden oder es fehlen bloß ein paar Kernelparameter.

Der ursprüngliche Beitrag von 22:05 Uhr wurde um 22:08 Uhr ergänzt:

isabella-herzchen schrieb:
@jtsn ich hatte auch mal ein Huawei mit offenem Bootloader wo booten über fastboot nicht ging. Weiss nicht mehr welches Gerät das war, waren die letzten 2 Jahre zu viele.
Scheint also kein Einzelfall zu sein. :(
 
  • Danke
Reaktionen: TSC Yoda
Kann ja sein, dass ich da irgendwas nicht so ganz raffe jtsn, aber Du kannst mir da(nn) sicher auf die Sprünge helfen. :winki:

Du beschaffst Dir ein Y300 und willst damit Kernel testen. So weit verstehe ich das. Ich kann auch gerade noch nachvollziehen, dass Du die Kernel nur temporär testen willst, wenngleich das sicherlich sinnlos komplizierter und damit aufwändiger ist, als den Kernel zu flashen und ihn erst dann zu testen.

Was ich aber gar nicht auf die Reihe bekomme ist die Tatsache, dass Du anscheinend mittels des Y300 Kernel (temporär) "testen" willst, die ganz offensichtlich gar nicht fürs Y300 bestimmt sind. Was soll denn das bringen? Wie soll denn das grundsätzlich funktionieren? Wie willst Du da den Kernel worauf bzw. womit "testen"? Das sind nur so ein paar Fragen die mir dabei durch den Kopf gehen, ohne die Sache jetzt in allen Details durchzudenken. Meinst'e nicht, dass Du da mit einem virtuellen Android weiterkämst?

Ach ja, und bevor Du behauptest dass es am "bösen" Bootloader läge warum die Sache mit dem komplizierten Eckengangerl nicht funktioniert, wäre es schon interessant zu wissen, wie Du den Bootloader überhaupt entsperrt hast? Teste doch einfach einmal mittels Fastboot, ob sich das Minibetriebssystem Deiner Wahl (z.B. jenes des TWRP) erfolgreich aufs Gerät flashen lässt. Klappt das, liegt's sicherlich nicht am Bootloader, dass Du mit Deinem Eckengangerl nicht weiterkommst. Selbstverständlich kann ich Dir das originale Minibetriebssystem zur Verfügung stellen um wieder zum Originalzustand zurückkehren zu können.

Dass durch das Entsperren des Bootloaders die Garantie ohnedies schon futsch ist, weißt Du aber schon!? Wem Du das Gerät da nun - wohl gegen Erstattung des Kaufpreises wie ich annehme - zurückschicken - und somit den nächsten Besitzer des Gerätes um die Garantie betäuben - willst, will ich eigentlich erst gar nicht wissen.
 
Zitat:

"Eben, sonst kann man sich das Entsperren ja sparen, wenn der Bootloader dann außer dem vorinstallierten Kernel trotzdem nichts ... bootet."

Du bist da ein besonderer Fall. Da du da ja nur booten und nicht flashen willst.
Flashen ist ja kein Problem und wohl der erste Grund für alle den Bootloader zu Entsperren.
 
email.filtering schrieb:
Du beschaffst Dir ein Y300 und willst damit Kernel testen. So weit verstehe ich das. Ich kann auch gerade noch nachvollziehen, dass Du die nur temporär testen willst, wenngleich das sicherlich sinnlos komplizierter und damit aufwändiger ist, als den Kernel zu flashen und ihn erst dann zu testen.
Im Gegenteil, immer erst flashen ist viel aufwendiger, als das Gerät komplett per adb und fastboot fernzusteuern. Vor allem wenn der eigene Kernel nicht bootet (Brick), dann muß man zuerst per Affengriff zurück ins Recovery und nochmal flashen.

So weit bin ich aber noch gar nicht, daß ich eigene Kernel fürs Y300 erstellt habe, erstmal möchte ich nur die dafür vorgesehenen Images booten, damit ich eben sehen kann, daß der Fastboot so wie auf jedem anderen Android funktioniert.

Was ich aber gar nicht auf die Reihe bekomme ist die Tatsache, dass Du anscheinend mittels des Y300 Kernel (temporär) "testen" willst, die ganz offensichtlich gar nicht fürs Y300 bestimmt sind. Was soll denn das bringen? Wie soll denn das grundsätzlich funktionieren? Wie willst Du da den Kernel worauf bzw. womit "testen"? Das sind nur so ein paar Fragen die mir dabei durch den Kopf gehen, ohne die Sache jetzt in allen Details durchzudenken. Meinst'e nicht, dass Du da mit einem virtuellen Android weiterkämst?
Das Android selbst interessiert mich dabei gar nicht (außer eben als unverändertes Alltags-OS), daran möchte ich auch gar nicht herumbasteln.

Für mich ist das Ascend Y300 ein ARMv7-Rechner, auf dem ich Linux booten kann. Also das, was Leute mit Raspberry Pi, BeagleBoard & Co. ebenfalls machen. Der Vorteil eines Smartphones ist, daß man dort wesentlich mehr Leistung zu einem günstigeren Preis bekommt und der Zweitnutzen praktisch "gratis" ist, während ein teures ARM-Developer-Board ansonsten unnütz in der Schublade herumliegt, wenn gerade nicht gebastelt wird, und man trotzdem noch ein Telefon braucht.

Beim Ideos X3 habe ich zum Basteln den Akku, die SIM-Karte und die SD-Karte rausgenommen und es dann per USB an den PC angeschlossen. Es läßt sich dann sofort per adb und fastboot ansprechen. Geht ein Kernel-fastboot schief, zieht man einfach den USB-Stecker. Weil kein Akku drin ist, bootet das Gerät beim Wiederanschließen automatisch neu und weil man nichts geflasht hat, gibt's auch keinen Brick. Das Gerät ist bis heute im unveränderten Originalzustand (Bootloader ab Werk ungelockt) und hat nur einmal ein offizielles Huawei-Firmwareupdate bekommen. Nur ist das U8510 eben sehr alt (ARMv6) und hat inzwischen viel zu wenig Speicher.

Ach ja, und bevor Du behauptest dass es am "bösen" Bootloader läge das die Sache mit dem komplizierten Eckengangerl nicht funktioniert, wäre es schon interessant zu wissen, wie Du den Bootloader überhaupt entsperrt hast?
Per offiziellem Entsperrcode von Huawei. Dort würde ich nächste Woche auch fragen, warum der eindeutig entsperrte Bootloader nicht mitspielt, ich habe allerdings Zweifel, daß der (englische) Support die Frage überhaupt versteht. Die meisten, die danach fragen, wollen eben nur eine Custom-Recovery im Flash und nicht den Bootloader nutzen, wofür er eigentlich da ist.
 
Zuletzt bearbeitet:
Der Bootloader (er hat eine ähnliche Aufgabe wie ein BIOS) ist doch in erster Linie dazu da, um das zu Booten, was der User an Hand der Tastenkombination aus dem imaginären (Boot-Device-)Menü (zur Auswahl stehen vier Punkte: Fastboot, Download, Mini-OS & Main-OS) ausgewählt hat. Und das klappt sowohl mit einem gesperrten als auch mit einem entsperrten Bootloader. Dazu brauchst Du keinen Supportmitarbeiter zu bemühen (der natürlich nie auf solche Fragen geschult wurde); das kannst'e selbst herausfinden.

Was Du dann mit den Menüpunkten anstellst, ist Deine Sache. Dass das "Weiterbooten" von einem Modus in den nächsten nicht klappt, ist für mich "naheliegend" (zumal jeder vom User ausgewählte und genutzte Mode kann nur den Befehl zum Reboot in einen der vier vorgegebenen Modi an den Bootloader wie einen Error-Code zurückgeben kann). Allerdings kann man Deine Idee an Hand der Schilderung wie's beim Ideos X3 funktioniert hat, und was Du da überhaupt vorhast, usw. zumindest schon einmal nachvollziehen.
 
@email.filtering

das ganze Hier würde ich mal als eine Dev Frage behandeln.

Der Grund warum es in fastboot die Option "fastboot boot recovery.img / boot.img" gibt sollte doch einleuchten. Es ist sicher für das y300 nicht wichtig, da es Cwm Recovery und auch dload Firmware zum download gibt. Ist aber nicht bei jedem Gerät der Fall. Deswegen kannst dir ne Recovery oder Boot.img vom handy ziehen (dd backup) und so mit der Fastboot boot (option) sicher basteln. (ich mache alles über fastboot, adb oder adb shell).

Zum Thema, den Bootloader entsperren bedeutet ja nur das man unsignierte Partitionen über fastboot flashen kann. Bedeutet aber nicht das in der Stock rom (fastboot.img) überhaupt alle Fastboot Befehle hinterlegt sind. (würde für Huawei ja Sinn machen wenn sie das Phone gesperrt ((Bootloader)) verkaufen.

Dazu müsste man mal die Fastboot.img entpacken, leider habe ich keine Ahnung in Welchem Format diese gepackt ist. Auf Jeden Fall nicht wie die ZB. system.img die sich ja unter Linux einfach mounten und bearbeiten lässt.

Ich für meinen Teil finde das hier mal eine interesante Frage!!!!! (besser wie Ich kann die Treiber nicht installieren)

LG :) Isa
 
Dass Fastboot ein Thema für sich ist, weiß ich auch. Nur kam die Vorgeschichte ja erst relativ spät. Und ob's überhaupt ein Fastboot-Image beim Y300 gibt oder ob das Zeug nicht eventuell im Bootloader-Image enthalten ist, kann ich nicht einmal sagen. Und ein Supportmitarbeiter weiß so was sicherlich nicht und wird das auch von seiner zweiten Linie sicherlich nicht genannt bekommen. Es ist also vollkommen sinnlos die wegen solcher Fragen zu behelligen.

Die Sache mit fastboot boot xyz.img funktioniert ja nur dann wirklich, wenn das was da geflasht wird auch "ausführbar" im engeren Sinne ist. Aber was soll denn beim Ausführen eines Kernels der für ein gänzlich anderes Gerät gebaut wurde am Display des Y300, dessen Hardware dieser Kernel ja vermutlich gar nicht ansprechen kann, groß zu sehen sein? Oder will jtsn erst mal jeden Kernel so zusammenstellen, dass er auch die fürs Y300 benötigten Module enthält?

Aber lassen wir das; mit dem Y300 und Android hat das ganze eigentlich herzlich wenig zu tun. Fragen nach passenden Geräten für den von jtsn abgestrebten Einsatzzweck sollte man wohl eher vorab in entsprechenden Entwicklerforen stellen. ;)
 
Wenn jtsn wirklich aus den Sourcen einen kompatiblen Kernel gebaut hat, ist "fastboot boot custom-kernel" die praktikable Methode zum testen, so wie er es auch begründet hat. Verstehe nicht, dass man da jetzt darauf solange rum reitet ob es sinnvoll ist oder nicht - für einen Entwickler auf jeden Fall.
Und wenn Fastboot bei einem Gerät richtig implementiert ist (im Gegensatz zu den MTK Geräte, wo es kein Fastboot gibt), dann funktioniert es auch, den Kernel nur zu booten und nicht zu flashen. Habe ich auch zu Genüge schon gemacht - wenn auch nicht bei diesem Gerät.
 
Es wäre nie "herumgeritten" worden, wenn die gesamt Geschichte von Beginn an am Tisch gewesen wäre. Zudem ist die Frage durchaus berechtigt, ob man solche nicht besser in einem echten Entwicklerforum frägt, statt in einem de facto Benutzerforum halbe Geschichten zu erzählen und zu fragen.

Ob die Option "boot" (und oder weitere notwendige Features rund um die Sache) beim Y300 überhaupt (richtig) implementiert ist, kann doch hier keine wissen. ;) Zudem wurde bis heute nicht wirklich erzählt um welche Kernel es geht. So wie ich es sehe um solche die nichts mit dem Y300 und auch nichts mit Android zu tun haben. Also wäre es auch aus dieser Überlegung heraus wohl sinnvoll dort nachzufragen auf welchen Geräten man ARM-taugliche Kernel billig und zackig testen kann, wo sich auch die Entwickler dieser Kernel treffen. Denn der liebe jtsn wird ja nicht der erste Entwickler sein der auf die Idee kommt einen ARM-basierenden Androiden für diesen Zweck zu missbrauchen. :winki:

Langer Rede, kurzer Sinn: Wegen unvollständiger Angaben am falschen Ort wurde viel Zeit, Energie und Nerven verplempert, ohne das Problem auch nur ansatzweise gelöst zu haben! In der Schule gäb's dafür, vermutlich auch wegen der Themenverfehlung und des falschen Lösungsansatzes der Aufgabenstellung (wie soll denn ein Wald-und-Wiesen-Supportmitarbeiter so etwas beantworten können), eine 5.


P.s.: Ich verstehe die Motivation von jtsn das Y300 für seinen Zweck zu nutzen, kenne mich auch mit Fastboot leidlich aus, verstehe wie das mit dem "fliegenden Booten" eines OS abläuft das auf einem anderen Datenträger (als dem NAND-Flash(-Chip)) liegt (nahezu jeder der schon mal ein herstellerunabhängiges OS auf seinem NAS laufen ließ kennt das) usw. Es liegt also sicherlich nicht daran, dass ich für die Grundgeschichte zu blöde wäre.
 
Ob es jetzt sinnvoll war diese Frage hier in einem, war schon gesagt, eher benutzerlastigen forum zu stellen, sei jetzt mal dahingestellt. Trotzdem finde ich, dass das Problem im ersten post ausreichend genau beschrieben wurde und die Frage auch berechtigt ist.
 
Deine Methode mit dd Kernel und Ramdisk zu trennen, muss nicht immer gut gehen. Nimm mal dazu das angehängte unmkbootimg (für Linux). Und versuche es noch mal mit sauber getrennten Kernel und Ramdisk.

Wenn das nicht klappt dann gib auch mal die zusätzlichen Parameter an, wie base_addr und cmdline. Unmkbootimg zeigt sie dir beim Trennen an.

Ist jedoch auch keine Garantie. Kommt schon mal vor, dass Hersteller diese Funktion deaktivieren. In dem Fall müsstest du einen alternativen Weg suchen, geht dann natürlich nicht ohne installieren.
 

Anhänge

  • unmkbootimg.tar.gz
    271,3 KB · Aufrufe: 204
Zuletzt bearbeitet von einem Moderator:

Ähnliche Themen

P
Antworten
4
Aufrufe
2.056
email.filtering
E
moddingg33k
  • moddingg33k
Antworten
14
Aufrufe
3.956
Shadowghost
Shadowghost
moddingg33k
  • moddingg33k
Antworten
4
Aufrufe
1.541
moddingg33k
moddingg33k
Zurück
Oben Unten