Wenn wir von Digital Signage mit Android reden, meinen wir in der Regel einen sogenannten Digital Signage Player. In diesem Beitrag lernen Sie eine Methode kennen, aus fast jedem Android ab Version 7 einen automatisierbaren, gut abgesicherten Medienplayer zu bauen. Ferner erfahren technisch Interessierte auch jede Menge an Hintergrundinformationen.
Technische Grundlagen Android
Android ist eine Benutzeroberfläche für Mobilsysteme, basierend auf einem Linuxkernel. Aus rein technischer Sicht eignet sich so ein System eigentlich nicht für den Einsatz in Digital Signage Geräten. Aber es gibt Möglichkeiten, das einigermaßen auszugleichen.
Welche Nachteile bei Digital Signage mit Android?
Android wurde für die Bedürfnisse von Mobilgeräten konzipiert. Es ist auf minimalen Stromverbrauch, und maximaler Reaktivität bei Benutzerinteraktion optimiert. Außerdem existieren keine nativen Werkzeuge zur Fernwartung und Administration. Das macht es suboptimal für den Einsatz in einem automatisiert 24/7 laufenden Digital Signage System.
Administration ist problematisch
In Desktopsystemen wie Linux, macOS und Windows gibt es Administratorenkonten. Diese besitzen Rechte, die Systemverwalter eines Unternehmens zur Softwareinstallation, Diagnose und Reparatur nutzen. In Unixsystemen nennt man dieses Konto „Root“.
Android kennt so etwas von Haus aus nicht. Da Android auf einem unixähnlichem System wie Linux basiert, lässt sich dieser SuperUser allerdings manuell nachrüsten. Den Vorgang nennt man „rooten“ und sobald man das mit seinem Smartphone oder Tablet macht, erlischt die Garantie. Abgesehen von der Fragwürdigkeit diese Konzepte, Käufern die Verfügungsgewalt über ihre teuer erworbenen Hardware zu entziehen, hat das auch berechtigte Gründe.
Während nämlich gängige Systeme den Administrator grundsätzlich mit einem Passwort absichern, geschieht das bei einem Android nicht. Dort wird – vereinfacht ausgedrückt – eine Software namens „su“ (SuperUser) installiert und die bekommt Zugriff auf gewissermaßen alles. Andere Software kann dann deren Rechte einfach so nutzen.
Das stellt einen tiefen Eingriff in die Betriebsintegrität dar, reduziert die Systemsicherheit und behindert den Support. Deshalb sehen das die Mobilgerätehersteller nicht gerne. Sie versuchen den root-Prozess zu erschweren und sanktionieren den Erfolg durch Supportentzug, sprich Verfall der Garantie.
Digital Signage Geräte benötigen Administration
Für die Administration Digital Signage benötigen wir diesen Root-User. Root erlaubt unter anderem folgendes:
Zugriff auf USB-Funktionen
Stille Updates also Softwareinstallation ohne Nachfragen
Fernadministration
Watchdog Timer Dienste zum Erkennen von Abstürzen
Zugriff auf Helligkeit, Stand-by, globale Lautstärke usw.
Niemand möchte Softwareinstallationen mit der sonst obligatorische Userbestätigung auf hunderten von verteilten Bildschirmen ausführen.
Aus diesen Gründen hat sich hauptsächlich in Asien ein Markt für gerootete Digital Signage Medienplayer entwickelt. Die Hersteller liefern ihre Geräte bereits gerootet aus. Was aber neue Probleme schafft.
Nachteile des Rootens
Ein klassisch gerootetes Android ohne Passwortschutz ist aus Sicht der Sicherheit problematisch. Ausnahmslos jedes Programm, auch Schadsoftware, erhält die Erlaubnis, fremde Dateien zu manipulieren oder Software zu (de)installieren.
Um das zu verhindern, benötigt das Gerät mehr Sicherheitsmaßnahmen. Diese erhöhen aber die Komplexität. Mehr Komplexität bedeutet wiederum mehr Möglichkeiten für Fehler, Sicherheitslücken und Schadsoftware. Wir geraten in eine Art Teufelskreis.
Alternative Device Owner
Google hat sich diesem Problem angenommen und ab Android 7 einen Modus namens Device Owner geschaffen. Der Modus ist dabei nicht direkt für Digital Signage gedacht. Zielgruppe sind eher Unternehmen oder Behörden, die Ihren Mitarbeitern dienstliche Androidgeräte zur Verfügung stellen und dabei die Kontrolle über die installierte Software behalten möchten.
Der Administrator spielt also Softwareupdates sowie neue Daten ein, konfiguriert das Gerät und erhält Zugriff auf die USB-Schnittstelle. Die Vorgänge funktionieren unabhängig von den Bestätigungen des „Besitzers“ und ohne das Gerät zu rooten. Also genau die Funktionalitäten, die wir für die Administration eines Digital Signage Gerätes benötigen.
Dabei definieren Sie mit Bordmitteln sehr genau, welche Anwendungen starten dürfen. Was dem Konzept prinzipiell schon mal mehr Sicherheit gegenüber einem gerooteten Gerät verleiht.
Das Highlander-Prinzip: Es kann nur einen geben
Dabei darf es nur eine Software auf dem Gerät geben, die als Device Owner fungiert. Eine einmal gesetzte Device Owner Anwendung kann zwar aktualisiert, aber nicht wieder deinstalliert werden. Das erhöht die Sicherheit noch weiter, weil eine versehentlich auf dem Gerät installierte Schadsoftware nur limitierte Befugnisse besitzt und sich auch keine erschleichen kann.
Der von SmilControl verwendete Android Launcher basiert auf dem Device Owner Konzept. Sie erhalten dadurch die Möglichkeit abgesicherte Medienplayer zu betreiben und zu fernwarten, ohne die Nachteile es gerooteten Gerätes in Kauf zu nehmen.
Natürlich gibt es auch Vorteile, die für Digital Signage unter Android sprechen und denen ich mich trotz aller aufgezählten Nachteile nicht verschließe. Am Ende des Tages geht es für Softwareentwickler darum, Lösungen zu entwickeln, die vom Markt akzeptiert werden und sich nicht an technischen Elfenbeintürmen zu berauschen.
Welche Vorteile bei Digital Signage mit Android?
Android besitzt eine sehr hohe Verbreitung und dementsprechend finden sich viele spezialisierte Dienstleister. Es ist abgesehen von den Treibern freie Software, steht günstig zur Verfügung und lässt sich besser vermarkten als Linux. Die meisten Medienplayer am Markt basieren deshalb auf Android.
Zwei Anwendungen zum Teilen und Herrschen
Als ich seinerzeit beschloss, Software für Digital Signage Medienplayer zu entwickeln, entschied ich mich für einen dualen Ansatz, um möglichst effektiv mehrere Betriebssysteme zu unterstützen.
Der plattformunabhängige garlic-player deckt die typische Playerfunktionalität wie SMIL-Playlistenverarbeitung, Abspiellogik, Netzwerkzugriff, Caching, Reports usw. ab.
Die oben angesprochenen plattformabhängige Funktionen wie Installation, Update, Reboot, USB usw. kapselt unter Android der garlic-launcher.
Das ermöglicht es für jedes unterstützte Betriebssystem mit minimalem Zeitaufwand ein winziges Programm zu erstellen, welches plattformabhängige Funktionen per API anbietet. Die kann theoretisch ein beliebiger Player mittels einer standardisierten Schnittstelle nutzen.
Kommen wir nun nach den hoffentlich nicht allzu heftigen Erörterungen der technischen Grundlagen zu der Anleitung.
Es ist wichtig diese Prozedur nicht auf einem produktiven Gerät wie Ihrem Smartphone oder Tablet zu testen. Den Launcher bekommen sie nur durch einen Werksreset wieder entfernt. Ferner darf auf Ihrem Gerät kein Google Play Konto eingerichtet sein. Führen Sie am besten vorher einen Werksreset aus, um auf Nummer sicher zu gehen.
Der Android-Launcher
Der Garlic-Launcher muss als Device Owner eingetragen sein. Dafür gibt es zwei Möglichkeiten. Installation mit einer eventuell manueller Konfiguration oder via Provisionierung.
Herunterladen, installieren und konfigurieren
Laden Sie den Android-Launcher runter und installieren Sie ihn entweder via adb (Android Debug Bridge) oder direkt auf dem Gerät.
Sollte Ihr Gerät bereits gerootet sein, setzt sich der Launcher selbst als Device Owner ein und gibt sich die Schreibrechte.
Sollte das fehlschlagen oder das Gerät ist nicht gerootet, setzen Sie den Launcher als Device Owner manuell via adb Shell Befehl. Der Befehl dazu lautet:
Bei ungerooteten Geräten kommt noch eine Abfrage nach den Schreibrechten. Es ist wichtig, diese zu bestätigen.
Provisionierung mittels QR-Code
Sie können Ihr Gerät, sofern es diese Art der Provisionierung unterstützt, auch bequem mit einem QR-Code erstellen. Auf dem SmilControl-CMS finden Sie unter dem Menüpunkt: Player Androidprovisionierung eine Eingabemaske, mit der Sie sich einen QR-Code erstellen.
Ich habe vor Jahren dazu ein englischsprachiges Video erstellt, das Sie bei YouTube mit deutschen Untertiteln finden.
In dem Video führe ich den Prozess mit einem Samsung-Tablet vor. Dieses lässt sich beim Willkommenbildschirm durch siebenmaligen Tippen auf den Bildschirm in den Provisionierungsmodus schalten. Mit der Kamera scannen Sie den vom CMS erzeugten QR-Code und der Rest läuft nach Erkennung gewissermaßen von allein ab.
Der Medienplayer
Im Idealfall installiert der Launcher, sofern er keinen Garlic-Player auf dem Medienplayer vorfindet, automatisch dessen jeweils aktuelle stabile Version. Da die Entwicklung kontinuierlich voranschreitet und ich stabile Versionen nur alle paar Monate veröffentliche, kann es sein, dass Ihnen bestimmte Features fehlen.
Bei den Playerdownloads finden Sie auch die aktuellen Entwicklungsversionen, die sogenannten CI-Builds.
Im Unterschied zu den stabilen Versionen haben die Entwicklerversionen nicht die aufwendige manuelle Testsuite zur SMIL-Kompatibilität und keinen längeren Praxistests durchlaufen.
Was kann schieflaufen?
In der Regel treten die meisten Fehler bei der Root-Erkennung auf. Leider existiert dazu kein sicheres Standardverfahren. Wir erinnern uns: Eigentlich ist Root unerwünscht. Es gibt eine sogenannte „best practice“, aber die ist bedauerlicherweise unzuverlässig.
Einige Hersteller erschweren dies noch unabsichtlich, indem sie das Gerät nachträglich „entrooten“, aber ein build-Flag namens test-keys im Kernel vergessen, was den Launcher täuscht. Kontaktieren Sie den Hersteller, um das Flag im Kernel anzupassen.
Installationsprobleme
Sollte der Launcher ein nicht gerootetes Gerät fälschlich als gerootet erkennen, zeigt es einen schwarzen Bildschirm mit der Fehlermeldung, dass der Device Owner nicht gesetzt werden kann. Selbst wenn Sie den Device Owner manuell setzen, verbleibt die Software in der Annahme, das Gerät wäre gerootet und Installationsvorgänge schlagen fehl.
Rechteprobleme
Wenn aus einem Grund der Garlic-Player keine Schreibrechte besitzt, zeigt er einen weißen Bildschirm an. Prüfen Sie in diesem Fall in den Android-Einstellungen, ob die Schreibrechten korrekt sind. Setzen Sie diese notfalls manuell.
Der Artikel wird laufend aktualisiert und je nach Erkenntnissen erweitert. Wenn Sie Verbesserungsvorschläge haben, können Sie mich gerne kontaktieren.