Sandbox-Escape: Sicherheitslücke in Flatpak behoben

Wer von Euch Flatpaks einsetzt, möchte jetzt vermutlich gleich mal den Updatebutton drücken: Sandbox-Escape in Flatpak Version < 1.8.5,1.10.0

Sandbox-Escape: Sicherheitslücke in Flatpak behoben

Für alle, die nicht wissen was Flatpaks sind, es handelt sich dabei um distributionsunabhängige Programmpakete, die, sonst würde es keine Sicherheitslücke sein, in sich gekapselte Container sind.

Der Gedanke ist, daß man als Entwickler alles mitliefert was die Anwendung braucht, ohne auf das Betriebssystem angewiesen zu sein. Der Nachteil davon ist … genau das: Jede Anwendung kann Zeug mitbringen, daß komplett veraltet und buggy ist. Deswegen schließen die Containerverwaltungen wie Flatpak, Snap und Docker die Inhalte in eine Sandbox ein, aus der das Programm nur unter bestimmten Vorgaben ausbrechen kann, z.b. um eine Bild-Datei zu öffnen. Dem Programmcode ist es aber nicht erlaubt, außerhalb seiner Sandbox etwas auszuführen.

Sandbox-Ausbruch

Im passenden Advisory steht dazu:

In vulnerable versions, the Flatpak portal service passes caller-specified environment variables to non-sandboxed processes on the host system, and in particular to the „flatpak run“ command that is used to launch the new sandbox instance. A malicious or compromised Flatpak app could set environment variables that are trusted by the „flatpak run“ command, and use them to execute arbitrary code that is not in a sandbox.
https://github.com/flatpak/flatpak/security/advisories/GHSA-4ppf-fxf6-vxg2

Das meint, ein Prozess innerhalb des Flatpaks kann über den DBUS anderen Prozessen Umgebungsvariablen setzen, die diese dann beachten und so aus der Sandbox auszubrechen, obwohl so nur Prozesse gestartet werden sollten, die gleiche oder weniger Rechte haben, als der ausrufende Elternprozess.

Für Fedora ist die abgesicherte Flatpak Version 1.8.5-1 erschienen:

——————————————————————————–
Fedora Update Notification FEDORA-2021-f807eb480a from 2021-01-19 01:50:48.910487
——————————————————————————–
Update Information:

This is a security update that fixes a sandbox escape where a malicious application can execute code outside the sandbox by controlling the environment of the „flatpak run“ command when spawning a sub-sandbox. See the advisory for details: https://github.com/flatpak/flatpak/security/advisories/GHSA-4ppf-fxf6-vxg2
——————————————————————————–

Wer nicht auf Fedora als System setzt, der kann auf 1.8.5 oder 1.10.0 updaten, die beide dagegen gesichert sind.

Wer mehr über Flatpak wissen möchte, kann die Seiten flatpak.org und wiki.gnome.org/Projects/SandboxedApps besuchen.

Supertuxkart auf dem Tablet

Seit einiger Zeit gibt es Supertuxkart mit einem Touch-Eingabegerät, also habe ich es mal ausprobiert … in groß 🙂

Supertuxkart auf dem Tablet

Wer meine Artikelserie zum Pinephone verfolgt hat, hat den Spieleartikel gesehen. Darin ist auch Supertuxkart und seine Problem auf der Fedoraversion des Pinephones beschrieben, z.b. die mangelnde OpenGL3 Funktionalität der Mali400 GPU, was Supertuxkart in den Softwarerendermodus versetzt.

Dies Problem haben wir auf meinem Surface Pro Tablet natürlich nicht:

Ja, es fuhr wirklich

Supertuxkart ist aufgrund der Bedienung auf Multi-Touchsupport angewiesen. Wenn der nicht da ist, dann kann man entweder lenken und Gas geben oder eine der Zusatzfunktionen nutzen, aber nicht beides gleichzeitig. In der Praxis bedeutet es die faktische Unspielbarkeit des beliebten Kartgames.

Zum Glück gibt es Jake Day

Wer sich an die ersten Artikel zum Surface Tablet im Blog erinnert, dem wird der Umstand wieder einfallen, daß es keinen Touchsupport fürs Tablet gab. Jake Day hatte das geändert, in dem er einen eigenen Kernel kompiliert hatte, in dem dieser Makel behoben wurde.

Mit dem alten Jake Day Kernel habe ich dann Supertuxkart so gespielt, wie das vorgesehen war. Leider auch hier nur mit mäßigem Erfolg, da zwar alle Zusatzfunktionen gleichzeitig zum Lenken auslösbar sind, aber die Lenkung selbst das Problem ist. Viel zu oft bleibt das Kart einfach stehen oder lenkt nicht mehr. Ein Lenkrad wie ein echtes Lenkrad zu drehen ist für Touch nicht die beste Lösung. Eine Wippensteuerung wie auf jedem Gamepad wärs gewesen.

