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.
Tentei definir o local da instalação através de:
Acredito que esteja reclamando das permissões de root.
E porque é uma construção de produção tentando:
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:
isso fará o trabalho?
Basicamente falando: você não pode. Pelo menos não sem torcer .
Os principais motivos pelos quais o Android não permite a instalação de um aplicativo no seu cartão SD externo são:
Segurança : é o principal motivo dessa restrição. Sistemas de arquivos básicos como NTFS ou FAT (qualquer versão dele) não permitem o gerenciamento de permissões do tipo Unix.
Isso significa: qualquer aplicativo poderá gravar em qualquer arquivo desse armazenamento.
Pensando em aplicativos mal-intencionados, eles poderiam substituir aplicativos adequados por falsos / infectados, bloquear o telefone e inutilizá-lo.
Armazenamento volátil : seu cartão SD externo não é seguro para ser inserido no seu dispositivo o tempo todo. Você é capaz de ejetar a qualquer momento o que faz com que seu cartão SD não seja um bom candidato para um armazenamento permanente. Considere os aplicativos que executam fora do seu cartão SD e você o ejeta. Esses aplicativos travam e todos os outros aplicativos salvos no cartão SD também desaparecem. Você não pode usá-los naquele momento e os dados desse aplicativo também são afetados pelo motivo 1.
Eu tenho um background linux, então considerei essa abordagem: notei que a opção de menu do aplicativo "Mover para SDCARD" criou uma pasta chamada Android no sdcard0 (o interno) com os dados dos aplicativos; criar um link simbólico (em sdcard0) chamado Android para uma pasta chamada Android em sdcard1 funcionará?
A questão é: só armazena Android aplicações de dados e OBB em /sdcard/sdcard0/Android. Os aplicativos são armazenados em uma pasta oculta chamada .android_secureonde nem sequer roottem acesso (eu testei no meu dispositivo, você não pode nem mesmo cdnessa pasta).
Na verdade, é exatamente disso que eu preciso! O principal problema para me fazer pensar nisso são os dados, especialmente em jogos pesados. Os aplicativos principais não são tão grandes em comparação com os dados que eles adicionam posteriormente. Então você acha que pode funcionar?
Se são apenas dados ou obb , certamente funciona. Pelo menos nas versões do Android que não sdcard_rwpertencem ao rootgrupo ou que apresentam o usuário sdcard_rw. Porém, com algumas alterações de permissão, você poderá resolver isso.
Correr ls -l /storage/sdcard0me deu isso lrwxrwxrwx root root 2015-04-20 15:59 sdcard0 -> /storage/emulated/legacye correr ls -l /storage/sdcard0/me deu isso drwxrwx--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! ;)
Primeiro, faça root no seu telefone!
Segundo, crie uma partição secundária no seu cartão SD (Ext.4)> = 2 GB e defina-a como principal.
Terceiro, baixe e instale o aplicativo Link2sd do playstore. Abra o aplicativo e pedirei que você crie um ponto de montagem na sua 2ª partição. Selecione Sim. Reinicie.
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
Na verdade, é isso que estou tentando evitar: instalar software de terceiros. :-)
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 > Applicationsbasta pressionar o botão Move to SDCARD* - seus dados e obb - para o SDCARD externo.
Removendo o SuperSU ......
Nah ... eu não fiz isso! 3 :)
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
-r significa reinstalar apk com dados existentes e -s significa sdcard
"O Android 5 e superior não suportam este pm get-install-location " - como você sabe? Tente isto: android.googlesource.com/platform/frameworks/base/+/… . É para o Android 5.1.1. Eu tenho suporte para esse argumento no meu Android 5.0.2, 5.1.1 e 6.0.1!