Shell-Skript zum Neustart in die Wiederherstellung und zum Installieren von zip

Okay, ohne zu tief ins Detail zu gehen, möchte ich die Installation einer flashbaren Zip-Datei automatisieren (muss von der Wiederherstellung geflasht werden). Im Moment kann ich den Befehl „Reboot Recovery“ in einem Shell-Skript verwenden, um mich in TWRP zu bringen, aber ich bin mir nicht sicher, wie ich TWRP anweisen soll, etwas automatisch zu installieren.

Ich weiß, dass dies möglich ist, weil Cyanogenmod genau das mit seinem ROM-Update-Dienstprogramm macht. Sobald ein ROM-Update heruntergeladen wurde, klicken Sie in CM auf „Neu starten und installieren“, das Telefon wird in TWRP neu gestartet, die Installation der flashbaren Zip-Datei beginnt und nach Abschluss wird das Telefon wieder in CM neu gestartet.

Ich weiß nicht, ob ich den Pfad der Datei einfach mit einem bestimmten Schalter an den Befehl "reboot" anhängen kann? Ich konnte keine Dokumentation zu den verfügbaren Optionen finden. Ich dachte auch, dass TWRP beim Start vielleicht nach einer update.zip-Datei sucht?

Weiß jemand, wie das geht?

Antworten (1)

Am Ende habe ich mir den Quellcode von Cyanongenmod angesehen und herausgefunden, wie sie es gemacht haben.

Hier ist mein funktionierendes .sh-Skript:

echo 'boot-recovery ' > /cache/recovery/command
echo '--update_package=/sdcard/update.zip' >> /cache/recovery/command
reboot recovery

Aktualisieren:

Mit Android JellyBean [4.1] und späteren Versionen befinden sich die SD-Kartendaten jetzt unter /sdcard/0. Der zweite Befehl muss also lauten:

echo '--update_package=/sdcard/0/update.zip' >> /cache/recovery/command
Ich habe diesen Fehler: E: /sdcard kann nicht gemountet werden (keine solche Datei oder kein Verzeichnis) ---- E: /sdcard/0/update.zip kann nicht gemountet werden ----- Installation abgebrochen.
Ihr Gerät verwendet diesen Symlink "/sdcard/" dann möglicherweise nicht. Versuchen Sie es stattdessen mit „/mnt/sdcard/update.zip“. Alle Speichergeräte sollten irgendwo in „/mnt/“ auftauchen, verwenden Sie einen Root-Dateimanager oder Terminalemulator, um alle verfügbaren Optionen aufzulisten.
Ich kann im Terminal auf mnt/sdcard zugreifen, aber als ich diesen Fehler im Wiederherstellungsmodus erhielt: Finding update package...... E:unknown volume for path [/mnt/sdcard/update.zip] ...... /mnt/sdcard/update.zip kann nicht gemountet werden
Eine Sache, die Sie als nächstes versuchen können, ist das Durchsuchen Ihrer Stammverzeichnisstruktur direkt aus der Wiederherstellung. Sowohl in TWRP als auch in ClockworkMod kann die Funktion „Install from Zip“ als Verzeichnis-Browser fungieren. Navigieren Sie durch Ihre Stammverzeichnisse (installieren Sie hier natürlich keine Zips) und sehen Sie nach, ob Sie auf Unterverzeichnisse stoßen, die zu Ihrem gewünschten Speicherort führen. Auf meinem Gerät konnte ich keine alternativen Pfade finden; "/sdcard" ist meine einzige Option. Wenn Sie Ihre SD-Karte nicht finden können, würde ich sagen, vergessen Sie einfach, von diesem Ort aus zu blinken. Kopieren Sie die ZIP-Datei, die Sie flashen, nach „/cache“ und machen Sie Schluss damit.