Zusammen mit der Pressdruckerkennung des Touchdisplays wäre eine gelungene Steuerung sehr gut möglich gewesen. Vielleicht bekomme ich die Devs ja zu dieser Änderung 🙂

„Energie ist alles!“

Zu den „mechanischen“ Problemen der Steuerung kommt, daß man das Spiel nicht wirklich lange zocken könnte, da es viel zu viel Energie benötigt. Die 4 i7 CPU Kerne werden wegen 3D Berechnung für die 3K Auflösung schnell sehr warm, was die Lüfter dann kompensieren müssen, ein todsicheres Anzeichen für hohen Energieverbrauch 😉

Aber immerhin, für ein bisschen Unterhaltung reicht eine Akkuladung aus 😉 Da das Spiel netzwerkfähig ist, könnt Ihr fast überall mit anderen Zocken, ob Ihr gewinnen werdet, kann bezweifelt werden 😉

Ladet Euch mal das Bild aus dem Artikel runter, dann habt Ihr eine Idee zur Auflösung des Bildschirms. Natürlich kann man Supertuxkart sagen, es soll eine kleinere Auflösung benutzen, aber das das Display die M$ eigene 3:2 Auflösung benutzt, kommt es zu Verzerrungen, wenn man z.b. auf FullHD runterschaltet.

Gyroskopische Steuerung

Auf Android kann man SupertTuxKart tatsächlich über die Lagesteuerung spielen:

[dev] Gyroscope controls in SuperTuxKart, an opensource racing game from AndroidGaming

Das könnte das Problem tatsächlich lösen, da das Surface so groß ist, das ruckartige Steuerfehler wie im Video mit dem großen Tablet gar nicht möglich wären. Das ist definitiv wert einmal ausprobiert zu werden 🙂

Pinephone: Der Spiele Guide

Fedora: PHP 8 kommt mit Fedora 35

Das Ende von PHP 7 ist eingeläutet. Im April 2022 wird PHP 8 das neue Default PHP für Fedora.

Fedora: PHP 8 kommt mit Fedora 35

Remi Collet hat gestern das offizielle Ende von PHP 7 für Fedora bekannt gegeben. Demnach soll im April 2022 mit Fedora 35 der Wechsel von PHP 7.4 auf PHP 8 vollzogen werden. PHP 7.3 ist dann bereits im EOL und PHP 7.4 nur noch Securitysupport verfügbar.

Sehr zügig kommt dann schon im November 2022 PHP 8.1 für das dann verfügbare Fedora 36 an den Start.

Da sich in PHP 8 einige Tücken bei der Migration verstecken, wurde auf eine extra lange Übergangsphase geachtet. Aus eigener Erfahrung kann ich Euch sagen, daß gerade alte Anwendungen eine Menge Änderungen erfahren müssen, weil grundlegende Konstrukte mit EACH nicht mehr funktionieren.

Wie man auf diese Schnapsidee kommen konnte, habe ich noch nicht in Erfahrung gebracht.

 

Welcome to the other Side

Wer noch nie auf einem Jean-Michel Jarre Konzert war, der hätte Silvester keinen besseren Ort als seinen PC haben können. Es folgt ein Rückblick auf ein virtuelles Konzert, denn während ich diesen schreibe, läuft der Track.

Welcome to the other Side – NYE in virtual Notre Dame

Am 31.12.2020 um 23:25 Uhr war es soweit, das neue Album von Jean-Michel Jarre, der mit seinen 72 Jahren nicht älter als 50 rüberkam, hat in seinem Leben schon so einige spektakuläre Konzerte gegeben, alleine das Wüstenkonzert „Water for Life“ war eine gewaltige Inszenierung für sich 😀 Sein neuestes Projekt „Welcome to the other Side“ steht dem in nichts nach, auch wenn es „nur“ virtuell war.

Rein von den Eckdaten setzt so ein virtuelles Konzert ja neue Maßstäbe. Allein für die visuellen Effekte waren mehrere hundert Menschen verantwortlich. Allerdings denke ich, daß es da auch ein zwei Crews aus der Amiga Demo Szene getan hätten 😉 Über 70.000 Menschen waren Silvester mit dabei und auch beim Capturen auf die Platte zeigte mein Captureprogramm völlig ungewohnte Bandbreiten von 14-15 Mb/s an ( zum Vergleich eine DVD kommt auf maximal 10 Mb/s, von denen man effektiv nur 1.5-2 Mb/s braucht ). Am Ende brachte der vierundfünfzigminütige Mitschnitt 2,7 GB auf die Platte.

