Izzy opinó correctamente aquí que el único lugar sensato para tener el diseño de la pantalla de inicio de fábrica es el propio APK del lanzador.
Como no tengo un dispositivo Lenovo y mucho menos tu modelo específico, utilicé mi dispositivo MTK con la versión 4.2.1 de stock como campo de pruebas. Tiene el lanzador de stock ( com.android.launcher
).
Sobre esa cosa llamada diseño de pantalla de inicio de fábrica -- un lanzador suele tener una o más bases de datos dentro de su /data/data/..
y una de esas bases de datos tiene una tabla llamada favorites
(el nombre puede variar entre los lanzadores pero la idea es la misma). (Ver mi respuesta para ¿Cómo puedo gestionar los iconos del "escritorio"? para saber de qué estoy hablando).
La configuración por defecto que se ve no es más que un código en el APK que crea la(s) base(s) de datos desde cero y rellena el favorites
tabla con entradas codificadas (como "Contactos", "Teléfono", "Mensajes", "Chrome" en el muelle).
Por ejemplo, véase este fragmento de código del código fuente de com.android.launcher
:
El código está disponible aquí . Si se observa con atención unas líneas por encima de la línea 262, se verá que el código está creando una nueva base de datos con el esquema adecuado y luego rellenando la base de datos con favorites
tabla que está disponible para ella.
En este punto, no me molesté en indagar más para saber, ¿dónde está este favorites
o el contenido relacionado se guarda, ya que mi conclusión se extrae de los lanzadores personalizados también que tienen un diseño diferente pero de fábrica (claramente no se guarda fuera del APK).
Yo recomendaría echar un vistazo al código fuente (siempre que puedas encontrarlo primero) de tu launcher por defecto, o extraer el APK y escarbar en res
carpeta. Encontré algunas cosas interesantes en res/xml/
.
Oh, si alguien quiere experimentar sobre la pregunta del OP entonces le sugiero que lo haga Borrar datos de Ajustes → Aplicaciones → Todas las aplicaciones → <Your Launcher>
ya que tendría el mismo efecto que hacer un restablecimiento de fábrica (no Hard reset) .
0 votos
Genial, ¡gracias! Lo que se me olvidó preguntar: el dispositivo está rooteado, ¿verdad? Sin Root, las posibilidades son nulas, ya que tendrás que modificar "cosas del sistema" (muy probablemente el
.apk
del lanzador que reside en/system/app
- pero esa parte mejor se la dejo a los que tienen más experiencia que yo).0 votos
@Izzy así que el diseño por defecto está codificado en el .apk??? sí soy Root
1 votos
No es exactamente mi área de experiencia (no soy un dev), pero ese es el único lugar que tiene sentido para mí, por varias razones: 1) los lanzadores son reemplazables, así que, aunque sea posible, no tiene mucho sentido repartir la información por todo el sistema; 2) en init,
/data/data/<package_name>
se creará - pero un restablecimiento de fábrica lo eliminará de nuevo. Entonces, ¿de dónde saldrá? Un lanzador es una "aplicación normal", incluso si se instala como aplicación del sistema. No me gustaría que se "mezclara" con otros componentes del sistema operativo.1 votos
@Izzy ¡Buena puntería! He ampliado la teoría basada en ella con un poco de apoyo de aquí y de allá en mi respuesta.-
1 votos
Bien hecho, @Firelord (+1 en ambos sentidos). Dicho esto, ahora vamos "al límite" - así que, lobi, preguntar cómo cambiar eso probablemente iría más allá del alcance de este sitio - a menos que sólo pretendas repoblar esa base de datos, lo que debería contar como parte de usuario avanzado. Aunque supongo que sabiendo dónde está, serás capaz de averiguar el resto :)