Usando o programa de emulação de terminal termux ( https://termux.com ), digitei o seguinte comando:
ls /sdcard
Estou tendo o erro a seguir:
ls: can't open '/sdcard': Permission denied
Percebendo que o diretório / sdcard no Android é um link simbólico, tentei encontrar o local do diretório real - aprendendo que ele não é apenas um link simbólico, mas um link simbólico para outro link simbólico, e o diretório real é / storage / emulated / 0 0
Então, finalmente, digitei:
ls -ld /storage/emulated/0
O resultado que obtive foi:
drwxrwx--x 63 root sdcard_r 4096 Aug 10 12:04 /storage/emulated/0
Então, resumindo: não sei se o termux costumava ser executado com as permissões do grupo sdcard_r ou se as permissões o permitiam permitir leitura e gravação - mas preciso saber qual dos dois era e como consertar as coisas - porque ser capaz de acessar o conteúdo do cartão SD interno é fundamental.
Não, meu dispositivo não está enraizado, nem pretendo fazer o enraizamento - portanto, não posso fornecer nenhuma informação necessária para obter o enraizamento do dispositivo. No entanto, nunca estar enraizado no passado me impediu de ter acesso de leitura ao diretório / sdcard - então isso é novo (e perturbador).
É verdade que já faz alguns meses que tentei fazer isso, mas essa nova limitação do Android prejudica seriamente a usabilidade do termux e quem sabe mais o que mais, pois preciso ter acesso a arquivos que são no meu cartão SD. (Ainda posso fazer muito, mesmo que não seja tudo, mesmo sem permissões de gravação - mas estou preso na água se não puder obter permissões de leitura, como atualmente é o caso.)
fonte
READ_EXTERNAL_STORAGE
permissão, então deve ter acesso.Respostas:
Após o wiki Termux para executar
termux-setup-storage
fixa-lo para mim, como sugerido por fornwall .depois reinicie o Termux.
fonte
As versões mais recentes do Android exigem que os aplicativos solicitem permissão durante o tempo de execução. Você já deve ter percebido isso. Um exemplo é o Chrome solicitando a permissão de armazenamento quando você tenta baixar algo pela primeira vez. Para o Termux, isso é um problema. As permissões são padronizadas como "não permitidas"; portanto, quando o Termux precisa de uma permissão para uma tarefa, porque o Termux não foi atualizado para solicitar essas permissões, ele tenta executar a tarefa de qualquer maneira e gera um erro como resultado. Infelizmente, os desenvolvedores precisam corrigir isso sozinhos. Felizmente, o Android oferece maneiras de gerenciar permissões de aplicativos manualmente. Até que os desenvolvedores atualizem o Termux de acordo, essa é provavelmente a única maneira.
Etapa 1: vá para a página de informações do aplicativo da Termux
Existem vários métodos para acessar esta página. Como telefones diferentes podem ter comportamentos diferentes, incluí todos os que conheço.
Método 1: usando o menu multitarefa
Na lista de aplicativos, o Termux deve ser o primeiro. Toque e segure no ícone.
Em alguns telefones, você já estará na página de informações. Em outros telefones, você verá a alteração da caixa de aplicativos do Termux na parte superior, com um ícone de informações (ℹ) aparecendo em algum lugar. Outros telefones podem fornecer um menu de contexto com a opção "Informações do aplicativo". Nos dois casos, toque neles.
Método 2: usando o painel de notificação
Experimente uma das opções abaixo:
Método 3: usando o App Manager
Etapa 2: alterando permissões
Agora você deve estar em uma página com o nome, o ícone e o número da versão do Termux, com dois botões chamados "Desinstalar" e "Forçar parada". abaixo deve haver várias outras opções.
Testando a mudança
Você agora deu acesso ao Termux ao seu armazenamento. Você pode testar isso com o comando abaixo:
ls /sdcard/
Se você não receber um erro de permissão negada, funcionou! Você não precisa fazer isso novamente, a menos que reinstale o Termux.
fonte
é julho de 2017 e tive o mesmo problema, pesquisei no Google e cheguei aqui. O comentário de Matthew Read apontou o caminho para a solução, mas não há resposta que explique claramente, então aqui está o trecho:
O Termux não solicita a permissão do sistema de arquivos na instalação, então você deve ativá-lo através de Configurações => Aplicativos => Termux => Permissões
fonte