Das Audioerlebnis selbst ist mit besseren Lautsprechern am PC ok, kommt aber mit etwas Hilfe von Samsungs Bass-In-Ear-Hörern und QMMP & Pulseaudio Multiband EQ erst so richtig genial rüber. Kleines Beispiel:

Kleiner Beispielaufbau

Auch wenn der Pulseaudio Multiband EQ seinen Job gut macht, wird er von einigen nicht gern gesehen, was ich wiederum nicht verstehen kann.

„Hey, wieso steht da HDMI 2 ???“

Na weil der BenQ-Monitor nicht nur VGA/DVI und HDMI kann, sondern auch einen Kopfhöreranschluss hat und einen guten D/A Wandler dazu. Also Augen auf beim Monitorkauf 😉

Das Konzert kommt wirklich erst gut mit Kopfhörern rüber. Es macht wirklich einen Unterschied, schon weil man nicht von seiner Freundin unterbrochen werden kann 🙂 Bis auf den obligatorischen Laserharfen Track, der wirklich nicht zu den Highlights des Konzerts gehört, bereitet das übrige Konzert einem sehr viel Vergnügen. Ich habe schon diverse Lieblingsstellen gefunden und die beinhalten nicht zwangsweise Remixe seiner Klassiker 😀

Stilistisch erinnert das Konzert ein bisschen an die frühen 2000er Jahre, auch wenn die visuellen Effekte vor der Kulisse von Notre-Dame eher einem hyperaktiven Demo-Szene-Kid entsprungen sind 😉 Vielleicht klingt es deswegen so gut 😉

An dieser Stelle und in diesem Moment findet bereits der zweite Angriff des Tracks auf mein Hörzentrum statt und damit verabschiede ich mich aus dem virtuellen Notre-Dame-Bericht mit den Worten von JM : „Bye,Bye 2020“ wir werden Dich nicht vermissen 😀

PS: mit youtube-dl werdet Ihr das Konzert nicht runterladen können, deswegen selbst Schuld wer’s verpasst hat 😉

 

Pinephone: Firefox Addons wieder gangbar machen

Moin, Moin,

wer auf dem Pinephone alle Fedora Updates eingespielt hat, wird jetzt aktuell keine Addons mehr haben, weil die systemweiten Crypto-Policies dies unterbinden.

Pinephone: Firefox Addons wieder gangbar machen

Wie Ihr diesem früheren Beitrag hier entnehmen könnt:

NSS 3.59 bricht mit SHA-1: Firefox Addons betroffen

Hat die Einstufung von SHA-1 als unsicherer Hash-Algorithmus zur Folge, das die Zertifikate zum Signieren von Firefox Addons nicht mehr akzeptiert werden, aber viele Addons von Mozilla noch nicht mit sha256 signiert wurden. Das nss 3.59.0-3 Paket, das diese Beschränkung temporär wieder aufhebt, hat es leider nicht auf Rawhide geschafft, weswegen Firefoxaddons jetzt nicht mehr funktionieren.

Allerdings kann man da selbst Abhilfe schaffen. Einmal Root werden und folgendes eingeben:

update-crypto-policies –set DEFAULT:FEDORA32
reboot

Nun läuft das Pinephone auf einem etwas entspannteren Modus. Das darf natürlich nicht ewig so bleiben. Wir warten lediglich bis es ein Firefoxupdate gibt, daß die NO-SHA1 Policy für Firefox ignoriert, bis die ganzen Addons neu signiert wurden. In dem Augenblick können wir die DEFAULT Policy wiederherstellen ( update-crypto-policies –set DEFAULT ).

Doch noch einen weiterer Pinephone Beitrag vor Silvester geschafft 🙂

 

Pinephone: Judgement Day!

In den letzten Tagen haben wir das Pinephone zusammen aufgebaut, es gewartet, mit Ihm gespielt, ja so angefreundet. Heute aber kommt der Terminator, denn es ist …

Pinephone: Judgement Day!

Wir haben jetzt den 4. Advent… ok, Ihr aber nicht mehr.. und noch kann man mit dem Pinephone nicht das tun, was der Name insistiert: Telefonieren. Ok, zumindest unter Fedora kann man es nicht, weswegen ja auch noch die Manjaro Community Edition auf der internen Speicherkarte ist.

Was geht denn so alles nicht mit dem Pinephone und wo hakt es gewaltig?

