Permissão de gravação em certos caminhos, como o cartão SD (extSdCard)

10

Na tentativa de transferir um arquivo de um servidor remoto para um dispositivo Android, tive problemas de permissão.

Acontece que eu não tenho permissão de gravação no local do cartão SD (/ mnt / extSdCard).

Estou usando o SSHDroid como um servidor ssh no dispositivo Android e o vSSH como um cliente ssh para participar do ssh no dispositivo Android.

Como sudo e su parecem ausentes no aplicativo do servidor ssh (SSHDroid), estou pensando em como posso alterar / obter permissão para gravar no local do cartão SD. Ou o privilégio root não é suficiente para alterar as permissões de gravação e, portanto, isso é governado exclusivamente pelo sistema operacional Android, portanto, uma limitação do sistema operacional?

O que posso fazer é gravar no caminho inicial do servidor ssh (SSHDroid). Esse caminho, no entanto, é muito complicado e não pode ser acessado a partir da API comum do Android Filebrowser. Esta é a razão pela qual eu queria transferir o arquivo para um caminho acessível , como o cartão SD.

Suplemento. A versão do Android é 4.4.2. A versão do kernel é 3.4.0-1539356 # 1.

Mussé Redi
fonte
3
Essa é uma restrição de Kitkat (eles chamam de "segurança", mas, na realidade, é um "force2cloud"). Você não poderá solucionar isso sem fazer o root do seu dispositivo. Exceto por escolher o seu cartão SD interno , porque você pode escrever.
Izzy
@ Izzy Se você colocasse isso em uma resposta, esta pergunta seria uma pergunta respondida .
Mussé Redi
Feito, com mais alguns detalhes fornecidos. Eu gostava de lhe dar uma resposta melhor (com uma solução mais conveniente), mas o Google proíbe que ...
Izzy
Realmente? Eu ensinei a eles onde um grande fã do espírito de código aberto.
Mussé Redi 17/07/2014
"Apenas faça como eu digo, não faça como eu faço". Distinga entre as flores e os frutos. Proclamado "código aberto", o Google mistura várias coisas proprietárias, entre outras. E a "liberdade" fica mais restrita a cada nova versão do Android. Mas isso não é assunto para aqui :) #
227 Izzy

Respostas:

9

Uma das restrições introduzidas no foi mover a WRITE_EXTERNAL_STORAGEpermissão para o "SignatureOrSystem" no nível de proteção, o que significa que, mesmo se solicitado, um "aplicativo normal" (por exemplo, um que você instala como "usuário normal" sem nenhuma especialidade raiz) mais concedê-lo. Portanto, há muito poucas coisas que você pode fazer para "contornar" isso:

  • obviamente: fazer o root do dispositivo e remover esse limite
  • usando o diretório "pessoal" do aplicativo como armazenamento dos arquivos sincronizados (ou seja <sdcard>/Android/data/<package_name>/, este é o único local em que um aplicativo pode gravar no SD com Kitkat)
  • usando seu cartão como armazenamento (como aqui a limitação não se aplica)
Izzy
fonte
Quais são as desvantagens de fazer root em um dispositivo Android? A garantia se torna obsoleta?
Mussé Redi 17/07/2014
Provavelmente. Na UE, existe uma lei para isso, distinguindo garantia e garantia. Um deles é imposto por lei (e não pode ser obsoleto pelo enraizamento), o outro é uma oferta não obrigatória do fabricante e, com isso, a decisão tomada por ele. Parece diferente fora da UE, então não há resposta definitiva aqui.
Izzy
1

Você sempre pode retirar o sdcard externo do dispositivo e conectá-lo ao seu PC. A maioria dos computadores não suporta micro-cartões SD, mas você pode usar um adaptador. Mais informações aqui: https://en.wikipedia.org/wiki/Secure_Digital#Micro

Se o cartão SD externo estiver montado no seu PC, você poderá ler e gravar todos os arquivos nele :-)

guettli
fonte
Foi mais um exercício para ver até onde você pode ir com o ssh em um dispositivo Android, em vez de acessar o conteúdo no cartão SD.
Mussé Redi