Carola: Netflix & Mediaplayerkontrolle

Neues aus der Werkstatt.. ups, falsches Blog.. Neues von Carola: „Yes, we can .. control Netflix“ \o/

Carola: Netflix & Mediaplayerkontrolle

Carola hat es jetzt drauf, wir können Netflix auf Kommando starten, ok, das war schon länger drin, aber seit eben, kann ich auch den Inhalt von Netflix per Sprache kontrollieren.

Ihr habt es Euch vermutlich schon gedacht, daß nach dem D-BUS Artikel noch etwas kommen mußte 🙂

Die Mediaplayer API

Folgende Befehle sind intern möglich:

command:“ich |möchte|sehen“,“PLAYVIDEO“
command:“videos.*weiter“,“VIDEONTRACKSFORWARDS“,““
command:“videos.*zurück“,“VIDEONTRACKSBACKWARDS“,““
command:“ein video weiter“,“VIDEONTRACKSFORWARDS“,““
command:“ein video zurück“,“VIDEONTRACKSBACKWARDS“,““
command:“video|weiter“,“VIDEOPLAYBACKPLAY“,““
command:“nächstes|video“,“VIDEONEXTTRACK“,““
command:“letztes|video“,“VIDEOLASTTRACK“,““
command:“starte|video“,“VIDEOPLAYBACKPLAY“,““
command:“video|start“,“VIDEOPLAYBACKPLAY“,““
command:“video|stop“,“VIDEOPLAYBACKSTOP“,““
command:“pausiere|video“,“VIDEOPLAYBACKPAUSE“,““
command:“video|pause“,“VIDEOPLAYBACKPAUSE“,““
command:“wiedergabe|starten“,“VIDEOPLAYBACKPLAY“,““
command:“wiedergabe|stop“,“VIDEOPLAYBACKSTOP“,““
command:“wiedergabe|pausiere“,“VIDEOPLAYBACKPAUSE“,““
command:“wiedergabe|fortsetzen“,“VIDEOPLAYBACKTOGGLE“,““

Die Befehle sind zwar im ersten Entwurf nur für den eingebauten Videoplayerpart gewesen, jetzt aber für alle Mpris Services gültig. D.b. auch, daß es völlig egal ist, welcher und wieviele Player laufen, es werden einfach alle angesprochen.

In der Config gibt es dazu passend jetzt den mediaplayer Teil:

mediaplayer:“find“,…
mediaplayer:“play“,…
mediaplayer:“pause“,…
mediaplayer:“stop“,…
mediaplayer:“nexttrack“,…
mediaplayer:“lasttrack“,…
mediaplayer:“toggle“,…
mediaplayer:“raisevolume“,…
mediaplayer:“lowervolume“,…
mediaplayer:“getvolume“,…
mediaplayer:“status“,…

Die Kommandos selbst sind nicht geheim, aber sehen hier einfach blöd aus, daher schaut Ihr morgen mal ins GitHub Repo, wenn ich das hochgeladen habe 😉

Tip #1:

konfiguriert nicht beides, wenn der Videoplayer auch ein MPris Interface hat. Das hat ganz böse Nebenwirkungen bei „PlayPause“ 😉

Tip #2:

Wenn Ihr MPV von RPMFusion installiert habt und das Pakte mpv-mpris noch nicht drauf habt, macht das mal, weil sonst mpv kein Mediaplayerinterface hat.

PVA: kleines Carola Update

Weil das im Dezember mit dem Video nicht geklappt hat, reiche ich das heute mal nach.

PVA: kleines Carola Update

Wie Ihr Euch vielleicht erinnern mögt, gab es Anfang Dezember einige Anpassungen die Euch das Leben etwas vereinfachen konnten. Carola konnte Dateien suchen und das Suchergebnis einem x-beliebigen Programm übergeben. Diese Funktion wird im Video gezeigt:

RITA

Rita“ muß man kurz erklären. Der Begriff „Krita“ wird von der deutschen Sprachausgabe meisten als Kreta erkannt, manchmal aber auch nur als der Eigenname rita. Da „rita“ im Begriff „Krita“ vorkommt, findet der Sprachassistent das gewünschte Programm trotzdem 🙂