Gestern machte ich mich bewaffnet mit meinem neuen „Telefon“ auf den Weg um das GPS in freier Wildbahn zu testen. Leider kam ich nur bis zur anderen Straßenseite, dann war die Grenze des Wlan überschritten und die Gnome-Maps Anwendung streikte knallhart. Merke: Ohne I-NET keine Positionsupdates – von Offlinekarten & Cachen keine Spur.

Ok, ein Smartphone sollte ja i.d.R. Mobilfunk dabei haben, aber was machen die Leute, die damit von einer Nordseeinsel zur anderen Insel navigieren wollen? Antwort: In die Röhre schauen!

Viel Spaß hätten Sie mit der zickigen kleinen App auch nicht, denn die Schrift für die Straßen wird winzig angezeigt, keine Chance da im Auto während der Fahrt etwas zu lesen. Immerhin Routenplanen geht, aber auf die Idee, den GPS Standort als Ausgangsort für eine Route zu benutzen oder auch nur anzubieten: Fehlanzeige. Es würde sowieso nicht nutzen, bedienen lässt sich die App während der Fahrt eh nicht, die Buttons sind viel zu klein dafür, wenn sie denn überhaupt auf einen Druck reagieren. Wäre die App von Google, dann wären die heute ein Subunternehmen von Microsoft oder Apple.

Fehlender DPI Ausgleich

Das Hauptproblem hier ist der fehlende DPI Skaler in den Bildschirmeinstellungen. Der würde Appanwendungen größenmäßig verdoppeln, was der Sache entgegen käme, aber aus irgendeinem Grund (vermutlich Display zu klein .. muhahahar .. urgs 🙁 ) nicht vorhanden ist.

Foto: Surface Pro 4 Fedora 32 Gnome

Wenn ich mein 3k Tablet nehme, kann ich dort 100%, 200% und 300% auswählen. Das müßte im Pine eigentlich nur mal aktiviert werden. Kann eigentlich nicht so schwer sein. Phosh setzt an genau dieser Stelle an, da es dort quasi permanent aktiviert ist. Man kann es dort zum Ausgleich dafür aber nicht abschalten 😉 Mir ist gerade danach, der Aufforderung der Musik in meinen Kopfhörern zu folgen und das A-Team zu Hilfe zu rufen.

Das Gnome-Team

Ich habe ja erwähnt, daß ich 16 offene Bugs bei Gnome habe, einige beziehen sich darunter auch auf Maps. Da meinte doch ein Witzbold, daß man da den Drei-Finger-Swipe benutzen könnte um aus der Fullscreen Anwendung auf den Aktivitätenscreen umzuschalten. Der Mann hatte offenkundig noch kein Telefon mit Gnome in der Hand 😀 Das geht natürlich technisch schon, weil die Swipes theoretisch erkannt werden, aber so rein physikalisch gibt es da das Problem 3 Finger auf den Bildschirm zu bekommen und die dann auch noch auf einanderzu zu bewegen. Die ersten zehn Versuche haben nicht funktioniert. Auf dem Tablet ist das platzmäßig natürlich kein Problem. Jetzt kommt aber verschärfend noch hinzu, daß Maps ja auch auf Fingergesten reagiert 😉 Es ist genauso schlimm, wie Ihr es Euch gerade ausmalt.

Tagesform

Im Gnome-Team gibt es echt Leute die mitdenken und welche, naja, reden wir nicht drüber. Die Anzahl der vernüftigen Teammitglieder überwiegt zum Glück. Am 21.12. kam Bewegung in einige Bugs bei Gnome. Z.b. stellte sich herraus, daß die seit einem Jahr um das Problem der falsch positionierten Notificationsfensteres wissen, da auch jede Menge Patche an „mutter“ gemacht haben, es aber nicht zum Erfolg geführt hat. Was ist eigentlich so schwer daran einen Rechenfehler zu beheben, weil witzigerweise die Klicks auf dem Bildschirm an den korrekten Stellen erkannt und nur die grafischen Inhalte außerhalb vom Screen gemalt werden:

Das die ganzen Gnome App-Windows so Ihr Eigenleben führen, wissen wir ja. Starten die Fenster aus irgendeinem völlig unerfindlichen Grund mit Fenstern, die BREITER sind als der Bildschirm breit ist, reagieren die nicht auf Maximieren. Minimieren geht, aber Maximieren wird ignoriert. Das zu erwartende Verhalten wäre übrigens, kleiner zu werden und sich maximal dem Fenster anzupassen. Dann gibt noch die Appfenster, die darauf reagieren, aber einen Rand lassen! Was an „Maximieren“ ist eigentlich so schwer zu verstehen???

