Wie kann ich „Desktop“-Symbole verwalten?

Ich möchte alle Symbole auf dem Desktop (und auch in der unteren Leiste) entfernen und neue über ADB platzieren. Mein Skript entfernt bereits alle Apps, aber Symbole/Verknüpfungen bleiben dort!

Gibt es dafür einen Befehl? Oder vielleicht eine XML-Datei oder etwas, das ich bearbeiten kann?

Hinweis: Ich habe Root-Zugriff.

Ich bin mir ziemlich sicher, dass jede Antwort auf das Entfernen von Startbildschirmsymbolen sehr davon abhängen wird, welchen Launcher Sie ausführen. Weißt du, welchen Launcher du verwendest? Wenn nicht, welche Marke/Modell/OS-Version des Telefons suchen Sie? Verwenden Sie den mitgelieferten Standardstarter oder haben Sie einen anderen geladen?
Es ist der Standard-Android-Launcher ... Meine Android-Version ist 4.2.2

Antworten (2)

Der Standardstarter in meinem Standard-Android 4.2.1 und CM12 enthält diese Startbildschirm-Verknüpfungen in einer Tabelle mit dem Namen favoritesdarin launcher.db. Wenn das Ihr Fall ist, müssen Sie nur den Inhalt dieser Tabelle löschen, den Launcher neu starten und das Zeug wäre endgültig verschwunden.

Eine allgemeine Abfrage wäre:

adb shell su -c 'sqlite3 /data/data/<YOURLAUNCHER>/databases/<.DB_FILE> "DELETE from <TABLE>"'

(Laden Sie sqlite3 herunter , wenn es nicht im System vorhanden ist.)

Für meinen Stock Launcher in Android 4.2.1 wäre die Abfrage:

adb shell su -c 'sqlite3 /data/data/com.android.launcher/databases/launcher.db "DELETE from favorites"'

Allerdings müssen Sie zunächst analysieren .db, in welcher Datei und insbesondere in welcher Tabelle die relevanten Inhalte tatsächlich enthalten sind.

  • Dazu können Sie den SQLite-Editor oder den SQLite-Manager verwenden , um die relevante Datenbank und Tabelle zu finden. Oder Sie können adb pullalle Datenbankdateien des Startprogramms in einem SQLite-Programm auf dem PC wie DB Browser for SQLite öffnen , um die richtige Tabelle zu finden.

  • Als Befehlszeilenmethode können Sie diesen Befehl verwenden, um alle Tabellen in einer bereitgestellten Datenbank aufzulisten:

    adb shell su -c 'sqlite3 /data/data/<YOURLAUNCHER>/databases/<A_DB_FILE>  ".tables"'
    

    Um Verknüpfungen zu erstellen, müssen Sie zunächst deren Struktur in der Tabelle kennen. Verwenden Sie .schemadann SELECT * <PARAMS>, um den Inhalt anzuzeigen. Sie können Hilfe (bei der Erstellung einer Abfrage) von dieser Ressource erhalten .

    Ich würde jedoch empfehlen, GUI über CLI zu wählen, um die Informationen zu Verknüpfungen anzuzeigen. Machen Sie außerdem immer eine Sicherungskopie, bevor Sie solche Dinge optimieren .

Wenn Sie den Inhalt der Tabelle geleert haben, gehen Sie wie folgt vor:

adb shell su -c 'am force-stop <PKG_NAME>'

Z.B:

 adb shell su -c 'am force-stop com.android.launcher'

oder

adb shell su -c 'am force-stop com/cyanogendmod.trebuchet'

Versuche dies:

adb shell pm clear com.android.launcher

(Ich denke, es ist der eindeutige Name des Launchers in 4.4.2, ändere ihn, wenn ich falsch liege.)

Ich verwende ein x86_64-Android-Image, das mit dem Android 24 SDK geliefert wird, und der Paketname lautet com.android.launcher3.