Du bist hier:Start»CyanogenMod»LineageOS»Pimp Your Desktop

Pimp your LineageOS desktop

06.10.2018

Icons auf dem Desktop

Der Desktop von Android beziehungsweise LineageOS wird "Launcher" genannt. Der Launcher macht nichts anderes als ein Desktop: Symbole auf einem unsichtbaren Raster darstellen und durch Klicken beziehungsweise Tippen die App starten. Der Launcher von LineageOS nennt sich Trebuchet. Leider lassen sich die Symbole und die Symboltitel bei Trebuchet nicht über die grafische Oberfläche verändern. Einen anderen Launcher wollte ich mir nicht installieren. Mit der Kommandozeile ist es allerdings doch möglich die Logos und Titel in Trebuchet zu modifizieren.

Warnhinweis

Die folgende Anleitung habe ich für LineageOS Version 14 getestet. In neueren Versionen von LineageOS können die Einstellungen etwas anders aussehen. Deshalb übernehme ich keine Gewähr für eventuelle Probleme.

Die Desktop Symbole ändern

Die mobile Browserversion von Firefox wurde Fennec genannt. Das Desktopsymbol von Fennec ist ein Wüstenfuchs mit seinen großen Ohren. Auf mich wirkt das Logo ein wenig abschreckend, weshalb ich es durch ein anderes Symbol ersetzen wollte.

Symbol ändern

Fennec in Firefox umbenennen

Um mich in LineageOS einzuloggen, benutze ich die Android Debug Bridge auf meinem Laptop, das über ein Micro-USB-Kabel mit dem LineageOS-Gerät verbunden ist. Alternativ kann auch eine Terminal App in LineageOS direkt benutzt werden. Auf jeden Fall werden eine Kommandozeile und Root-Rechte benötigt. Die Symbole und die Symbolbeschriftung werden vom Launcher Trebuchet in der Datenbank "app_icons.db" gespeichert. First things first: Zuerst sollte die Datenbank app_icons.db mit den Einstellungen von SELinux und der Benutzer-ID gesichert werden. Falls etwas schief laufen sollte, dann gibt es immer wieder die Möglichkeit die Datenbank als Datei zurückzukopieren.

# log in on LineageOS via Android Debug Bridge
adb shell

# become root
su -c bash

# create a backup of the icon database
cd /data/data/com.cyanogenmod.trebuchet/databases/
cp -a app_icons.db /data/media/0/app_icons.db

# save the security context and user id
ls -lZ app_icons.db > /data/media/0/app_icons.db.fileinfo.txt

exit

# you can copy the database to your computer
adb pull /data/data/com.cyanogenmod.trebuchet/databases/app_icons.db

# if the above does not work you can try:
# adb pull /sdcard/app_icons.db

# and browse data with sqlitebrowser
sqlitebrowser app_icons.db

Als nächstes werden über eine Datenbankabfrage mit sqlite3 die internen Namen der Apps angezeigt. Dazu wird aus der Tabelle "icons" die Spalte "componentName" ausgewählt (select). SQL wird auch als "Structured Query Language" also "Strukturierte Abfrage-Sprache" bezeichnet. Mit meiner Anleitung sollte die Datenbankabfrage allerdings auch ohne das Studium von SQL möglich sein.

# log in again
adb shell

# show available apps on the desktop
cd /data/data/com.cyanogenmod.trebuchet/databases/
sqlite3 app_icons.db "select componentName from icons"

# example output:
org.mozilla.fennec_fdroid/org.mozilla.fennec_fdroid.App
net.osmand.plus/net.osmand.plus.activities.MapActivity
org.videolan.vlc/org.videolan.vlc.
org.videolan.vlc/org.videolan.vlc.StartActivity

App-Namen ändern

Anhand des componentName kann jetzt die Bezeichnung (label) der App über sqlite aktualisiert werden (update). Von den zwei Einträgen des Mediaplayer VLC wird nur "StartActivity" benötigt. Die folgenden Beispiele geben einen Eindruck, wie der Symbolname geändert werden kann. Damit Trebuchet die geänderte Datenbank neu lädt, muss Trebuchet über den ActivityManager (am) gestoppt werden. Sollte Trebuchet nicht automatisch neu gestartet werden, dann muss mit dem Power-Knopf der Bildschirm kurz aus- und wieder angeschaltet werden.