Von der Tagesform abhängig scheint auch der Inhalt zu sein. Das Gnome-Control-Center aka „Einstellungen“ hat einen an sich coolen weg mit Platzproblemen umzugehen. Es zeigt einfach nur die Auswahliste der Sektionen an und dann hinter den Namen einen kleinen Pfeil „>“, drückt man drauf, wird der Inhalt des Fensters eine „Etage“ nach Links geschoben, so daß man die Kontrollen benutzen kann. Theoretisch. Praktisch kommt es vor, daß das Fenster mal so, oder zweigeteilt erscheint. Dann sind links die Sektionsnamen und rechts die Kontrollen.

„..zu erwartendes Verhalten..“

Apropos „zu erwartendes Verhalten“, da meinte doch einer dazu, daß die Hotcorner links oben ( Activities ) zu recht nicht gehen würde, weil eine App im Fullscreen wäre. Blöd nur, daß gar nicht die Hotcorner Funktion gemeint war, sondern das Activities Button links oben in der Ecke selbst, das man sich mit dem Links->Rechts Swipe aus einer Fullscreenapp reinswipen kann, dann aber nicht funktioniert und jetzt kommts, mit der Begründung, „das wäre ja absichtlich so“. Ihr vermutet richtig, es war der gleiche Witzbold. Ich habe nahegelegt, doch die Erwartungshaltung zu ändern, weil die Fullscreenapp in dem Moment, wo man das Activities-Button zu sehen bekommt, eh nicht mehr zu sehen ist, sondern der Dock, den man reingeswipt hat. Leider keine Reaktion bekannt.

Statt sich mit Bugs auseinander zu setzen, wird gern mal an der Form moniert. Ich gebe da alle relevanten Infos an, wenn da mal bei „onboard“ die Anführungszeichen fehlen, wird gleich auf stur gestellt. ( Genau, Der Herr 😉 ) Ich muß allerdings auch gestehen, nach den ersten Bugs, hatte ich echt keinen Bock mehr deren Bugtrackerwahl ( Gitlab ) auszubaden, wo man sich erst das Projekt ( wenn man es denn kennt, was ich nicht zwangsläufig weiß ) auswählt und dann erst einen Bugreport anklicken kann. Wenn man Bugtracker kennt, sind da als erstes alle bekannten Komponenten in einer Auswahlbox und dann legt man mit Auswahl des OS, Architektur usw. los. Eine Singlepageanwendung quasi, nicht so bei Gitlab.

Wenn man es schon mehr zu seinem eigenen Projekt weiß als die Bugreporter, dann sollte man das einfach dem Projekt zuweisen und loslegen. Meine Meinung.

Die Ursache für die ganzen Bugs war übrigens die Maximierenfunktion meines Scripts, mit der alle neugestarteten Anwendungen handygerecht groß gemacht werden, weil sonst in der Regel unbrauchbar. Komisch ist nur, daß es bei Nicht-Gnome-Fenstern keine Probleme damit gab 😉

Zurück zum Pinephonetest in freier Wildbahn

Was passiert mit zu sensitiven Touchgeräten? Weiß man nicht, weil die Batterie auf mysteriöse Weise schnell erschöpft ist. Woher ich das weiß? Ich habe meins rechtzeitig aus der Hosentasche gezogen.

Wie Ihr ja wisst, habe ich dem Power-Button beigebogen, das Handy in den Stand-By zu schicken. Das dumme an Powerbutton mit rausstehendem Knopf ist, das sie beim Gehen von alleine gedrückt werden. Das Ende vom Lied ist, die starten dann, landen im Lockscreen und … bleiben da 🙁

Denn das Display ist so sensitiv, was zwar gut bei der gewollten Eingabe, aber sehr schlecht in der Hosentasche ist. Nach 20 Sekunden habe ich aufgegeben auf DELETE zudrücken  und einfach Login geklickt, damit das Eingabefeld für das Passwort wieder frei wird. Das ist natürlich nicht das einzige Problem das daraus resultiert. Weil alle paar Sekunden eine Eingabe erkannt wird, geht der Lockscreen nicht wieder aus. Der Bildschirm bleibt an und der zieht so 0.5 W zu den 1.5 W, die im Lockscreen ohnehin verbraucht werden.

So kann das Pinephone leider nicht ernsthaft bleiben, weil es unbrauchbar ist. Auch der Einsatz des extra für mobile Endgeräte entwickelten Phosh Desktops, hilft nur bedingt weiter. Auch da sind Schaltflächen zu klein, Fenster zu breit und frech wie oskar kann man sich mit Phosh 0.6 nicht mal mehr abmelden um einen anderen Desktop zu starten, Phosh 0.7 crasht gleich beim Start und 0.7.1 war noch nicht verfügbar.

„Housten, haben wir irgendwas das wie gewollt funktioniert?“

