¿Cómo puedo administrar los iconos de "escritorio"?

Quiero eliminar todos los íconos en el escritorio (y también en la barra inferior) y colocar otros nuevos a través de ADB. ¡Mi secuencia de comandos ya elimina todas las aplicaciones, pero los íconos / accesos directos permanecen allí!

¿Hay algún comando para hacer esto? ¿O tal vez un archivo xml o algo que pueda editar?

Nota: tengo acceso de root.

Estoy bastante seguro de que cualquier respuesta para eliminar los íconos de la pantalla de inicio dependerá en gran medida del iniciador que esté ejecutando. ¿Sabes qué lanzador estás ejecutando? Si no es así, ¿qué marca/modelo/versión de sistema operativo del teléfono está buscando? ¿Está utilizando el iniciador predeterminado que viene con él o ha cargado otro?
Es el iniciador de Android predeterminado... Mi versión de Android es 4.2.2

Respuestas (2)

El iniciador predeterminado en mi stock Android 4.2.1 y CM12 contiene esos accesos directos de la pantalla de inicio en una tabla con el nombre favoritesdentro launcher.db. Si ese es su caso, todo lo que tiene que hacer es vaciar el contenido de esa tabla, reiniciar el iniciador y todo desaparecerá para siempre.

Una consulta general sería:

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

(Descargue sqlite3 si no está presente en el sistema).

Para mi iniciador de acciones en Android 4.2.1, la consulta sería:

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

Sin embargo, primero debe analizar qué .dbarchivo, y qué tabla en particular, contiene realmente las cosas relevantes.

  • Para eso, puede usar SQLite Editor o aSQLite Manager para ubicar la base de datos y la tabla relevantes. O bien, puede utilizar adb pulltodos los archivos de la base de datos del lanzador y abrirlos en un programa sqlite en una PC como DB Browser for SQLite para encontrar la tabla correcta.

  • Para una forma de línea de comandos, puede usar este comando para enumerar todas las tablas en una base de datos suministrada:

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

    Para crear accesos directos, primero debe conocer su estructura en la tabla. Use .schemaentonces SELECT * <PARAMS>para ver el contenido. Puede obtener ayuda (para hacer una consulta) de este recurso .

    Sin embargo, recomendaría elegir GUI sobre CLI para ver la información sobre accesos directos. Además, siempre haga una copia de seguridad antes de modificar este tipo de cosas .

Una vez que haya terminado de vaciar el contenido de la tabla, haga lo siguiente:

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

P.ej:

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

o

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

Prueba esto:

adb shell pm clear com.android.launcher

(creo que es el nombre único del lanzador en 4.4.2, cámbialo si me equivoco)

Estoy usando una imagen de Android x86_64 que viene con el SDK de Android 24 y el nombre del paquete es com.android.launcher3.