NVIDIA Shield TV und die Discover UI

17. Januar 2022 · Anwendungen · andreas · Kein Kommentar

Seit Freischaltung der Discover UI zeigt der Homescreen der NVIDIA Shield genau wie die meisten anderen Android-TV-Geräte Werbung an. Im oberen Drittel des Bildschirms sowie im Hintergrund werden Anzeigen für Abonnements und Sendungen eingeblendet und will man versuchen, die Vorschäge auch nur geringfügig anzupassen (Registerkarte “Discover”), so soll man Google gleich das Tracken aller Aktivitäten erlauben.

Da dieser Mechanismus zentral von Google gesteuert wird, hat NVIDIA auch keine Chance, hieran etwas zu ändern.

I did check with the developers team and has been informed that it is indeed an implementation of Google’s Discover UI, which is part of the Android itself. Nvidia is only the manufacturer of the hardware and we do not have control over the User interface of Android. This is not just specific with Shield, but is already being implemented on all Android tv boxes. [Quelle]

Konnte man mit der Version 8.2.3 noch zur alten UI zurückkehren, in dem die vorhanden Updates für die Android TV Home-App deinstalliert wurden, wird die aktualisierte App seit Version 9.0.0 direkt mit dem Betriebssystemupdate ausgeliefert.

Eine Möglichkeit, zu einem werbefreien Startschirm zurückzukehren, ist die Installation eines alternativen Launchers, welche die Android TV Home-App ersetzt. Hier kann z.B. der quelloffene FLauncher direkt über den PlayStore installiert werden. Dieser ist anschließend unter “Apps” zu finden und kann erst einmal ausgiebig konfiguriert und getestet werden.

Sofern die Tests zufriendenstellen verlaufen, kann der Launcher auch dauerhaft als Alternative verwendet werden. Hier hatte NVIDA eine direkte Auswahlmöglichkeit implementiert, wurde aber ebenfalls von Google ausgebremst.

Back on shield experience 8.0.1 we enabled 3rd party launchers. We were the only device with this feature and other manufactures went to Google asking why we could do this and they could not. As a result, we had to disable the ability to select a 3rd party launcher (without doing adb commands) on all future releases in order to get through the google release process. [Quelle]

Glücklicherweise hat man als Android-Nutzer aber trotzdem noch eine Chance, das Verhalten wie gewünscht zu ändern - wenn auch etwas unkomfortabler über die adb-Schnittstelle.

Hierzu werden zuerst auf der Shield die Entwickleroptionen freigeschaltet: Im Menü auf “Geräteeinstellungen”, dann auf “Info” und in der Zeile “Build” insgesamt sieben mal auf die OK-Taste drücken, bis eine entsprechende Meldung erscheint.

Anschließend wird das “Geräteeinstellungen”-Menü am Ende um den Punkt “Entwickleroptionen” ergänzt. Dieser wird nun geöffnet und unter “Debugging” der Punkt “Netzwerk-Debugging” aktiviert. Nach erfolgreicher Aktivierung erscheint der Text “Aktiviert auf a.b.c.d:5555”

Nun wird auf einem PC eine aktuelle Version der Android SDK Platform Tools benötigt. Diese gibt es sowohl für Windows, Mac OS und Linux direkt bei Google zum Download. Wer Linux verwendet, kann direkt auf wget zurückgreifen:

$ wget https://dl.google.com/android/repository/platform-tools_r31.0.3-linux.zip

Sind die SDK Platform Tools heruntergeladen und entpackt, so kann im Verzeichnis “platform-tools” direkt mit adb gearbeitet werden. Nach Eingabe von (natürlich sind a, b, c und d mit der oben angezeigten Adresse zu ersetzen)

$ ./adb connect a.b.c.d:5555

muss auf der Shield der Dialog “Netzwerk-Debugging erlauben?” mit “ERLAUBEN” bestätigt werden. Anschließend wird die Verbindung überprüft:

$ ./adb devices
List of devices attached
a.b.c.d:5555 device

Sofern das Gerät angezeigt wird und verbunden ist, fehlt lediglich noch ein Befehl:

$ ./adb shell pm disable-user --user 0 com.google.android.tvlauncher

Beim Druck auf die “Home”-Taste der Fernbedienung wird automatisch FLauncher gestartet (da einziger verfügbarer Launcher) und als Standardanwendung eingerichtet. Sollte eine Rückkehr zum Standard-Android TV Home notwendig sein, so reicht das Ausführen des oben genannten Befehls mit dem Parameter “enable-user” statt “disable-user” un diesen wieder zu reaktivieren.