Ich habe vorhin entspannt „Battle of Wesnoth“ gespielt, bis der Akku „plötzlich“ leer war. Die meiste Zeit habe ich auf „Zug beenden“ gehämmert, aber naja 😀

Wenn man mal von dem Kram oben absieht, dem viel zu hohen Stromverbrauch und dem Umstand, daß ich immer noch nicht mit Fedora telefonieren kann, können wir auf das Jahr 2021 hoffen. Es kann eigentlich nur besser werden.

Also dann: Wir sehen uns in 2021 😀 Guten Rutsch Euch allen!

Pinephone: Ein Schritt in Richtung Normalität

Heute, am zweiten Weihnachtstag, bringen wir nochmal etwas Normalität auf das Pinephone. Normal ist da nichts, aber das sollte uns nicht aufhalten 🙂

Pinephone: Ein Schritt in Richtung Normalität

Was fehlte denn bislang? Wir haben zwar Video, aber nur per MPV und Konserve. Da kommt jetzt Youtube gerade recht, wenn da nicht der Browser im Weg wäre 🙁 Der aktuelle Chromium 87x für ARM64 hat leider ein paar gravierende Bugs im Rendering und Umgang mit GPU, weswegen man viele Texte nicht sieht. Das hatte ich ja schon erwähnt: Chromium: Probleme Texte zu rendern kein Pinephoneproblem

Was tun?

Einfach den 85er Chromium benutzen, der hat die Bugs nämlich nicht. Solange man damit nur Youtube und eine klitze kleine andere Überraschung macht, ist das Sicherheitstechnisch kein Problem.

sudo dnf -y downgrade https://kojipkgs.fedoraproject.org//packages/chromium/85.0.4183.121/2.fc34/aarch64/chromium-common-85.0.4183.121-2.fc34.aarch64.rpm https://kojipkgs.fedoraproject.org//packages/chromium/85.0.4183.121/2.fc34/aarch64/chromium-85.0.4183.121-2.fc34.aarch64.rpm

Damit ziehen wir uns die alte Version vom Chromium für Fedora 34 rein.

Warum die 85? Kommt gleich 🙂

Wie man sehen kann, funktioniert Youtube damit und das sehr viel besser als Firefox, die Werbung stört natürlich auch hier, aber da kann man nicht viel machen, weil FreeTube nicht für ARM gebaut wird afaik.

Ein paar GPU Renderblips zeigt der Chromium dann, aber das ist verschmerzbar, weil es nur beim Aufbau der UI vorkommt, beim Playback war es nicht zu beobachten.

Jetzt kommt das Problem damit: Chromium ist extrem folgend bei DPI-Scaling, das wir aber brauchen um das Gnome-UI so groß zu bekommen, daß man es auf dem Pine mit Fingern bedienen kann. D.b. in der Praxis, wenn wir das Scaling in Gnome-Tweaks auf 1,5+ stellen, dann paßt der Inhalt von Chromium nicht mehr auf dem Screen. Das ist eigentlich unlogisch, weil das nur die UI also Gnome-Shell und Windowmanager betreffen sollte, aber keine Inhalte, aber Chromium macht das dann auch mit seinem Inhalt.

Ich verurteile das nicht, weil es kein echtes Fehlverhalten ist, aber hilfreich war das auch nicht, weil einige Steuerelemente der UI ( hier im Bild von Firefox illustriert, der hat das gleiche Problem ) nicht erreichbar sind, weil es abartig groß vergrößert wurde ohne einen Sanitycheck einzubauen, ob die Elemente dann überhaupt noch in den Bildschirm passen, was sie bei Chromium dann nicht mehr tun.

Jitsi Meet

Hier also der Kompromiss: Wir drehen die Größe der Fonts im Tweaktool rauf, dafür die DPI-Skalierung runter, zwischen 1 und 1,25. Damit kann man im Portraymode Chromium so starten, daß alles auf den Bildschirm paßt.

Das führt dann zum gewünschten Ergebnis: Jitsi Meet funktioniert jetzt mit Screensharing und Ton \o/

Allerdings werdet Ihr da nicht froh werden, denn Chromium verbrennt da jetzt ungelogen die gesamte CPU Leistung von 4 Kernen. Deswegen knackt der Ton auch etwas, es laggt in der App, was Video und Ton betrifft, die Gnome-Oberfläche ist nicht direkt eingefroren, aber langsam. Der CPU verbrennt so 3.67W/s, so daß man der Akkuladung beim Entladen live zusehen kann 🙂

Netflix geht damit leider nicht, weil für ARM das Widevine DRM Modul nicht verfügbar ist, da es nicht für Chrome kompiliert wurde und so nicht integriert werden kann. ( Nette Anleitung bei Chip, wie man das opportunistisch organisiert 😉 ). Merke: Kein Netflix für Pinephones 🙁

