Wer benötigt eine maßgeschneiderte Android-Betriebssystementwicklung?

„Android ist das Betriebssystem auf meinem Smartphone.“ (Oder auf der Smartwatch, eventuell im Armaturenbrett des Autos.)
Ja, genau. Es sei denn, Sie besitzen ein iPhone. Allerdings läuft Android auch auf vielen anderen Geräten mit Embedded-Software als Betriebssystem. Oft handelt es sich dabei um Nicht-Konsumentenprodukte, bei denen nicht offensichtlich ist, dass Android verwendet wird – etwa bei Kiosksystemen oder tragbaren Geräten im Gesundheitswesen. Statt eines Startbildschirms mit der gewohnten App-Auswahl werden solche Geräte häufig so konfiguriert, dass sie Android starten und direkt eine bestimmte, für das Gerät entwickelte App ausführen. Diese App läuft in der Regel zusammen mit Android-Systemdiensten, die ebenfalls speziell für das Gerät entwickelt wurden, um niedrigere Systemfunktionen mit erweiterten Berechtigungen auszuführen.
Um Android auf diese Weise zu nutzen, müssen Entwickler es an maßgeschneiderte Hardware anpassen. Das ist nicht die Art von App-Entwicklung, an die man üblicherweise bei Android denkt. Das Portieren und Unterstützen von Android auf neuer Hardware erfordert Android-OS-Entwicklung – eine deutlich seltenere Fachkompetenz.

Die wichtigsten Herausforderungen bei der Entwicklung maßgeschneiderter Android-Betriebssysteme

secure development blue

Einschränkungen aufgrund von Sicherheitsvorgaben

Die Nutzung von Android auf einem spezialisierten Gerät erfordert oft ein sorgfältiges Gleichgewicht zwischen Sicherheit und Funktionalität. Bestimmte Funktionen, die in der Haupt-App benötigt werden, müssen häufig in einen separaten Android-Dienst ausgelagert werden, der mit Systemberechtigungen ausgeführt werden kann. In der Regel sind anschließend angepasste SELinux-Richtlinien erforderlich, um dem Dienst den Zugriff auf die benötigten Dateien oder Geräteknoten im System zu ermöglichen und so spezielle Hardware zu steuern.
secure architecture blue

Schwieriger anzupassen

Bei einem spezialisierten Gerät enthält die AOSP-Quellsammlung (Android Open Source Project) zahlreiche Apps und Dienste, die für den vorgesehenen Zweck nicht benötigt werden. In der Regel ist es am besten, einen Großteil davon aus dem Build des Betriebssystems für die jeweilige Gerätekonfiguration zu entfernen. Die AOSP ist eine äußerst umfangreiche Codebasis, die aus Hunderten von Git-Repositories besteht. Änderungen an HALs und Java-Frameworks können sich über weite Teile dieses Codes erstrecken, und alle vorgenommenen Anpassungen müssen anschließend in lokalen Forks der betroffenen Repositories gepflegt werden.
performances blue

Leistung

Aufgrund der großen Bandbreite an integrierten Funktionen verfügt Android über viele Schichten und laufende Dienste, die die Leistung beeinträchtigen können. Es ist zwar möglich, das System für eine hohe Performance zu konfigurieren, doch erfordert dies viel Erfahrung, um zu wissen, was und wo genau geändert werden muss – insbesondere angesichts der enormen Größe der Codebasis.

3 Schlüsselelemente, die Sie für die Entwicklung eines maßgeschneiderten Android-Betriebssystems benötigen

Android

Ein Android-BSP (Board Support Package)

Die einfachste Lösung besteht darin, den Android-Betriebssystem-Quellcode bereits so eingerichtet zu haben, dass er auf Ihrer individuellen Hardware oder auf einer möglichst ähnlichen Plattform läuft. Genau hier kommt ein Android Board Support Package (BSP) ins Spiel. Witekio verfügt über umfangreiche Erfahrung in der Bereitstellung von Android-BSPs im Auftrag von Chip- und Board-Herstellern sowie in der Entwicklung maßgeschneiderter BSPs für Gerätehersteller.

Eine Liste der Anforderungen für den Android-Port

Es ist wichtig, alle von Android bereitgestellten Funktionen zu identifizieren, die auf Ihrem Gerät unterstützt werden sollen, und diese Arbeit im Voraus zu planen. Dies ist eine bewährte Vorgehensweise in jedem Entwicklungsprojekt, aber aufgrund der Größe und Komplexität des Android-Betriebssystems ist es besonders entscheidend, den gesamten Arbeitsumfang frühzeitig festzulegen, um Verzögerungen am Projektende zu vermeiden.

Erfahrung

