9 votos

¿Puedo cambiar la ubicación de la caché de Dalvik, por ejemplo, con un enlace simbólico?

Actualmente uso Link2SD ya que el almacenamiento de mi teléfono es insuficiente para más de unas pocas aplicaciones esenciales. Es muy efectivo pero se limita a cuando el teléfono está encendido.

Mientras se cambian las ROMs, la caché del dalvik se borra y cuando el teléfono se reinicia se ve una barra de progreso que dice que Android está optimizando las aplicaciones. Así que dado un número razonable de aplicaciones, el caché dalvik llena el almacenamiento mucho antes de que link2sd pueda hacer algo al respecto.

Entonces, ¿hay alguna forma de montar una carpeta de tarjeta SD como la ubicación de caché apropiada antes de que el sistema se ponga en marcha y haga su trabajo? Sé que podría implicar la creación de un vínculo simbólico, pero no sé cuándo se montan las cosas y en qué orden.

2voto

Guillermo Gomez Puntos 423

Por supuesto que sí. Aunque parece que no hay problema para migrar dalvik-cache a un sistema de archivos normal de tarjeta SD (el más común, vfat), sigue siendo muy recomendable que formatees tu tarjeta SD a ext4 (o al mismo que tu /data ) para asegurarse de que todo funciona bien.

Así que vamos. Se recomienda hacer una copia de seguridad completa de todas tus aplicaciones antes de proceder, aunque si tienes suerte, no es necesario. Asumiendo que tienes un emulador de terminal para hacer los trabajos necesarios.

Primero, crea una carpeta a la que quieras migrar tu dalvik-cache. A continuación, chmod y chown la nueva carpeta para que coincida con /data/dalvik-cache . Si está ejecutando un sistema operativo Android habilitado para SELinux, no olvide cambiar los contextos de seguridad en consecuencia. Ejecutar

ls -dlZ /data/dalvik-cache
ls -lZ /data/dalvik-cache

para ver los permisos originales, propietarios/grupos y contextos de seguridad de la carpeta dalvik-cache.

A continuación, copie todos los archivos de /data/dalvik-cache a su nueva ubicación, por ejemplo /storage/sdcard1/dalvik-cache . Puede utilizar cp -a para conservar los atributos de los archivos, lo que simplificaría las cosas.

Asegúrese de que no se inicien nuevas aplicaciones durante el proceso del siguiente paso.

Entonces, rm -r /data/dalvik-cache y crear un enlace simbólico a la nueva ubicación utilizando

ln -s /storage/sdcard1/dalvik-cache /data/dalvik-cache

Eso es todo. Hemos terminado. Reinicie su teléfono (no es necesario pero se recomienda).

Algunos avisos sobre este proceso:

  1. Es posible que el busybox no siempre funcione bien, ya que Android se basa en un kernel de Linux muy modificado. Por ejemplo, casi todas las funciones relacionadas con SELinux no funcionan correctamente. Puedes probarlo como se muestra a continuación.

    toolbox ls -Z /data
    busybox ls -Z /data
    toolbox getenforce
    busybox getenforce

    Sin embargo, estos pueden funcionar correctamente, dependiendo de la versión de Android:

    busybox chcon <context> <files...>
    busybox runcon <context <program> [args...]
  2. Nunca quitar la tarjeta SD. Si vuelves a formatear tu tarjeta SD, asegúrate de que sigue siendo ext4 Y vuelve a crear la carpeta dalvik-cache antes de arrancar el teléfono por primera vez.

0 votos

No tenía ni idea de cómo había escrito esta respuesta tan completa cuando la vuelvo a ver después de un año. Supongo que he olvidado mucho sobre Android (que es, por supuesto, imposible).

1voto

Izzy Puntos 45544

Hay algunos buenos Howtos disponibles, que podrían ser útiles para resolver su problema:

Según varios hilos del foro, A2SDGUI - Darktremor A2SD GUI debería ser la aplicación elegida para mover la caché de Dalvik a tu tarjeta SD.

1 votos

Estaría bien si pudieras añadir algo de información de los enlaces en tu post

0 votos

Son demasiadas cosas para integrarlas en mi respuesta, por lo que sólo he extraído la pista básica, es decir, la aplicación con la que hacer el trabajo.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X