LollyPop Update

Viel bessere Nachrichten gibt es von der Lollypop-Front: das Update 1.4.7 ist da und behebt alle Bugs, die ich bislang finden konnte \o/ Das sieht dann so wie rechts aus, wenn man die DPI-Skalierung wieder etwas anhebt ( 2,00 ).

Damit läßt sich richtig gut auf dem Pinephone arbeiten und ich sage das nicht leichtfertig. Es ist hier definitiv viel sinnvoller als QMMP. Es scrollt sich herrlich, wenn man an den trägen Nautilus denkt. Bis man aus dem einen Klick rausgeholt hat, keine Ahnung wer das bei wieder verbrochen hat 😀

Wer meinem Guide zu Beginn gefolgt ist, der hat Lollypop jetzt bereits drauf und muß nur kurz das Update einspielen. Jetzt müssten nur die Kopfhörer gut funktionieren und die Sache wäre perfekt 🙂

 

Pinephone: Judgement Day!

 

 

Pinephone: wie man ohne Phosh ein Handyfeeling simuliert

Was haben Pinephone Apps und Android Apps nicht gemeinsam? Genau, jede Pinephone aka Linuxapp macht ihr eigenes Fenster in ihrer Lieblingsgröße auf. Das ändern wir heute.

Pinephone: wie man ohne Phosh ein Handyfeeling simuliert

Um das machen zu können, brauchen wir ein dauerhaft laufendes Programm. Idealerweise würde so etwas der Windowmanager übernehmen, der läuft eh, aber da es Gnome ist, naja, nicht so schnell umsetzbar. Also machen wir das mit einem Script: windowmaximixerwatch

#!/bin/bash

rm -f /tmp/liste
i="0"
while [ $i -lt 1 ];
do 
	windowmaximizer > /dev/null
	sleep 1
	RC=$(ps auxf| grep -c gnome-shell)
	if [ $RC -eq 0 ]; then 
		i=1
	fi
done

Diese Datei wird nach /home/pine/.local/bin/windowmaximizerwatch geschrieben

„Das macht ja gar nicht so viel“ Stimmt, aber das ist ja auch nur ein Teil davon. Wie man leicht erkennen kann, ist das eine Programmschleife, die nur dann abbricht, wenn kein Gnome-Shell-Prozess (mehr) vorhanden ist.

Das Programm „windowmaximizer“ ist auch nur wieder ein Shellscript, das die ganze Arbeit macht:

#!/bin/bash

#1 
ISONBOARDOPEN=$(wmctrl -l | grep -c Onboard)

#2 
RESOLUTION=$(xdpyinfo | grep dimens | awk '{print $2;}')
X=$( echo $RESOLUTION | awk -F "x" '{print $1;}')
Y=$( echo $RESOLUTION | awk -F "x" '{print $2;}')

#3
ORIENTATION="landscape"
if [ $Y -gt $X ]; then 
        ORIENTATION="portray";
fi

#4 
LASTORIENTATION=$(cat /tmp/display.orientation.last);
if [ "$LASTORIENTATION" != "$ORIENTATION" ]; then

        # REMOVE OLD IDs as all needs to get maxed newly, because we had a layout orientation switch
        rm -f /tmp/liste
fi

echo "$ORIENTATION" > /tmp/display.orientation.last;

#5 create new /tmp/liste if missing:

touch /tmp/liste

# place Onboard window at the correct position and define variables for wmctrl cmds:

if [ "$ORIENTATION" == "portray" ]; then

        wmctrl -l | grep Onboard | awk '{print "echo "$1";wmctrl -i -r "$1" -e 2,0,1170,720,270";}' | bash
        TOP=41
        WIDTH=720
        if [ $ISONBOARDOPEN -eq 0 ]; then 
                HEIGHT=1440
        else 
                HEIGHT=1130
        fi

else
        wmctrl -l | grep Onboard | awk '{print "echo "$1";wmctrl -i -r "$1" -e 2,0,450,1440,270";}' | bash
        TOP=41
        WIDTH=1440
        if [ $ISONBOARDOPEN -eq 0 ]; then 
                HEIGHT=720
        else 
                HEIGHT=410
        fi
fi 

#6 now ALL windows WITHOUT Onboard, that are still unprocessed ( not in our brain file ), get processed. This is needed as resizing causes a lot of pain to the eye, as it flickers, even if it's not needed.

LISTE=$(wmctrl -l | grep -v Onboard | awk '{print $1;}')