Wie bereits erwähnt, ist die effektive Anpassung des Android-Betriebssystems eine deutlich seltenere Fähigkeit als die App-Entwicklung. Dafür ist umfangreiche Erfahrung mit den zahlreichen Zwischenschichten des Java-Framework-Codes, den tieferliegenden HAL-Bibliotheken sowie den für Android spezifischen IPC-Mechanismen erforderlich, die für die Kommunikation zwischen diesen Komponenten genutzt werden. Ebenso notwendig sind Kenntnisse in der Erstellung von SELinux-Richtlinien und bei Änderungen der Standardeinstellungen in den XML-Konfigurationsdateien des Geräts.

SUCCESS STORY

Datalogic, entwickeln Sie eine brandneue Android-Datenerfassungslösung

Die Entwicklung des Datalogic DL-Axist™, eines robusten PDAs mit fortschrittlicher Barcode-Datenerfassungs- und Imaging-Technologie, stellte das Team vor mehrere Herausforderungen. Dazu gehörten die nahtlose Portierung von Android KitKat, die Hardware-Integration mit Linux sowie Verbesserungen in Zuverlässigkeit und Energiemanagement. Um diese Anforderungen zu erfüllen, suchte Datalogic einen Partner mit fundiertem Fachwissen in der Android- und Linux-Entwicklung sowie Erfahrung mit Texas Instruments OMAP™-Architekturen. Witekio lieferte eine umfassende Lösung: ein maßgeschneidertes und zuverlässiges BSP für Android KitKat, die Integration der erforderlichen Hardware in Linux, die Unterstützung von PMIC- und Gas-Gauge-Controllern, die Erweiterung der Android-Hardware-Abstraktionsschicht sowie die Optimierung des Energiemanagements. Diese Zusammenarbeit stellte sicher, dass der DL-Axist seine technischen Anforderungen mit verbesserter Leistung und Zuverlässigkeit erfüllte.

Bewährte Vorgehensweisen für die Entwicklung maßgeschneiderter Android-Betriebssysteme auf Embedded-Plattformen

Um die Sicherheitsvorteile eines auf Android basierenden Geräts optimal zu nutzen, ist es wichtig, nach Möglichkeit stets mit der neuesten Hauptversion Schritt zu halten. Dies lässt sich erleichtern, indem die zur Unterstützung Ihrer Hardware notwendigen Anpassungen sorgfältig geplant und – wo immer möglich – auf das Gerätekonfigurations-Repository beschränkt werden. Je weniger Repositories in der AOSP geändert werden müssen, desto weniger Forks müssen Sie selbst pflegen und hosten. Außerdem verringert eine geringere Anzahl modifizierter Repositories das Risiko von Kompatibilitätsproblemen beim Übertragen dieser Anpassungen auf die nächste Android-Version.
Bei Änderungen zur Portierung des Betriebssystems und zur Unterstützung neuer Funktionen ist es verlockend, SELinux zu deaktivieren, um Sicherheitsverletzungen zu vermeiden, die bestimmte Funktionen blockieren könnten. Wenn SELinux jedoch deaktiviert bleibt, wächst der Aufwand am Ende des Projekts erheblich, da alle Richtliniendateien angepasst werden müssen, um SELinux wieder aktivieren zu können, ohne die neu hinzugefügte Funktionalität zu beeinträchtigen. Dies kann zu erheblichen Verzögerungen führen – oder zur Entscheidung, SELinux deaktiviert zu lassen und dennoch zu veröffentlichen, was gravierende Sicherheitslücken im Gerät hinterlässt. Stellen Sie daher sicher, dass dieser Punkt in den Anforderungen berücksichtigt und in die Projektplanung integriert wird, um spätere Verzögerungen zu vermeiden.
Bei der Entwicklung einer App für ein kundenspezifisches Gerät ist es oft verlockend, die von Android bereitgestellten App-APIs zu umgehen, um etwas Spezifisches direkt zu steuern – beispielsweise durch das direkte Öffnen einer Datei oder eines Geräteknotens. Davon ist jedoch abzuraten. Stattdessen sollte nach Möglichkeit Unterstützung über bestehende HAL-Schnittstellen und offizielle APIs hinzugefügt werden. Zum einen, weil es aufgrund immer strengerer Sicherheitsrichtlinien in neueren Android-Versionen zunehmend schwieriger wird, solche Abkürzungen zu nutzen. Zum anderen werden Ihre Apps dadurch portabler, was eine sauberere Plattformstrategie und einen einfacheren Upgrade-Pfad auf neuere Android-Versionen ermöglicht (vorausgesetzt, Sie befolgen auch den ersten Punkt oben).

Warum Android auf Embedded-Geräten ausführen?

