Progetti Open Source e notizie del mondo Linux

HowTo, Tutti

[AGGIORNATO] Android spostare su SD, le app non spostabili

Android

Android è il sistema operativo mobile di google basato su kernel linux, di recente nell’ultima versione (Android 6) google ha finalmente introdotto la possibilità di usare la microSD come memoria interna (così che venga usata come memoria predefinita), e non avere quel fastidiosissimo problema della memoria piena.

Purtroppo nelle precedenti versioni di android, questa funzione non è disponibile, ma è soltanto possibile spostare alcune applicazioni nella memoria esterna (infatti ad esempio, mi sono reso conto che di tutte le applicazioni che avevo installato, solo 2 app erano spostabili nella memoria esterna), per ovviare a questo problema, ci sono diverse soluzioni, una è quella di ricevere i permessi di root (procedura che potrebbe invalidare la garanzia) e installare Link2SD (che permette di spostare qualsiasi applicazione completamente nella memoria SD, così da lasciare libera la memoria interna), un’ altra soluzione (che mostrerò in questo articolo) invece permette di spostare le applicazioni che installate nella memoria SD anche senza i permessi di root (con questa procedura sono riuscito a spostare nella scheda sd app che prima non erano spostabili, come ad esempio whatsapp)

 

Android

 

Per fare questo possiamo procedere in 2 modi:

  1.  utilizzando android studio e le SDK Android (questo richiederà il download di svariate centinaia di MB di dati, ma vi fornirà anche l’IDE e tutti gli strumenti che vi servono qualora foste interessati a programmare su android)
  2. Installando il pacchetto “android-tools-adb

 

Prima di procedere, è necessario che sul vostro dispositivo Android, avete abilitato il Debug USB:

assicuriamoci che su Android sia impostato il DEBUG USB, quindi andate in

Impostazioni -> Opzioni sviluppatore

e mettete la spunta nella voce

Debug USB

NOTA: se non avete le opzioni sviluppatore, andate in “Info sul telefono” e cliccate ripetutamente sulla voce “Numero Build” fino a che non appare la scritta “ora sei uno sviluppatore”

 

METODO 1) UTILIZZIAMO ANDROID STUDIO

Quindi per prima cosa scaricate l’applicazione Android Studio cliccando qui, al termine del download estraete l’archivio e installatelo.

Per installarlo, andate dove avete estratto l’archivio appena scaricato, poi spostatevi all’interno della cartella

android-studio/bin

ed eseguite da terminale il comando

./studio.sh

NOTA: per installare/usare android studio avete bisogno della SDK di java, quindi dovete avere installato il pacchetto openjdk-“numerorelease”-jdk.

terminata l’installazione guidata (richiederà un po di tempo perchè deve scaricare tutto l’occorrente, se avete lasciato le impostazioni di default, nella vostra home ci saranno 2 cartelle nuove, dunque voi spostatevi all’interno della cartella

~/Android/Sdk/platform-tool

 

 

a questo punto collegate il cellulare al pc tramite il cavo usb, su cellulare vi apparirà un messaggio, voi concedete il dispositivo ad effettuare il debug USB.

 

a questo punto tornate al pc, siete ancora all’interno della cartella

~/Android/Sdk/platform-tool

bene, aprite un terminale in questa posizione ed eseguite il seguente comando

./adb devices

 

se il telefono è collegato, e il debug usb è attivo (e il vostro PC è stato autorizzato tramite il popup che compare sullo smartphone) vi risponderà con un messaggio simile

List of devices attached
BL4A11D05888    device

Dove “BL4A11D05888” è il dispositivo (il vostro sarà sicuramente diverso), e “device” indica che il computer riesce a dialogare correttamente con lo smartphone tramite il debug usb.

ATTENZIONE: se al posto di “device” c’è scirtto “unauthorized”, allora vuol dire che il vostro pc non è autorizzato, quindi accertatevi di aver abilitato il debug usb poi scollegate il cellulare e riattaccatelo, a questo punto dovrebbe comparirvi un messaggio sullo smartphone che vi chiede di autorizzare il pc al debug.

quindi possiamo procedere, accedete alla shell del dispositivo con il seguente comando.

./adb shell

 

METODO 2) INSTALLIAMO ANDROID-TOOLS-ADB

Questo metodo è molto più veloce, in quanto verrà richiesta l’installazione di un semplice pacchetto di piccole dimensioni.

Se usate ubuntu, potete installare questo pacchetto tramite il comando

sudo apt-get install android-tools-adb

al termine dell’installazione, possiamo procedere verificando che il dispositivo venga rilevato e che siamo autorizzati ad usare adb su di esso.

quindi apriamo il terminale e digitiamo il comando

adb devices

ci comparirà un messaggio simile

List of devices attached 
BL4A11D05888	device

