Posso cambiare la posizione della cache dalvik, ad es. Con un collegamento simbolico?


9

Attualmente uso Link2SD poiché l'archiviazione integrata del mio telefono è insufficiente per più di alcune app essenziali. È molto efficace ma limitato a quando il telefono è acceso.

Durante la modifica delle ROM, la cache di Dalvik viene cancellata e al riavvio del telefono viene visualizzata una barra di avanzamento che dice che Android sta ottimizzando le applicazioni. Quindi, dato un numero ragionevole di applicazioni, la cache dalvik riempie lo spazio di archiviazione molto prima che link2sd possa fare qualcosa al riguardo.

Quindi c'è un modo che monta una cartella di schede SD come posizione della cache appropriata prima che il sistema inizi con l'avvio e la sua attività? So che potrebbe comportare la creazione di un collegamento simbolico, ma non so quando le cose sono montate e in quale ordine.

Risposte:


2

Certo che puoi. Anche se sembra che non ci siano problemi a migrare dalvik-cache su un normale filesystem della scheda SD (il più comune, vfat), si consiglia comunque di formattare la scheda SD su ext4 (o uguale alla propria /data) per assicurarsi che tutto funzioni bene.

Quindi andiamo. Si consiglia un backup completo di tutte le tue app prima di procedere, ma se ti senti fortunato, non è necessario. Supponendo che si disponga di un emulatore di terminale per eseguire i lavori necessari.

Innanzitutto, crea una cartella in cui desideri migrare la tua cache dalvik. Quindi chmode chownla nuova cartella da abbinare /data/dalvik-cache. Se stai utilizzando un sistema operativo Android abilitato per SELinux, non dimenticare di modificare i contesti di sicurezza di conseguenza. Correre

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

per vedere le autorizzazioni originali, il proprietario / i gruppi e i contesti di sicurezza della cartella dalvik-cache.

Quindi, copia tutti i file dalla /data/dalvik-cachenuova posizione, ad esempio /storage/sdcard1/dalvik-cache. Puoi usare il cp -acomando per preservare gli attributi del file, il che renderebbe le cose più semplici.

Assicurati che non vengano avviate nuove app durante il processo del passaggio seguente.

Quindi, rm -r /data/dalvik-cachecreare un collegamento simbolico alla nuova posizione utilizzando

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

È tutto. Sono stati fatti. Riavvia il telefono (non richiesto ma consigliato).

Alcuni avvisi su questo processo:

  1. La busybox potrebbe non funzionare sempre bene poiché Android si basa su un kernel Linux altamente modificato. Ad esempio quasi tutte le funzioni relative a SELinux non funzionano correttamente. Puoi provarlo come mostrato di seguito.

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

    Tuttavia, potrebbero funzionare correttamente, a seconda della versione di Android:

    busybox chcon <context> <files...>
    busybox runcon <context <program> [args...]
    
  2. Non rimuovere mai la scheda SD. Se si riformatta la scheda SD, assicurarsi che sia ancora ext4 E creare nuovamente la cartella dalvik-cache prima di avviare il telefono per la prima volta.


Non avevo idea di come abbia scritto questa risposta esaustiva quando la rivedo dopo un anno. Suppongo di aver dimenticato molto di Android (che è ovviamente impossibile).
iBug

1

Ci sono alcuni simpatici Howtos disponibili, che potrebbero rivelarsi utili per risolvere il tuo problema:

Secondo diversi thread del forum, A2SDGUI - Darktremor A2SD GUI dovrebbe essere l'app preferita per spostare la cache Dalvik sulla scheda SD.


1
Sarebbe bello se potessi aggiungere alcune informazioni dai link nel tuo post
Flow

È un po 'troppa roba da integrare con la mia risposta, motivo per cui ho estratto solo il suggerimento di base, ovvero l'app con cui lavorare.
Izzy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.