for id in $LISTE
do 
        echo "processing $id";
        RC=$(grep -c $id /tmp/liste)
        if [ $RC -eq 0 ]; then 
                echo "resizing $id"
                wmctrl -i -r "$id" -e 5,0,$TOP,$WIDTH,$HEIGHT
                wmctrl -i -r "$id" -b toggle,maximized_vert,maximized_horz
                wmctrl -i -r "$id" -e 5,0,$TOP,$WIDTH,$HEIGHT
#               wmctrl -i -r "$id" -b remove,fullscreen
                echo $id >> /tmp/liste
        fi
done

#7
# Now we check, if all ids in your brain file are still open windows. Thats needed, because same windows, get the same id, when they are closed and repopend.
# if they are closed we need to remove the id, because we need to reposition them again on next open.

LISTE=$(cat /tmp/liste)
for id in $LISTE
do

        RC=$(wmctrl -l |grep -c $id)
        if [ $RC -eq 0 ]; then
                # Entferne Windows die weg sind!

                echo "remove id $id";

                grep -v $id /tmp/liste > /tmp/liste2;
                rm -f /tmp/liste;
                mv /tmp/liste2 /tmp/liste;
        fi 
done

Diese Datei wird nach /home/pine/.local/bin/windowmaximizer geschrieben.

  1. wir stellen erstmal fest, ob das Onboard OSK läuft. Das ist wichtig für die Berechnung der Fenstergröße, auf die die Apps gezogen werden müssen.
  2. xdpyinfo teilt uns die Bildschirmauflösung und jede Menge anderen Kram mit.
  3. Anhand der ermittelten X/Y Koordinaten legen wir fest, ob wir im Landscapemode ( 1440×720 ) oder Portraymode ( 720×1440 ) arbeiten.
  4. Wenn sich die Orientierung innerhalb des letzten Aufrufes geändert hat, löschen wir die gesicherten FensterIDs, so daß alle Fenster auf die neuen Gegebenheiten umgeändert werden.
  5. nun repositionieren wir das Onboard OSK passend zur Orientierung an die richtige Stelle und berechnen gleich noch die Variablen für die Fensterhöhe und -breite.
  6. nun werden alle Fenster, deren FensterIDs wir noch nicht bearbeitet hatten, was in einer Datei gespeichert wird, auf Position gebracht. Das sind die, die in der letzten Sekunde noch nicht da waren.
  7. Natürlich muß man auch mal aufräumen, was in diesem Fall meint, daß alle FensterIDs aus der Speicherung entfernt werden, die nicht mehr präsent sind. Normalerweise würde man ja annehmen, daß FensterIDs fortlaufend sind, aber nicht bei uns, da werden die FensterIDs wiederverwendet. Tja.

Das funktioniert ganz gut, von Gnome selbst mal abgesehen. Alles was wir jetzt noch machen müssen, ist dem ganzen ein Desktopfile zu erstellen, damit es in der Appübersicht auftaucht:

[Desktop Entry]
Version=1.0
Name=WindowMaximizer
Name[de_DE]=WindowMaximizer
Exec=windowmaximizerwatch
#Terminal=false
Type=Application
StartupNotify=true
#Icon=cs-login
Icon=/usr/share/icons/Mint-X/apps/96/cs-login.svg
MimeType=x-content/unix-software
Categories=Network;
Keywords=web;internet;
X-Desktop-File-Install-Version=0.23

Diese Datei wird nach /usr/share/applications/windowmaximizer.desktop geschrieben.

Wenn alle Shellscripte mit chmod 755 versehen wurden, kann es losgehen. Ich rate dazu ein anderes Icon zu benutzen, da müßt Ihr allerdings selbst sehen, welches Ihr nehmen wollt.

Mit dem Gnome-Tweak-Tools ( Optimierungen ) kann man das Script als App im Startmenü platzieren und so sollte es beim nächsten Start des Desktops automatisch mitstarten. Wenn es das nicht tut, einfach von Hand selbst starten.

Ab nun werden alle-gnome Fenster maximiert und selbst bei Gnome-Fenstern klappt das gelegentlich ( die haben so eine Art Tagesform ). Wer das ganze verbessern will, kann noch eine APP Datenbank aufbauen, aus der z.b. festgelegt wird, ob eine Anwendung in Fullscreen gehen soll, oder nicht. Ist nur so ein Gedanke.. an einen weiteren Bugreport bei Gnome 😉 Natürlich habe ich das schon ausprobiert 😀

In 3 Tagen sehen wir uns wieder. Achtet auf die täglichen kleinen Pine Updates, die kommen alle außer der Reihe rein. Öfters Reinschauen oder gleich den RSS-Feed abonnieren.

 

Pinephone: Ein Schritt in Richtung Normalität