Docker-Container für die Sideloading-Pipeline auf Android TV
Aktualisiert 2026-10-28
Warum Docker vor allem für die Sideloading-Pipeline?
Android TV bringt von Haus aus nur wenige native Container-Runtimes mit. Wer jedoch eigene Install-Skripte oder CI‑Pipelines in eine Docker‑Umgebung auslagern will, muss den Container zunächst lokal auf dem Gerät bauen. Da Android TV nicht über einen offiziellen docker‑Daemon verfügt, arbeiten Entwickler mit einer Kombination aus einem Build‑Image auf dem Workstation‑Linux und einem manuellen Push über ADB, um die Image layers auf das TV‑Gerät zu übertragen. Der Vorteil: Alle Build‑Schritte sind isoliert, reproduzierbar und können in einer Pipeline wiederholt werden.
Vorbereitung: Linux‑Build‑Image und Android SDK einrichten
- Installieren Sie auf Ihrem Workstation‑Rechner das Android NDK, das Build‑Tools und die Android‑SDK-Version, die zum Target‑Device passt. Für NVIDIA Shield TV verwenden viele Entwickler die neueste API level 34‑Build‑Image‑Variante.
- Konfigurieren Sie die Umgebungsvariablen
ANDROID_HOMEundPATHund stellen Sie sicher, dassadbauf dem Rechner läuft. Ein praktischer Shortcut ist ein Alias, deradb devicesin die Eingabeaufforderung einbaut. - Erstellen Sie ein
Dockerfile, das auf dem Basisimageubuntu:22.04ein Python‑Skript installiert und daraus einen Entrypoint‑Wrapper baut. Das Skript lädt das Android SDK‑Source‑Archive herunter und bereitet das Build‑Tool übermakevor.
Die Base‑Image‑Wahl wirkt sich direkt auf Build‑Zeit und Speicherbedarf aus: Ubuntu 22.04 bietet eine breite Paketunterstützung, während Alpine kleiner ist, aber mehr Arbeit beim Nachrüsten von Build‑Abhängigkeiten bedeutet. Für Android‑TV‑Geräte ist Ubuntu die gängigere Wahl, da es zu den meisten verfügbaren Build‑Tools passt.
Container bauen und per ADB auf das TV-Gerät pushen
Nachdem das Image auf dem Device installiert ist, führen Sie einen Build‑Jobs im Interpreter-Modus aus:
Der Builder-Image enthält alle notwendigen Kompilierungs-Tools. Danach nutzen Sie adb push für das fertige Image, und führen es dann auf dem TV‑Gerät mit adb shell an:
adb shell cp /data/local/tmp/sideload-builder.tar
adb shell "chmod 777 /data/local/tmp/sideload-builder.tar"
Wichtig: Android TV blockiert standardmäßig adb shell-Befehle auf dem TV, wenn kein ActiveIDE nicht aktiviert ist. Aktivieren Sie den Debug‑Shell über die Einstellungen → „USB debugging“ oder nutzen Sie einen Hardware-Adapter, der ADB‑Sessions erlaubt. Die Pipeline muss daher das Gerät als „trusted“ betrachten, damit ACPI‑Befehlssätze korrekt zugestellt werden.
Ausführen: Start des Containers im Hintergrund und Monitoring
Starten Sie den Builder-Container im Hintergrund, indem Sie ihn mit nohup oder einem einfachen Systemd-Service auf dem TV-Emulator laufen lassen:
nohup docker run -d --name sideloader sideload-builder:latest > /dev/null 2>&1 &
Der Container prüft bei jedem Startup die Verfügbarkeit der physischen Tastatur und Fernsteuerung. Für die Sideloading-Pipeline bedeutet das: Der Container lädt bei jedem Boot die neueste Firmware/Update-Komponente, validiert diese und installiert sie im Systempartition, ohne die TV‑Oberfläche zu unterbrechen. Nutzen Sie docker logs -f sideloader > /var/log/sideload.log, um Fehler sofort zu sehen, und schalten Sie journalctl -u systemd auf dem TV-Emulator für die Pipeline-Ausgabe zu. Die Log-Dateien liegen unter /var/log/docker/* und können auf den PC kopiert werden.
Trade‑offs und typische Stolpersteine
- Build-Zeit: Ein vollständiger Android-Build dauert auf NVIDIA Shield etwa 30 bis 45 Minuten. Für eine tägliche Pipeline muss das Image vorkompiliert vorliegen und nur noch per Tag/Release aktualisiert werden.
- Speicherbedarf: Ein Docker-Container auf einem Embedded-Gerät mit 2 GB RAM kann schnell an Grenzen stoßen. Begrenzen Sie den Build-Memory-Footprint und wechseln Sie bei großen Releases zu einem
buildx-Image mit dedizierter Cache-Disk. - Sicherheit: Container-Images von Drittanbietern enthalten oft Build-Tools mit bekannten CVEs. Prüfen Sie die Quellcodes, bauen Sie in einer isolierten Umgebung und signieren Sie das finale Image mit
docker commitplusgpg‑Versionssignatur, bevor es auf das TV‑Gerät gepusht wird. - Keine native Android-TV-Build-API: Im Gegensatz zu ChromeOS gibt es keinen
dd‑Kontext, der direkt auf den Flash-Speicher zugreifen kann. Deshalb ist ein manuelleradb push-Workflow unvermeidlich.
Fazit
Ein Docker-Container für die Sideloading-Pipeline auf Android TV ist machbar, erfordert aber konsequente Planung bei Build-Images, Image-Größe und Device-Access. Die Pipeline spart langfristig Stunden an manuellem Setup, kostet aber an Wartungsaufwand. Mit den oben gezeigten Schritten – isoliertes Dockerfile auf Ubuntu, manueller ADB‑Push und einem Service-managed Entrypoint – lässt sich das Ganze stabil in eine CI-Umgebung einbinden.
slug: docker-container-sideloading-android-tv
title: Docker-Container für die Sideloading-Pipeline auf Android TV einrichten
description: Erklären Sie, wie man in Android TV einen Docker-Container für die automatisierte Systemaktualisierung per Sideload erstellt. Praxistipps und Code-Beispiele.
keyword: Android TV Docker Sideload Pipeline
Weiterlesen: mehr zu Android TV
Weiterlesen
Android TV mit CleanYourTV per Sideloading aktualisieren – So geht's
Lerne, wie du über das Internet die Home-Engine-App CleanYourTV per Sideloading installierst und aktualisierst – Schritt für Schritt für Android TV.
Android TV-Serialisierung: Alte Sideload-Zertifikate nach Neustartin
Erfahren Sie, wie Sie nach einem Neuinstall von Android TV veraltete Sideloads und Zertifikate erneut einrichten – Schritt für Schritt mit dem CleanYourTV-Launcher.