ATTENZIONE: se al posto di “device” c’è scirtto “unauthorized”, allora vuol dire che il vostro pc non è autorizzato, quindi accertatevi di aver abilitato il debug usb poi scollegate il cellulare e riattaccatelo, a questo punto dovrebbe comparirvi un messaggio sullo smartphone che vi chiede di autorizzare il pc al debug.

 

A questo punto possiamo accedere alla shell, con il comando

adb shell

 

 

PASSO FINALE, FACCIAMO LA MODIFICA

dopo di che verifichiamo come è settata attualmente la gestione della memoria interna, con il comando

pm get-install-location

in output vedrete come è attualmente impostata la gestione della memoria (0-automatica, 1-Interna, 2-esterna).

 

a questo punto dite al dispositivo di utilizzare la memoria esterna come memoria predefinita, con il comando

pm set-install-location 2

e poi verificate che il cambiamento è avvenuto correttamente dando nuovamente il comando

pm get-install-location

 

A questo punto avete concluso, il dispositivo ora vi permetterà di spostare nella memoria esterna tutte le applicazioni che avete installato, permettendovi così di liberare spazio nella memoria interna.

 

Tenete presente che la memoria esterna è un po più lenta della memoria interna, quindi è opportuno avere una memoria sd molto veloce, (consiglio le microsd samsung evo+ che hanno velocità di lettura fino a 80MB/s e di scrittura fino a 20MB/s).

 

Vi lascio uno screenshot che riassume i comandi che dovete dare per fare questa modifica.

android

 

 

