¿Es posible crear un ramdisk tmpfs de crecimiento automático en un Android 4.x rooteado? Si es así, ¿cómo?
temp-files
Eadmaster
fuente
fuente
Respuestas:
Si lo haces
cat /proc/filesystems
, deberías notar tmpfs . Entonces, si tienes acceso almount
comando, deberías podermkdir MYDIRECTORY
)mount -t tmpfs tmpfs MYDIRECTROY
)Por defecto, un montaje tmpfs usará la mitad de la RAM disponible en su sistema. Por lo tanto, en lugar de "crecimiento automático", puede pensar en él como "reducción automática", es decir, cuanto más lo use, menos RAM estará disponible. En el peor de los casos, su sistema podría comenzar a intercambiarse (lo cual no desea). Puede usar opciones para usar un tamaño de RAM diferente para ese montaje.
2017-02-28 Actualización: debido a las restricciones impuestas por Android, debe elegir un punto de montaje debajo de un que se pueda escribir en todas las aplicaciones. Como una tarjeta SD.
fuente
mount -o size=16M -t tmpfs tmpfs /data/local/tmp
ls -Fal
dentro del directorio montado?ls -Fal
en el directorio montado no da salida. Acabo de recibir el aviso de vuelta. Si enumero el directorio del padre, obtengodrwxrwxrwt root root 2014-04-06 20:18 tmp
Desde el enlace que el OP ha incluido, la parte clave lo resumió:
El énfasis es mío, ¡de eso se trata RAMDisk! Permite que el núcleo monte temporalmente el sistema de archivos raíz y continúe ejecutando los scripts necesarios al inicio.
Lo mismo se aplica en este caso de Android, todos y cada uno de los
boot.img
que se muestran en la/boot
partición, ya sea Odin, fastboot, Kies, Sony Update Software, Heimdall, etc., contienen el "código ramfs", que tiene una estructura de directorio que contiene los pertinentes. están incluidos:/dev
para archivos de dispositivo/sbin
para binarios del sistema/sys
para el uso de interactuar con los archivos del dispositivo después de/proc
haber montadoEl script de arranque lee la estructura del directorio ramfs y la monta después de montar con éxito
/system
en la etapa inicial del arranque.Como en relación con la palabra clave del OP en la pregunta:
No crece automáticamente per se, sino que está limitado por la estructura ramfs y la cantidad de RAM disponible, y lo más importante, ¡desaparece al reiniciar!
La confusión proviene de la combinación de "RAMDisk" con "RAMDrive" indistintamente, técnicamente un RAMDrive, es un espacio de intercambio en la partición de intercambio nativa, que se encuentra comúnmente en Linux de escritorio Si está pensando en la antigua era de DOS, donde se usaba RAMDrive , para simular una unidad de disco residente en la memoria y los programas cuando se copian en ese disco y se cargan más rápido , no se ejecutan más rápido , en lugar de cargarse desde las viejas unidades de disco MFM / RLL ( alguna vez vea la lista del directorio DOS desplazarse muy lentamente en esas unidades ? ) esto, también era conocido como RAMDisk también! (Para empeorar las cosas, en aquel entonces, diferentes fabricantes producían RAMDRIVE.SYS o incluso RAMDISK.SYS!)
En el caso del punto de vista del kernel de Linux, tanto de escritorio como de Android, RAMDisk es tmpfs , ¡pero no está destinado a que los usuarios normales almacenen datos / documentos, etc., ya que es exclusivamente para el uso del kernel mismo!
Editar
Para tener en cuenta el comentario de @ nil a continuación, puede montarlo sí, pero viene con un costo, los recursos asignados a la
tmpfs
mitad se reducen a la mitad y usan la mitad del resto de la cantidad de RAM restante. Hablando de manera realista, no es una vía ideal para seguir desde el punto de vista de Android que se ejecuta en dispositivos.Ahí es donde
/sdcard
entra, para almacenar datos / documentos del usuario solo por esa razón, de ahí que haya omitido el hecho de que puede, pero, de nuevo, ¿por qué ?fuente
mount -t tmpfs
.mount -t tmpfs
después de leer los ramfs (que tiene un script de inicio básico), una vez que está montado, el resto del sistema aparece como en el post-boot, que es el entorno de Android. Además, al hacer eso después, por ejemploadb shell
, ¡está reduciendo los recursos del sistema, especialmente en el caso de los teléfonos inteligentes con memoria y recursos limitados!