Eu tenho um Moto G (2ª geração) com Android 5.02. O cartão SD interno tem cerca de 8 GB e eu tenho um cartão SD externo com 16 GB de espaço livre.
Mover o aplicativo para SDCARD no menu do aplicativo o move para sdcard0, que é o cartão SD interno.
Comando shell ADB:
pm get-install-location
me dá:
0[auto]
Tentei definir o local da instalação através de:
pm set-install-location 2
Mas estou recebendo este erro:
Error: java.lang.SecurityException: Package android does not belong to 2000
Acredito que esteja reclamando das permissões de root.
E porque é uma construção de produção tentando:
adb root
me dá:
adbd cannot run as root in production builds
Existe alguma maneira de definir os aplicativos para instalar seus dados no cartão SD externo?
PS: Não quero instalar uma ROM personalizada ou instalar software de terceiros para fazer root no telefone.
Editar:
notei que os dados dos aplicativos foram armazenados na pasta /storage/sdcard0/Android
, então pensei em mover essa pasta para /storage/sdcard1/
e criar um link simbólico dessa maneira:
ln -s /storage/sdcard1/Android /storage/sdcard0/Android
isso fará o trabalho?
Obrigado.
fonte
/sdcard/sdcard0/Android
. Os aplicativos são armazenados em uma pasta oculta chamada.android_secure
onde nem sequerroot
tem acesso (eu testei no meu dispositivo, você não pode nem mesmocd
nessa pasta).sdcard_rw
pertencem aoroot
grupo ou que apresentam o usuáriosdcard_rw
. Porém, com algumas alterações de permissão, você poderá resolver isso.ls -l /storage/sdcard0
me deu issolrwxrwxrwx root root 2015-04-20 15:59 sdcard0 -> /storage/emulated/legacy
e correrls -l /storage/sdcard0/
me deu issodrwxrwx--x root sdcard_r 2014-12-20 18:16 Android
. Essa é uma notícia boa ou ruim? Como não sou root, acredito que não posso definir permissões.Basicamente você pode! ;)
Após a reinicialização, TODOS os aplicativos que você instalar irão automaticamente para o cartão SD.
Se você não sabe como criar uma pesquisa de partições para um guia no Google, existem muitas
fonte
Foi uma jornada e tanto, procurando uma resposta que não envolvesse enraizamento, mas acabei:
Desbloqueando meu gerenciador de inicialização
Inicializando no TWRP sem instalá-lo:
Instalando o SuperSU da Chainfire com TWRP.
No Emulador de Terminal ou no shell do adb :
Do menu de um aplicativo,
Settings > Applications
basta pressionar o botãoMove to SDCARD
* - seus dados e obb - para o SDCARD externo.Removendo o SuperSU ......
Nah ... eu não fiz isso! 3 :)
fonte
Vá para este endereço http://developer.android.com/tools/help/shell.html#shellcommands
O Android 5 e superior não suportam isso
pm get-install-location
Tente fazer backup do seu apk e siga as etapas abaixo
Exemplo
-r significa reinstalar apk com dados existentes e -s significa sdcard
fonte
-s
é para especificar em qual dispositivo o adb deve operar ("-s <serialNumber>
").Primeiro instale Adbd inseguro ( apk baixar de xda-developers ).
Depois de instalado no seu dispositivo, abra-o e marque a caixa: "Ativar adbd inseguro".
Agora você pode alterar o local para instalar seus aplicativos.
fonte