22 Comments

  1. Francesco

    Ciao, ho spostato whatsapp su SD perchè volevo togliere tutti i suoi file multimediali (video, immagini) che intasavano la memoria interna, senza però perderli. Ora il programma è indicato come presente su SD, ma i files multimediali sono rimasti tutti sulla memoria dispositivo. Cosa si può fare per spostare anche quelli assieme all’applicazione?

    • purtroppo i file multimediali li si può spostare solo negli smartphone con android 6 e superiore che consentono di utilizzare la memoria SD come memoria principale, allora a quel punto i file multimediali di whatsapp e app simili verranno salvati nella SD

    • cristianpozzessere

      attiva i permessi di root
      scarica ed installa android-tools per la tua distro linux (da repository o da git)
      scarica la twrp per il tuo smartphone ,collega il telefono al pc e spostati nella cartella del file scaricato,apri un emulatore di terminale :
      adb kill-server
      adb start-server
      adb devices

      = riavvia in fastboot =
      adb reboot bootloader
      fastboot devices

      == flash della recovery ==
      fastboot flash recovery trwp.img (cambia il nome di twrp con quello scaricato)
      == riavvia in recovery =
      fastboot boot recovery.img

      == scarica supersu e mettilo nella sd o nella memoria interna e installalo tramite recovery .

      ok adesso hai i diritti di amministratore sul telefono e puoi fare quel che meglio ti piace ..(con un pò di cautela )

  2. Robespiermi

    Ciao, quando arrivo al comando pm set-install-location 2 mi dà questo errore:

    Error: java.lang.SecurityException: Package android does not belong to 2000

    Che significa? Io ho java installato, cosa devo fare?
    Grazie mille

    • mmm mi sembra di capire che è una qualche restrizione di android, che non ti permette di usare la scheda SD come memoria princiapale.
      che versione di android hai? nelle recenti versioni di android, potrebbe non funzionare, io l’ho testato sulla 4.4 e funziona, ma nelle più recenti credo che google abbia modificato qualche policy in android per evitare questo.
      quindi senza root non puoi farlo.

      • Robespiermi

        Ciao, 5.0, mi sembra Lollipop.
        Il telefono è Asus Zenfone 2 ZE550ML.
        Ho provato delle guide per ottenere i permessi di root ma non funzionano, anche se termino la procedura per ottenere i permessi e poi provo a lanciare “pm set-install-location 2”, mi dà sempre lo stesso errore. Mi consigli una tua guida? Oppure è impossibile ottenere il root su questo telefono? (ps: la garanzia non c’è, quindi posso fare quello che voglio volendo)
        Grazie 🙂

        • mmmm quindi non ho capito, sul telefono hai il root oppure la procedura per prendere i permessi non funziona?
          nel caso in cui avessi i permessi di root, potresti provare ad ottenerli tramite il comando “su” quando sei all’interno di adb e poi provar enuovamente con il comando pm set

          • Robespiermi

            Il root non lo avevo mai fatto prima di ieri, ma anche se la procedura di root sembra andare, poi quando provo a lanciare pm set seguendo questa guida mi dà quell’errore lì… quindi alla fine non lo so se ho realmente ottenuto i permessi di root.
            Che intendi per comando “su”? Cosa devo scrivere di preciso? Ho provato a scrivere “su” in adb e mi dice che è un comando sconosciuto… forse sbaglio a scriverlo in qualche maniera o non conosco la sintassi completa.
            PS: uso Windows 10

            • il comando “su” (ovviamente va messo senza virgolette), in linux, serve per ottenere i privilegi di root, quindi quando sei in adb se il tuo telefono ha installato il binario “su” (e di conseguenza hai il root nel telefono), richiamando quel comando, ti fa ottenere i permessi di root.
              comunque per vedere se hai o no i permessi di root puoi anche installare una delle tante applicazioni sul playstore che ti dicono se ce l’hai tipo root checker o qualcosa di simile

              • Robespiermi

                Ho fatto il root del dispositivo (perdendo anche la funzionalità di alcune app), ma niente, non riesco a far funzionare questa guida

                • mmmm allora mi spiace non so più che consigliarti, che versione hai di android? forse sulle più nuove (successive a 4.4) questa guida non funziona per via di qualche cambiamento nel sistema

  3. Flambeau

    Bella guida. con android 4.2 funziona alla perfezione.

    • Ottimo mi fa piacere

      • Flambeau

        Ti segnalo solo una problematica. Dopo lo spostamento di Whatsapp e qualche altra app su memoria esterna, il cellulare, nell’installare nuove app mi dava l’errore: “impossibile eseguire l’installazione spazio in memoria insufficiente” anche se aveva quasi 600mb di spazio libero in memoria.

        Dopo qualche prova ho risolto riportando il valore da 2 a 0 tanto ormai Whatsapp era sulla SD e lo spazio liberato era più che sufficiente.
        Vediamo come va…

        • capisco.. strano a me non è mai capitata una cosa del genere (xperia e3 con android 4.4.4)
          quando mi esce il messaggio della memoria piena è perchè è realmente piena e in quel caso mi basta svuotare la cache delle applicazioni e un po di file multimediali da telegram e whatsapp e ho nuovamente i miei 400-500MB liberi

  4. killer0007

    solita baggianata,senza permessi di root si ottiene esclusivamente un errore.

    • Il mio telefono non ha permesi di root è un Xperia E3
      Per fare questa procedura tramite adb non serve il root.
      Ma almeno lo hai provato prima di scrivere questo commento accusatorio?

      • killer0007

        Su moltiimi telefoni,fidati,l’ultimo un LG G4S (H735) android 6.0.Senza root questa procedura non funziona,semplicemente perchè per modificare la location di installazione bisogna essere superutenti.

        • ok grazie per la segnalazione.
          probabilmente con le recenti versioni di android è stato cambiato questo comportamento tramite adb, e ora non è più possibile farlo senza essere root.
          oppure è una limitazione messa solo da alcuni produttori.
          magari con android 6 non è più possibile perchè teoricamente (se il produttore non lo impedisce) android ha la possibilità di usare la scheda sd come memoria principale, oppure come ho gia detto potrebbe essere una semplice limitazione imposta nelle recenti versioni di android o da alcuni produttori.
          ma è anche vero che con i nuovi smartphone, si hanno 16GB di memoria interna più o meno ovunque, quindi si è un po meno limitati.
          nel mio esempio, ho un xperia e3 con soli 4GB di memoria interna (di cui 1.7 utilizzabili) ed è praticamente obbligatorio spostare applicazioni su scheda sd.
          mentre invece con 16gb di memoria interna, a meno che non si installa una marea di applicazioni, (o non si condividono tanti video pesanti su whatsapp e telegram) ce ne vuole prima di riempire la memoria interna).

  5. g cong

    sul mio vecchio samsung ace alcuni pacchetti non si possono spostare sulla sd (neppure con link2sd) tipo gmail e google store e comunque la memoria interna è così piccola che da anni ormai non si possono fare più aggiornamenti di nessuna app. l’android è 2.3.6 credo (gingerbread). Oppure si riesce ad aggiornare solo una o due app e poi ti dà subito il messaggio di memoria piena. Magari proverò con android studio

    • purtroppo google ha introdotto la possibilità di scegliere che memoria usare solo con android 6… ce ne hanno messo di tempo.
      comunque anche i produttori lo fanno apposta a mettere una memoria interna scarsa così nel giro di poco sei costretto a cambiarlo.
      in fin dei conti la memoria non costa tantissimo, metterne 4GB o metterne 8 non influirebbe nel costo finale dello smartphone ma loro ovviamente preferiscono metterne meno.
      comunque io ho testato questo metodo con un xperia e3 e devo dire che ora ogni app che installo la posso spostare su scheda sd, mentre prima alcune non me le faceva spostare.
      invece strano che con link2sd hai problemi, io con quella non ho mai avuto problemi.

Leave a Reply