¿Cómo puedo vincular la carpeta /cache en el arranque?

Después de rootear e instalar link2sd en mi HTC Explorer , todavía tengo problemas de poca memoria.

En Google Play, no puedo descargar aplicaciones de más de 10-15M. Esto se debe a que la carpeta /cache está en la memoria interna, que es desesperadamente pequeña. En mi versión, Google Play escribe directamente en /cache, no en subcarpetas.

Usando adb como root, eliminé /cachey creé un enlace simbólico /cache -> /mnt/sdcard/cache. Esto está bien, pero cuando reinicio el teléfono, el enlace simbólico se reemplaza por la carpeta anterior.

¿Hay alguna forma adecuada de resolver este problema de una vez por todas?

Gracias por cualquier pista, A.

Teóricamente usando runparts de busybox, y emite esto mount -o bind /mnt/sdcard/cache /cache... esto es en teoría como nunca lo he probado...

Respuestas (2)

Por desgracia, eso no es posible.

Al menos no sin actualizar la tabla de particiones del HTC (que se encuentra en la sección del gestor de arranque, también conocida como hboot). Aparentemente no hay un hboot modificado para el explorador. Solo conozco hboots reparticionados para el HTC Desire.

Razón:
/cache está respaldado por un dispositivo de bloque separado en todos los dispositivos Android (es decir, punto de montaje o partición), es necesario para almacenar archivos de actualización de firmware (por ejemplo, definitivamente necesario para teléfonos encriptados). Entonces, si lo mueve, no hay ganancia porque esa partición aún estará allí y no liberará espacio para la partición /data. En caso de que reduzca la partición /cache, las actualizaciones OTA ya no serán posibles (tendrá que usar una recuperación personalizada para hacerlo).

Gracias por la aclaración: no conocía esa especialidad del Explorer . Todavía dejaré mi respuesta allí (aunque agregaré una nota) para los no exploradores que exploren nuestro sitio :)
EDITAR: Todos los dispositivos Android tienen una partición /cache (es necesaria para almacenar archivos de actualización de firmware para actualizar Android, especialmente en dispositivos encriptados, esto es obligatorio, cuando la recuperación debe acceder al archivo de firmware en texto no cifrado).
Es (sido) terrible. Google trabajó arduamente para cambiarlo con Android 4.0+, por lo que ya no es un problema en los dispositivos recientes. Lea algunos antecedentes aquí: androidpolice.com/2011/11/18/…
Lo siento, leí mal un poco tu Q (sé que solo tiene una partición de 90 MB/datos): por supuesto, puedes automatizar el enlace simbólico en el arranque: stackoverflow.com/questions/7873615/…

Es posible que desee echar un vistazo a DirectoryBind , que fue desarrollado para cosas como esta. Se ocupa de los "montajes" configurados por el usuario en el momento del arranque y también bajo demanda, por lo que nada debería "desaparecer" en un arranque.

Básicamente, está destinado a mapear cosas desde el almacenamiento interno/del teléfono al almacenamiento externo/sd, especialmente para casos como el suyo, donde la memoria interna se está agotando.

NOTA: Según la respuesta de ce4 , este método no generará ningún beneficio con respecto a la /datacarpeta, ya /cacheque usa su propia partición (esto parece aplicarse a todos los dispositivos Android, verificado con 7 dispositivos diferentes de 5 fabricantes diferentes; según ce4 esto es especialmente necesario en dispositivos cifrados, ya que se requiere una partición no cifrada para almacenar actualizaciones de firmware para su ejecución). Entonces, si su preocupación es aumentar el almacenamiento en /data, esto no funcionará con /cache. Pero si simplemente necesita más espacio en /cache, debería estar perfectamente bien. Luego podría usar el dispositivo de bloque original (donde /cache apuntaba ) para otra cosa;)

NOTA 2: AFAIK Google Playstore utiliza /data/localpara almacenar en búfer sus descargas. En la mayoría de los dispositivos, esto solo debería ser un directorio en la partición y, por lo tanto, DirectoryBind/data podría manejarlo fácilmente .

Sugerencia adicional: verifique con el dfcomando desde una terminal si el directorio que desea mover del almacenamiento interno al externo está usando una partición separada o no.