È possibile creare un ramdisk tmpfs a crescita automatica su un Android 4.x con root? Se si, come?
È possibile creare un ramdisk tmpfs a crescita automatica su un Android 4.x con root? Se si, come?
Risposte:
Se lo fai cat /proc/filesystems
dovresti notare tmpfs . Quindi, se hai accesso al mount
comando, dovresti essere in grado di farlo
mkdir MYDIRECTORY
)mount -t tmpfs tmpfs MYDIRECTROY
)Per impostazione predefinita, un tmpfs-mount utilizzerà halv della RAM disponibile sul sistema. Quindi, piuttosto che "auto-crescita", puoi pensarlo come "auto-restringimento", vale a dire che più lo usi, meno RAM sarà disponibile. Nel peggiore dei casi il tuo sistema potrebbe iniziare a scambiare (cosa che non vuoi). È possibile utilizzare le opzioni per utilizzare una diversa dimensione della RAM per quella montatura.
28/02/2017 Aggiornamento: a causa delle restrizioni imposte da Android, dovresti scegliere un punto di montaggio sotto uno scrivibile per tutte le App. Come una scheda SD.
mount -o size=16M -t tmpfs tmpfs /data/local/tmp
ls -Fal
nella directory montata?
ls -Fal
nella directory montata non fornisce alcun output. Ho appena ricevuto il prompt. Se elenco la directory dal genitore, ottengodrwxrwxrwt root root 2014-04-06 20:18 tmp
Dal link racchiuso l'OP, la parte chiave lo ha riassunto:
tmpfs è supportato dal kernel Linux dalla versione 2.4 in poi. [3] tmpfs (precedentemente noto come shmfs) si basa sul codice ramfs utilizzato durante l'avvio
Sottolinea il mio, ecco di cosa tratta il RAMDisk! Permette al kernel di montare temporaneamente il filesystem di root e di continuare ad eseguire gli script necessari all'avvio.
Lo stesso vale in questo caso di Android, ognuno dei boot.img
quali viene trasmesso alla /boot
partizione, sia da Odin, fastboot, Kies, Sony Update Software, Heimdall, ecc., Contiene il "codice ramfs", che ha una struttura di directory contenente quelli pertinenti sono inclusi:
/dev
per i file del dispositivo/sbin
per i binari di sistema/sys
per l'utilizzo dell'interazione con i file del dispositivo dopo il /proc
montaggioLo script di avvio legge la struttura della directory ramfs e la monta dopo aver montato correttamente /system
nella fase iniziale di avvio.
Come in relazione alla parola chiave del PO nella domanda:
creare un auto-crescita ...
Non si auto-cresce di per sé, piuttosto, è limitato dalla struttura ramfs e dalla quantità di RAM disponibile e, cosa più importante, scompare al riavvio!
La confusione deriva dall'intercambiare "RAMDisk" con "RAMDrive" in modo intercambiabile, tecnicamente un RAMDrive, è uno spazio di swap nella partizione di swap nativa, che si trova comunemente sul desktop Linux Se stai pensando alla vecchia era DOS, dove è stato utilizzato RAMDrive , per simulare un'unità disco residente in memoria e i programmi quando copiati su quel disco e caricati più velocemente non si eseguono più velocemente , piuttosto che caricarli dalle vecchie unità disco MFM / RLL ( mai vedere l'elenco delle directory DOS scorrere molto lentamente su quelle unità ? ) questo, era anche conosciuto come RAMDisk! (A peggiorare le cose, allora, diversi produttori producevano RAMDRIVE.SYS o addirittura RAMDISK.SYS!)
Nel caso del punto di vista del kernel Linux, sia desktop che Android, RAMDisk è tmpfs , ma non è destinato agli utenti normali per archiviare dati / documenti ecc. Poiché è esclusivamente per l'utilizzo da parte del kernel stesso!
Per notare il commento di @ nil qui sotto, puoi montarlo sì, ma viene fornito con un costo, le risorse allocate per tmpfs
vengono dimezzate e utilizza la metà rimanente di qualsiasi quantità di RAM rimasta. Realisticamente parlando, non è una strada ideale da perseguire dal punto di vista di Android in esecuzione su dispositivi.
È qui che /sdcard
arriva, per archiviare i dati / documenti dell'utente solo per quel motivo, quindi perché ho omesso il fatto che puoi, ma poi di nuovo, perché ?
mount -t tmpfs
.
mount -t tmpfs
dopo aver letto i ramfs (che ha uno script init barebone), una volta montato, il resto del sistema si presenta come in post-boot, che è l'ambiente Android. Inoltre, facendo ciò in seguito, ad esempio adb shell
, stai riducendo le risorse di sistema, specialmente nel caso di smartphone con memoria e risorse limitate!