{"id":8139,"date":"2025-11-29T14:53:15","date_gmt":"2025-11-29T13:53:15","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=8139"},"modified":"2026-02-11T05:26:37","modified_gmt":"2026-02-11T04:26:37","slug":"android-firmware-updates-over-the-air","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/android-firmware-over-the-air-updates\/","title":{"rendered":"Android firmware over-the-air updates"},"content":{"rendered":"<h2>Die Frage nach einem modernen Update-Mechanismus und Androids Antwort<\/h2>\n<p>Autoren: Matthias Schaff und Dominik Helleberg, inovex GmbH<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2015<\/h3>\n<p><strong>Im Embedded-Bereich gibt es kaum ein Lastenheft ohne die Anforderung, die Firmware eines linuxoiden, eingebetteten Systems im Feld aktualisieren zu k\u00f6nnen. Die Umsetzung hierf\u00fcr ist vielf\u00e4ltig: Vom Vor-Ort-Termin eines Technikers \u00fcber das Versenden von CF-Cards bis hin zur Selbst-Flash-Anleitung f\u00fcr den Kunden ist alles dabei. Im Zeitalter des IoT, von Industrie 4.0 und der damit Einzug haltenden allgemeinen Vernetzung der Komponenten erscheinen diese Vorgehensweisen geradezu antiquiert. Ein moderner Update-Mechanismus arbeitet vollautomatisch, w\u00e4hrend weder Sicherheit noch Stabilit\u00e4t des Prozesses darunter leiden. Im Folgenden wollen wir neben den Anforderungen an solch einen Prozess kurz verschiedene Update-Architekturen besprechen, um abschlie\u00dfen den Android FOTA-Prozess im Detail zu beleuchten.<\/strong><\/p>\n<h2>Anforderungen<\/h2>\n<p>Die dominierende Anforderung an einen FOTA-Mechanismus ist Stabilit\u00e4t. Darunter fallen Punkte wie das \u00dcberstehen von Stromausf\u00e4llen w\u00e4hrend des Update-Vorgangs und der Umgang mit fehlerhaften Update-Paketen (bedingt durch \u00dcbertragungs- oder Speicherfehler). Neben der Stabilit\u00e4t ist Sicherheit von zentraler Bedeutung: Nur echte, vom Hersteller passend signierte FOTA-Updates sollen akzeptiert werden, und der Vorgang soll keine Einfallstore f\u00fcr Angreifer \u00f6ffnen.<\/p>\n<p>Bei der Bewertung verschiedener Update-Architekturen ist zu beachten, dass die Komponenten eines eingebetteten Systems mit unterschiedlichen Update-Risiken verbunden sind. Ebenso ist die zu erwartende Update-H\u00e4ufigkeit von Komponente zu Komponente unterschiedlich. Je n\u00e4her sich eine Komponente an der Hardware befindet, desto seltener wird sie upgedatet, aber desto h\u00f6her ist das Risiko. Jede Update-Architektur positioniert sich hierbei unterschiedlich in der Abw\u00e4gung zwischen H\u00e4ufigkeit und Risiko. Welcher Fokus dabei der Richtige ist, l\u00e4sst sich nicht pauschal sagen, sondern ist von Fall zu Fall individuell zu entscheiden.<\/p>\n<h2>G\u00e4ngige Update-Architektur<\/h2>\n<p>Im Folgenden sollen drei Update-Architekturen genauer dargestellt und deren Vor- und Nachteile kurz erl\u00e4utert werden. In allen F\u00e4llen ist der Ablauf \u00e4hnlich: Das System, welches aktualisiert werden soll, initiiert den Updateprozess, nachdem es erfolgreich ein Update-Paket heruntergeladen und ggf. verifiziert hat. Dabei wird in einem vom Bootloader zug\u00e4nglichen persistenten Speicher des aktuell laufenden Systems eine Boot-Markierung (boot-flag) gesetzt und anschlie\u00dfend ein Reboot initiiert. Der Bootloader \u00fcberpr\u00fcft das boot-flag und startet ggf. den Update-Vorgang. Erst nach einem erfolgreichen Boot des upgedateten Systems wird das boot-flag wieder zur\u00fcckgesetzt.<\/p>\n<h2>Der Bootloader als Updater<\/h2>\n<p>Der Bootloader agiert als eigenst\u00e4ndiger Updater. Moderne Bootloader k\u00f6nnen auf block- oder flashbasierte Dateisysteme zugreifen und eignen sich daher als Updater. Jedoch mangelt es in einer so eingeschr\u00e4nkten Arbeitsumgebung normalerweise an notwendigen Werkzeugen, um einen stabilen Updateprozess durchzuf\u00fchren. Grunds\u00e4tzlich kann diese Funktionalit\u00e4t komplett im Bootloader integriert werden, jedoch ist dabei zu beachten, dass der Bootloader nicht ohne Grund so minimalistisch gehalten ist: Er ist ein elementarer Teil eines Systems, und jedes Feature ist eine potentielle Fehlerquelle, zudem ist ein Bootloader-Update risikoreich. Daher sollte man davon absehen, weitere Komplexit\u00e4t in den Bootloader zu bringen, und stattdessen das eigentliche Update einem daf\u00fcr besser geeignetem Systemteil \u00fcberlassen.<\/p>\n<h2>OS-Switching Architektur<\/h2>\n<p>Das eingebettete System enth\u00e4lt zwei komplett funktionsf\u00e4hige Betriebssysteme inklusive aller Devicetreiber und jeweils einem Kernel. Es ist je nur eine Version des Betriebssystems gebootet, und diese kann damit das aktuell inaktive System aktualisieren. Das boot-flag zeigt dabei an, welches der beiden Systeme gebootet werden soll. Erst nach einem erfolgreichen Flashvorgang und dem erfolgreichen Abgleich der Pr\u00fcfsumme wird das boot-flag getoggelt. Damit ist stets eine funktionsf\u00e4hige Systemversion vorhanden. Im Fehlerfall kann jederzeit wieder auf die Vorg\u00e4ngerversion zur\u00fcckgewechselt werden. Das System ist immer im normalen Betriebsmodus, die Ausfallzeiten durch das Update sind minimal und der Bedarf an Speicherplatz verdoppelt sich.<\/p>\n<h2>Recovery OS-Architektur<\/h2>\n<p>Diese Architektur \u00e4hnelt der &#8222;OS-Switching&#8220; Architektur, mit dem Unterschied, dass nur ein System \u00fcber den vollen Funktionsumfang verf\u00fcgt, das Zweite dient nur dem Updatevorgang. Dazu beinhaltet es einen eigenen Kernel und alle Devicetreiber, aber nur eine kleine Anzahl Userland-Tools, die Funktionalit\u00e4ten wie Flashen und Verifizieren abdecken. Meist wird das Recovery-OS wird vom Haupt-OS aktualisiert, welches ebenfalls die notwendigen Tools beinhaltet.<\/p>\n<h2>Der Android-Updateprozess<\/h2>\n<p>Der Android-Updateprozess basiert auf der zuletzt vorgestellten Recovery-OS-Architektur. Dabei l\u00e4sst sich der gesamte Prozess in vier Stufen aufteilen, die untereinander eng verzahnt sind und ineinander greifen. Das Ergebnis ist ein sehr robuster, sicherer und flexibler Updateprozess, der sich in der Praxis schon millionenfach bew\u00e4hrt hat.<\/p>\n<p>Der Android-Updateprozess ist best\u00e4ndig gegen \u00dcbertragungsfehler und Unterbrechungen und stellt die Integrit\u00e4t und Authentizit\u00e4t von Update-Paketen sicher. Zudem sind die Update-Pakete auf minimale Gr\u00f6\u00dfe getrimmt, um die zu \u00fcbertragende Datenmenge so klein wie m\u00f6glich zu halten (Delta-Updates). Die genaue Umsetzung wollen wir im Folgenden betrachten.<\/p>\n<h2>Das Android Update-Paket<\/h2>\n<p>Das Paketformat f\u00fcr ein Android-Update ist ein gew\u00f6hnliches, digital signiertes ZIP-Archiv. Die Partitionen und Verzeichnisstrukturen des Android-Systems finden sich auch im Update-Paket wieder: Das &#8222;recovery-Verzeichnis enth\u00e4lt die Updates des Recovery-OS, das &#8222;system&#8220;-Verzeichnis analog alles f\u00fcr das Android-OS.<\/p>\n<p>Kernel und\u00a0 &#8222;root&#8220; Dateisystem des Android-OS werden als &#8222;boot.img&#8220; ausgeliefert. Da sich Recovery-OS und &#8222;root&#8220; Dateisystem des Android-OS nur minimal unterscheiden, wird das Recovery-OS als Bin\u00e4r-Diff aus dem boot.img generiert.<\/p>\n<p>Das Verzeichnis &#8222;META-INF&#8220; enth\u00e4lt neben den Signaturinformationen, sowie dem Public-Key zur Verifikation eine Datei namens &#8222;updater-script&#8220;. Dieses Script beschreibt in Androids &#8222;edify&#8220; Scriptspache jeden der einzelnen Schritte des Updates. &#8222;edify&#8220; wurde extra f\u00fcr Update-Aufgaben geschaffen, um unter anderem ein einfaches Mounten, Formatieren, Kopieren und Patchen von Partitionen bzw. Dateien zu erm\u00f6glichen.<\/p>\n<p>Als letzter relevanter Teil des Update-Pakets ist die Binary &#8222;update-binary&#8220; zu nennen. Diese ist der Script Interpreter, welcher das edify Script ausf\u00fchrt. Dieser wird von Recovery-OS gestartet und f\u00fchrt das eigentliche Update aus. Durch diesen Aufbau ist das Update-Paket an keine bestimmte Recovery-OS-Version gebunden.<\/p>\n<p>Das Update-Paket ist ein Build Artefakt aus dem Android AOSP Buildsystem und wird vollkommen automatisch erzeugt. F\u00fcr ger\u00e4tespezifische Anpassungen verf\u00fcgt das Buildsystem \u00fcber entsprechende Schnittstellen f\u00fcr Plugins. Bei der Erstellung eines Update-Pakets kann einen Ausgangsversion mit angegeben werden. So kann das Buildsystem ein inkrementelles Update erzeugen, welches nur Unterschiede zur Ausgangsversion enth\u00e4lt. In diesem Fall wird pro Datei nur ein Bin\u00e4r-Diff zur entsprechenden Vorg\u00e4ngerversion als Patch im Update-Paket gespeichert, was gerade bei kleinen Bugfix-Firmware-Updates die Dateigr\u00f6\u00dfen extrem reduziert.<\/p>\n<h2>Der Android-Updateprozess in Schritten<\/h2>\n<p><strong>Teil 1 &#8211; Android-OS: Herunterladen, Verifizieren, Neustarten<\/strong><\/p>\n<p>Android macht keine Vorgaben, wie das Update-Paket auf das System kommt. Im Normalfall \u00fcberpr\u00fcft eine App bei bestehender Internetverbindung ob ein neues Update-Paket auf einem zuvor konfiguriertem Update-Server verf\u00fcgbar ist. Ist das der Fall, so wird es nach einer expliziten Best\u00e4tigung des Users heruntergeladen. Da es sich nur um ein Zip-Archiv handelt, kann es sowohl via USB als auch \u00fcber eine SD-Karte auf das System gebracht werden.<\/p>\n<p>Anschlie\u00dfend wird die digitale Signatur des Update-Pakets mittels\u00a0<span class=\"quellcode\">RecoverySystem.verifyPackage()<\/span>\u00a0kontrolliert, bevor die Installation startet. Die Signatur wird gegen die OTA-Public-Keys [1], welche im Android-OS hinterlegt sind, \u00fcberpr\u00fcft. Folglich kann man nur ein g\u00fcltiges Update-Paket erzeugen, wenn man \u00fcber die entsprechenden Private-Keys verf\u00fcgt.<\/p>\n<p>Bei passender Signatur wird mittels\u00a0<span class=\"quellcode\">RecoverySystem.installPackage()<\/span>\u00a0der Installationsvorgang gestartet. Dieser Aufruf erzeugt zun\u00e4chst eine command &#8211; Datei [2], welche die vom Recovery-OS auszuf\u00fchrenden Aktionen enth\u00e4lt. In unserem Falle w\u00e4re der Inhalt beispielsweise &#8220; &#8211;update-package=\/data\/update.zip&#8220;.<\/p>\n<p>Im letzten Schritt des ersten Teils wird mit\u00a0<span class=\"quellcode\">PowerManager.reboot(PowerManager.REBOOT_RECOVERY)<\/span>\u00a0das boot-flag gesetzt und ein Reboot ins Recovery-OS angesto\u00dfen. Das boot-flag selbst wird erst beim Kernelaufruf f\u00fcr den Reboot gesetzt.<\/p>\n<p><strong>Teil 2 &#8211; Recovery-OS: Verifizieren, Entpacken, Ausf\u00fchren<\/strong><\/p>\n<p>Beim Bootvorgang wertet der Bootloader das boot-flag aus und bootet entsprechend das Recovery-OS, welches am Ende die &#8222;recovery&#8220; Binary startet. Diese verifiziert nun die Signatur des Update-Pakets erneut, nun jedoch gegen die Recovery-OS gespeicherten Public-Keys [3]. Bei Erfolg wird nun die update-binary aus dem Update-Paket entpackt und ausgef\u00fchrt.<\/p>\n<p><strong>Teil 3 &#8211; Update-Binary: Update Einspielen<\/strong><\/p>\n<p>Die update-binary beginnt nun mit der Interpretation des update-script [4] und f\u00fchrt die somit eigentliche Aktualisierung des Android-OS aus. Im Falle eines inkrementellen Updates wird die zu patchende Datei zun\u00e4chst kopiert, dann gepatched und eine Pr\u00fcfsumme gebildet. Nur wenn diese mit der im update-script angegebenen Pr\u00fcfsummer \u00fcbereinstimmt, wird die gepatchte Datei zur\u00fcckgeschrieben. Da sich das Recovery-OS nicht selbst im laufenden Betrieb flashen kann, werden hier der Patch, welcher das Recovery-OS aus dem boot.img erzeugt, sowie ein Shellscript[5], welches diesen Patch anwendet, auf die Systempartition des Android-OS geschrieben.<\/p>\n<p>Nach erfolgreichem Update geht der Kontrollfluss zur\u00fcck zur recovery Binary, welche das boot-flag wieder zur\u00fccksetzt und einen Reboot initiiert.<\/p>\n<p><strong>Teil 4 &#8211; Android-OS: Recovery updaten und aufr\u00e4umen<\/strong><\/p>\n<p>Der Bootloader startet nun das aktualisierte Android-OS zum ersten Mal. W\u00e4hrend des Init-Prozesses wird nun das im Recovery-OS kopierte Shellscript zur Installation des Recovery-OS ausgef\u00fchrt. Dieses berechnet die Pr\u00fcfsumme der Recovery-OS-Partition. Sollte diese nicht dem neuen Recovery-OS entsprechen, so wird es nun aktualisiert. Abschlie\u00dfend wird das Update-Paket selbst gel\u00f6scht, und das System kann wieder seinen normalen\u00a0 Betrieb aufnehmen.<\/p>\n<h2>Quellen<\/h2>\n<p>[1] siehe \/system\/etc\/security\/otacerts.zip<br \/>\n[2] siehe \/cache\/recovery\/command<br \/>\n[3] siehe \/res\/keys<br \/>\n[4] siehe im Update Paket unter META-INF\/com\/google\/android\/update-binary<br \/>\n[5] siehe \/system\/etc\/install-recovery.sh<\/p>\n<p><a title=\"Android Firmware Over-the-Air Updates (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_open_source_android_firmware_over-the-air_updates_inovex_schaffhelleberg.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Beitrag als PDF downloaden<\/strong><\/a><\/p>\n<hr \/>\n<h2>Open Source &#8211; unsere Trainings &amp; Coachings<\/h2>\n<p><strong>Wollen Sie sich auf den aktuellen Stand der Technik bringen?<\/strong><\/p>\n<p>Dann informieren Sie sich\u00a0<a title=\"MicroConsult Training\" href=\"https:\/\/www.microconsult.de\/alle-trainings-termine-komplettuebersicht\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>zu Schulungen\/ Seminaren\/ Trainings\/ Workshops und individuellen Coachings von MircoConsult zum Thema Open Source \/ Embedded Software Engineering.<\/p>\n<p><strong>Training &amp; Coaching zu den weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Training &amp; Beratung - alle Themen\" href=\"https:\/\/www.microconsult.de\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Open Source &#8211; Fachwissen<\/h2>\n<p>Wertvolles Fachwissen zum Thema Modellierung \/Embedded- und Echtzeit-Softwareentwicklung steht\u00a0<a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>f\u00fcr Sie zum kostenfreien Download bereit.<\/p>\n<p><a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>Zu den Fachinformationen<\/strong><\/a><\/p>\n<p><strong>Fachwissen zu weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Fachinformationen\" href=\"https:\/\/www.microconsult.de\/fachwissen\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Frage nach einem modernen Update-Mechanismus und Androids Antwort Autoren: Matthias Schaff und Dominik Helleberg, inovex GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2015 Im Embedded-Bereich gibt es kaum ein Lastenheft ohne die Anforderung, die Firmware eines linuxoiden, eingebetteten Systems im Feld aktualisieren zu k\u00f6nnen. Die Umsetzung hierf\u00fcr ist vielf\u00e4ltig: Vom Vor-Ort-Termin eines Technikers \u00fcber [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-8139","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Firmware Over-the-Air Updates - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/android-firmware-updates-over-the-air\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Firmware Over-the-Air Updates - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Die Frage nach einem modernen Update-Mechanismus und Androids Antwort Autoren: Matthias Schaff und Dominik Helleberg, inovex GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2015 Im Embedded-Bereich gibt es kaum ein Lastenheft ohne die Anforderung, die Firmware eines linuxoiden, eingebetteten Systems im Feld aktualisieren zu k\u00f6nnen. Die Umsetzung hierf\u00fcr ist vielf\u00e4ltig: Vom Vor-Ort-Termin eines Technikers \u00fcber [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/android-firmware-updates-over-the-air\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T13:53:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-11T04:26:37+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/android-firmware-over-the-air-updates\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/android-firmware-over-the-air-updates\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"Android Firmware Over-the-Air Updates\",\"datePublished\":\"2025-11-29T13:53:15+00:00\",\"dateModified\":\"2026-02-11T04:26:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/android-firmware-over-the-air-updates\\\/\"},\"wordCount\":1595,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/android-firmware-over-the-air-updates\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/android-firmware-over-the-air-updates\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/android-firmware-over-the-air-updates\\\/\",\"name\":\"Android Firmware Over-the-Air Updates - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T13:53:15+00:00\",\"dateModified\":\"2026-02-11T04:26:37+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/android-firmware-over-the-air-updates\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/android-firmware-over-the-air-updates\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/android-firmware-over-the-air-updates\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android Firmware Over-the-Air Updates\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Firmware Over-the-Air Updates - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/android-firmware-updates-over-the-air\/","og_locale":"en_GB","og_type":"article","og_title":"Android Firmware Over-the-Air Updates - MicroConsult Academy GmbH","og_description":"Die Frage nach einem modernen Update-Mechanismus und Androids Antwort Autoren: Matthias Schaff und Dominik Helleberg, inovex GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2015 Im Embedded-Bereich gibt es kaum ein Lastenheft ohne die Anforderung, die Firmware eines linuxoiden, eingebetteten Systems im Feld aktualisieren zu k\u00f6nnen. Die Umsetzung hierf\u00fcr ist vielf\u00e4ltig: Vom Vor-Ort-Termin eines Technikers \u00fcber [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/android-firmware-updates-over-the-air\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T13:53:15+00:00","article_modified_time":"2026-02-11T04:26:37+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/android-firmware-over-the-air-updates\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/android-firmware-over-the-air-updates\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"Android Firmware Over-the-Air Updates","datePublished":"2025-11-29T13:53:15+00:00","dateModified":"2026-02-11T04:26:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/android-firmware-over-the-air-updates\/"},"wordCount":1595,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/android-firmware-over-the-air-updates\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/android-firmware-over-the-air-updates\/","url":"https:\/\/www.microconsult.de\/android-firmware-over-the-air-updates\/","name":"Android Firmware Over-the-Air Updates - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T13:53:15+00:00","dateModified":"2026-02-11T04:26:37+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/android-firmware-over-the-air-updates\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/android-firmware-over-the-air-updates\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/android-firmware-over-the-air-updates\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Android Firmware Over-the-Air Updates"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=8139"}],"version-history":[{"count":7,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8139\/revisions"}],"predecessor-version":[{"id":11612,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8139\/revisions\/11612"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=8139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=8139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=8139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}