Der PVA durchsucht dafür die Anwendungsliste in /usr/share/applications/ und kann dann auch alle dort befindlichen Apps (auch ohne vorherige Suchergebnisse ) starten, wenn im Programmnamen oder in den Keywords eine Übereinstimmung mit dem Anwendungsnamen besteht. Leider kann das Programm noch keine Relevanz in die Suche einfließen lassen, so daß das Starten von „Bildschirm“ ggf. nicht die Bildschirmeinstellungen, sondern das Bildschirmfoto findet, je nach dem was zuerst gefunden wird.

Seit dieser Aufnahme hat es noch einige andere Veränderungen gegeben. Das Projekt wurde nach /usr/share/pva verschoben. Alles Desktopdateien wurden angepaßt und in /usr/share/applications/ untergebracht. Damit ist es jetzt möglich, daß der PVA für jeden eingeloggten Benutzer start- und nutzbar ist. Jeder Benutzer kann seine eigene Config in ~/.config/pva/conf.d/  haben. Die globalen Einstellungen dienen dabei als Defaults. Beim ersten Start werden die nötigen Dateistrukturen in .config, .cache und .var erzeugt und passend gefüllt, wenn es diese noch nicht gibt. Beispielsweise werden die Suchpfade an den Benutzernamen angepaßt, so daß die üblichen Verzeichnisse  die „Bilder“, „Musik“, „Videos“ usw. benutzt werden, da gloable Vorsteinstellungen für Suchpfade wegen der ggf. beschränkten Nutzerrechte keinen Sinn machen.

Erfreulicherweise können wir Carola jetzt per „Startprogramme“ beim Login in den Desktop starten, so daß der Assistent auch sofort bereit ist. Da das deutsche Sprachmodell 3,2 GB groß ist, braucht der Start auf langsamer Hardware eine ganze Weile. Kleinen PCs, Laptops und Handies empfehle ich daher das kleine 60MB Sprachmodell zu nehmen.

Zur Zeit baue ich für Fedora das RPM zusammen, so daß es den Guidelines vom Fedoraprojekt entspricht.

 

CVE-2021-3981: mysteriöser Security Bug in Grub2

Heute morgen erreicht uns ein mysteriöser Security Bug für Grub2: CVE-2021-3981

CVE-2021-3981: mysteriöser Security Bug in Grub2

Redhat hat ein Update für Grub angeordnet, dessen Sinnhaftigkeit sich nicht sofort erschließt:

grub2: Incorrect permission in grub.cfg allow unprivileged user to read the file content [fedora-all]

Der eigens dafür kreierte CVE 2021-3981 gibt leider nichts her. Durchsucht man die Portale nach Informationen stößt man lediglich auf einen Verweis von Ubuntu ins Jahr 2008:

https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/248843

Dabei handelt es sich im einen Fehler in Tiger, einem Intrusion Detection Tool, daß auch für Security Audits benutzt werden kann. Dieses hatte im Jahr 2008 herausgefunden, daß die /boot/menu.lst und andere Files, Gruppenleserechte haben, was gefährlich sein könnte, wenn ein unprivilegierter User in der dazugehörigen Gruppe ist und in der Datei ein Passworthash gespeichert wird, was mir bislang gar nicht bekannt war, daß das irgendwie Sinn machen würde.

Zehn Jahre später

Im Jahr 2018, wurde der Fehler dann endgültig behoben. Jetzt, Ende 2021, taucht bei Fedora ein ähnliches Problem auf. Die grub.cfg hatte wohl Weltleserechte, was im Falle eines Passworts ein Sicherheitsproblem wäre, käme ein unprivilegierter User da dran. Probier wir das doch mal:

[marius@eve ~]$ ls -la /boot/grub2/
ls: Öffnen von Verzeichnis ‚/boot/grub2/‘ nicht möglich: Keine Berechtigung

Egal wie die Leserechte auf der grub.cfg aussehen, ein unprivilegiert Benutzer kommt da nicht dran, weil /boot/grub2/ einen chmod von 700 hat.

Daher überrascht dieser Security Bug, der im Redhat Customerportal nur für „bezahlende“ Kunden erreichbar ist, ein bisschen, weil sich dadurch keine Lücke ergeben kann. Soweit man in den spärlichen Quellen sehen kann, wird die Lücke auch mit der Gefährlichkeit LOW eingeordnet, aber wenn das so ist, und eh nur root dran kommt an die Datei, wieso dann eine CVE erstellen?

Falls das jemand aufklären kann, könnt Ihr ja einen Kommentar da lassen.