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

9

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

Al cambiar las ROM, el caché Dalvik se borra y cuando el teléfono se reinicia, ve una barra de progreso que dice que Android está optimizando las aplicaciones. Entonces, dada una cantidad razonable de aplicaciones, el caché dalvik llena el almacenamiento mucho antes de que link2sd pueda hacer algo al respecto.

Entonces, ¿hay alguna manera de montar una carpeta de tarjeta SD como la ubicación de caché adecuada antes de que el sistema inicie el arranque y haga sus negocios? Sé que podría implicar la creación de un enlace simbólico, pero no sé cuándo se montan las cosas y en qué orden.

Eshwar
fuente

Respuestas:

2

Por supuesto que puede. Aunque parece que no hay problema para migrar dalvik-cache a un sistema de archivos de tarjeta SD normal (el más común, vfat), todavía es muy recomendable que formatee su tarjeta SD a ext4 (o lo mismo que su /data) para asegurarse de que todo funcione multa.

Entonces vamos. Se recomienda una copia de seguridad completa de todas sus aplicaciones antes de continuar, aunque si se siente afortunado, no es obligatorio. Suponiendo que tiene un emulador de terminal para hacer los trabajos necesarios.

Primero, cree una carpeta a la que desee migrar su dalvik-cache. Luego chmody chownla nueva carpeta para que coincida /data/dalvik-cache. Si está ejecutando un sistema operativo Android habilitado con SELinux, no olvide cambiar los contextos de seguridad de manera correspondiente. correr

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

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

A continuación, copie todos los archivos de /data/dalvik-cachesu nueva ubicación, por ejemplo /storage/sdcard1/dalvik-cache. Puede usar el cp -acomando para preservar los atributos del archivo, lo que simplificaría las cosas.

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

Luego, rm -r /data/dalvik-cachey cree un enlace simbólico a la nueva ubicación usando

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

Eso es todo. Ya hemos terminado Reinicie su teléfono (no es obligatorio pero se recomienda).

Algunos avisos sobre este proceso:

  1. Puede que el busybox no siempre funcione bien, ya que Android se basa en un kernel de Linux altamente modificado. Por ejemplo, casi todas las funciones relacionadas con SELinux no funcionan correctamente. Puede 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 retire su tarjeta SD. Si vuelve a formatear su tarjeta SD, asegúrese de que siga siendo ext4 Y vuelva a crear la carpeta dalvik-cache antes de iniciar su teléfono por primera vez.

iBug
fuente
No tenía idea de cómo escribí esta respuesta integral cuando la volví a ver después de un año. Supongo que me he olvidado mucho de Android (que por supuesto es imposible).
iBug
1

Hay algunos buenos Howtos disponibles, que pueden 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 el caché Dalvik a su tarjeta SD.

Izzy
fuente
1
Sería bueno si pudieras agregar alguna información de los enlaces en tu publicación
Flow
Eso es un poco demasiado para integrar con mi respuesta, por lo que solo extraje la pista básica, es decir, la aplicación para hacer el trabajo.
Izzy