cd /data/data/com.cyanogenmod.trebuchet/databases/

# change icon title from "VLC" to "Media"
sqlite3 app_icons.db "update icons set label='Media Player' where componentName like '%org.videolan.vlc.StartActivity%';"

# change icon title from "OsmAnd~" to "Karten"
sqlite3 app_icons.db "update icons set label='Karten' where componentName like '%osmand%';"

# change icon title from "Fennec" to "Firefox"
sqlite3 app_icons.db "update icons set label='Firefox' where componentName like '%org.mozilla.fennec%';"

# change icon title from "MuPDF viewer" to "PDF and Ebooks"
sqlite3 app_icons.db "update icons set label='PDF and Ebooks' where componentName like '%artifex.mupdf.viewer%';"

# change icon title from "ConnectBot" to "Terminal"
sqlite3 app_icons.db "update icons set label='Terminal' where componentName like '%org.connectbot.HostListActivity%';"

# restart launcher Trebuchet
am force-stop com.cyanogenmod.trebuchet

# if Trebuchet is not restartet automatically
# then simulate power button twice
input keyevent KEYCODE_POWER
input keyevent KEYCODE_POWER

Symbole ändern

Wenn das Ändern der Symbolnamen funktioniert hat, dann sollte es auch funktionieren, das Symbol zu ändern. In der Datenbank von Trebuchet wird das Symbol als BLOB (Binary Large OBject) gespeichert. Dieses Binärobjekt ist ein PNG Bild (Portable Network Graphics) mit der Größe 123 x 123 Bildpunkten - 128 x 128 funktioniert auch. Das BLOB wird mit einem vorangestellten X und hexadezimalen ASCII-Zeichen dargestellt - zum Beispiel: X'1234567890ABCDEF'. Zur Information kann über den Befehl ".dump" die komplette Datenbank mit den BLOBs angezeigt werden. Das Programm xxd kann eine Bild-Datei in ASCII-Zeichen umwandeln. Mit den folgenden Befehlen wird das Firefox-Logo "firefox.png" zum LineageOS-Gerät kopiert und über "sqlite update" das Bild in der Datenbank aktualisiert.

# copy a firefox logo from your computer to the smartphone
adb push firefox.png /data/media/0/

# log in on LineageOS
adb shell

cd /data/data/com.cyanogenmod.trebuchet/databases/

# update the icon as blob in the database
sqlite3 app_icons.db "update icons set icon=X'$(xxd -p /data/media/0/firefox.png | tr -d '\n' | tr -d ' ')' where componentName like '%org.mozilla.fennec%';"

# restart launcher Trebuchet
am force-stop com.cyanogenmod.trebuchet

# if Trebuchet is not restartet automatically
# then simulate power button twice
input keyevent KEYCODE_POWER
input keyevent KEYCODE_POWER


# dump the icon database with the BLOBs (optional, for information)
sqlite3 app_icons.db .dump

Wer zuviel Zeit hat, kann sich Desktopicons mit dem kostenlosen Programm Inkscape malen. Ansonsten stellen beispielsweise folgenden Webseiten Logos beziehungsweise Icons bereit:

Die Desktop-Einstellungen von Trebuchet

Durch langes Drücken auf den Desktop erscheint ein Menü, über das der Hintergrund und die Widgets konfiguriert werden können. Die drei unscheinbaren Punkte in der Mitte des Menüs führen zu den Einstellungen von Trebuchet.

Einstellungen des Desktops

Einstellungen des Desktops

In den Einstellungen kann zum Beispiel die Größe der Symbole geändert werden.

Einfarbiger Hintergrund

Leider bietet LineageOS 14 nicht mehr die Möglichkeit einen einfarbigen Hintergrund auszuwählen. Abhilfe schafft zum Beispiel die App Simply Solid.

Kommentar schreiben

Ihre Daten werden verschlüsselt übertragen. Der Kommentar wird gelesen und eventuell veröffentlicht.
Wenn der Inhalt des Kommentars oder Teile des Kommentars nicht veröffentlicht werden, dann werden die gespeicherten Daten nach maximal 4 Wochen gelöscht. Um zukünftigen Missbrauch der Kommentarfunktion zu verhindern, werden die zum Kommentar gehörenden IP Adressen maximal 4 Wochen gespeichert.