Ich versuche, ein System für die Durchführung von Over-the-Air-Updates für APK und OS auf meinen Android-Geräten zu erstellen. Meine Frage bezieht sich auf den Teil der tatsächlichen Durchführung des Upgrades, nachdem die Pakete für OS und APK heruntergeladen wurden. Bitte beachten Sie Folgendes:
Zum APK-Update:
Ich habe das APK-Update tatsächlich versucht und erfolgreich durchgeführt, indem ich den Shell-Befehl ausgeführt habe pm install -r $PATH_TO_DOWNLOADED_APK
, nachdem ich die Shell aus Runtime.getRuntime().exec("su")
meinem App-Code erhalten habe.
Meine Fragen sind:
Bezüglich OS-Update:
Ich habe auf folgenden Link verwiesen: https://source.android.com/devices/tech/ota/ Allerdings habe ich es nicht ganz verstanden.
Meine Fragen sind:
pm install -r $PATH_TO_APK
im Falle von Betriebssystemaktualisierungen?Gibt es einen bestimmten Ordner, in dem ich das heruntergeladene Betriebssystempaket aufbewahren muss? Wenn ja, welcher Ordner ist das? Wenn nein, wie gebe ich den Pfad dazu an?
Android behält das heruntergeladene Paket in der Cache-Partition, da die Datenpartition heutzutage angeblich verschlüsselt ist und von Android nicht im Wiederherstellungsmodus gemountet werden kann, ohne den Entschlüsselungsschlüssel bereitzustellen, und es keine andere Partition gibt, die groß genug ist, um größere Dateien zu speichern. Verwenden Sie Root-Zugriff, um die Datei nach /cache zu verschieben. Möglicherweise müssen Sie auch die entsprechende Berechtigung dafür festlegen.
Wofür ist der entsprechende Befehl
pm install -r $PATH_TO_APK
im Falle von Betriebssystemaktualisierungen?
Die Betriebssystemaktualisierung erfolgt im Wiederherstellungsmodus (ein Barebone-Betriebssystem) und die Wiederherstellung kann eine Bestimmung enthalten, um die automatische Ausführung von Befehlen zu ermöglichen. Android Stock Recovery (<3e>) liest /cache/recovery/command und führt sie automatisch aus. Wenn es TWRP v2.1 oder höher ist, ist die Datei /cache/recovery/openrecoveryscript . Überprüfen Sie ihre Links, um mehr zu erfahren.
Wie starte ich ein Gerät im "Wiederherstellungsmodus", wie in Punkt 3 im Link erwähnt?
Meine Antwort hier hat es abgedeckt.
Wo befinden sich die Boot- und Wiederherstellungspartitionen im Gerät? Ist das von Gerät zu Gerät unterschiedlich? In einem der Geräte, die ich bei mir habe, sehe ich keinen /boot- oder /recovery-Ordner? Bedeutet Booten den Ordner / (Root)?
Sie variieren von Gerät zu Gerät, aber Sie finden die Cache-Partition, die unter /cache gemountet ist . Die Boot-Partition muss nicht gemountet werden, da ihr gesamter Inhalt während des Bootens automatisch in den Speicher geladen wird. Sie müssten im Internet suchen, um das Partitionsschema für Ihr spezielles Gerät zu finden. Izzys Fragen und Antworten könnten auch helfen.
Nein, Boot bedeutet nicht / Ordner. Es ist in Wirklichkeit nicht einmal ein Verzeichnis, sondern die Wurzel des größten Baums (Dateihierarchie), der bei jedem Start des Android erstellt und gefüllt wird.
Falls das Betriebssystem-Update aus irgendeinem Grund fehlschlägt (das Gerät wird während des Updates heruntergefahren, es gab ein Problem im Update-Paket usw.) – stellt Android ein ordnungsgemäßes Rollback sicher und dass sich das Gerät in einem konsistenten Zustand befindet und keine Daten verloren gehen?
Nein, wenn die Wiederherstellung mit der Änderung der Systempartition beginnt und unterbrochen wird, gibt es kein Zurück mehr. Selbst wenn der Vorgang normal abgeschlossen wird, kann es beim Startvorgang zu Problemen kommen .
Schließlich kann das Betriebssystem-Update/Upgrade überhaupt nicht als leise bezeichnet werden, da auf dem Bildschirm so viel passiert.
Feuerlord