Sobald Android auf Ihrem Gerät läuft, können Apps auf die gewohnte Weise entwickelt werden – unter Verwendung klar definierter, gut dokumentierter APIs und Abstraktionsschichten, die es ermöglichen, diese Apps mit minimalen Anpassungen auf jedem Android-Gerät auszuführen. In der Praxis wird die Geräteanwendung häufig von einem separaten „App-Team“ entwickelt, das parallel auf einem vorhandenen Android-Consumer-Gerät arbeiten und testen kann, bis das kundenspezifische Gerät mit dem Android-Port bereit ist. Zudem sind Entwickler mit Erfahrung in der Android-App-Entwicklung wesentlich leichter zu finden und einzustellen.
Moderne Geräte benötigen häufig eine ähnliche Grundausstattung an Funktionen, wie zum Beispiel:

Sicherheit – Ältere Versionen von Android (wie viele Betriebssysteme) enthalten im Laufe der Zeit identifizierte Schwachstellen. Insgesamt bietet das Android-Betriebssystem jedoch standardmäßig ein gutes Sicherheitsniveau:
  • SELinux für obligatorische Zugriffskontrollen auf alle Dateien und Ressourcen
  • Apps sind in separate Laufzeitsandboxes mit eigenen Benutzer- und Gruppen-IDs unterteilt, um Zugriffspolicies durchsetzen zu können
  • Trusted Execution Environment-Unterstützung auf Basis von Trusty OS, mit APIs, um es auf bekannte und konsistente Weise für eine Reihe gängiger Anwendungsfälle zu nutzen
  • Sicherer Start (Secure Boot) – verhindert, dass inoffizieller oder schädlicher Code auf Ihrem Gerät ausgeführt wird. Android bietet dies über Android Verified Boot (AVB), ein generisches Framework, das die Secure-Boot-Mechanismen der jeweiligen, von Android unterstützten System-on-Chips nutzt.

Over-the-Air-Update – Software auf dem Gerät ruft Updatepakete ab, authentifiziert sie sicher und installiert sie anschließend. Darüber hinaus wird standardmäßig eine Partitionierung eingerichtet, die zwei Kopien jeder schreibgeschützten Partition enthält. Der Standard-Installer aktualisiert nur die inaktive Kopie – für A:B-Rollback-Schutz im Falle eines fehlerhaften Updates

Netzwerkverwaltung – Ermöglicht es dem Benutzer oder der Geräteanwendungssoftware, festzulegen, wie Adressen für WLAN-, Mobilfunk- und Ethernet-Schnittstellen auf dem Gerät eingerichtet werden. Ebenfalls enthalten ist ein RF-Killswitch für den „Flugmodus“.

Akkulade- und Energiemanagement – Wird in der Produktentwicklung oft übersehen, kann aber zu Problemen führen, wenn es nicht korrekt umgesetzt wird. Android bietet hierfür umfangreiche integrierte Unterstützung.

Auch wenn diese Funktionen für ein bestimmtes System angepasst werden müssen, bietet ihre standardmäßige Integration einen erheblichen Vorsprung. Entwickler, die Geräte mit anderen Betriebssystemen erstellen, müssen häufig Zeit in die Recherche entsprechender Lösungen investieren – oder schlimmer noch, „das Rad neu erfinden“ und neue Software für Funktionen schreiben, die jedes IoT-Gerät benötigt, die aber keinen echten Mehrwert bieten, außer das Gerät sicher, online und betriebsbereit zu halten.

Witekio kann Sie unterstützen bei der Entwicklung Ihres maßgeschneiderten Android-Betriebssystems

Witekio kann alle oben genannten Aufgaben für Sie übernehmen und ein funktionsfähiges Android-Build mit allen erforderlichen Funktionen für Ihre Hardware bereitstellen. So vermeiden Sie, Zeit in den Aufbau dieses spezialisierten Know-hows im eigenen Haus investieren zu müssen, und Ihr Team kann sich stattdessen auf den zentralen Mehrwert Ihres Produkts konzentrieren.

Im Laufe der Zeit haben wir starke Partnerschaften mit führenden Herstellern von Mikroprozessoren, Mikrocontrollern und Referenz-Boards aufgebaut, auf denen unsere Kunden ihr Android-Betriebssystem entwickeln. Marktführer wie Texas Instruments haben sich auf Witekio verlassen, um die Android-KitKat- und Android-Marshmallow-BSPs für ihre Sitara-basierten Plattformen zu entwickeln. Zahlreiche Unternehmen haben zudem innovative Produkte auf Basis unserer BSPs für die TI-AM335x-, TI-AL437x- und TI-AM57x-Prozessoren auf den Markt gebracht, die auf der Witekio-Website zum Self-Service-Download verfügbar sind.

Unsere Embedded-Software-Expertise

Buildroot

osmigration

SecureBoot

Witekio The Embedded Kit teams

Ihr vertrauenswürdiger Partner für Embedded-Software, Anwendungen und Konnektivität

flag_line

4 Länder

4 Länder

iso_27001_02-1024x704

ISO 27001 zertifiziert

ISO 27001 zertifiziert

Avnet_logo

Fortune 500

Fortune 500