Nenhuma permissão para o Termux acessar o armazenamento interno - mesmo para leitura

19

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.)

user3080003
fonte
Hmm, parece que ele tem READ_EXTERNAL_STORAGEpermissão, então deve ter acesso.
Matthew Leia
3
Sim --- mas aparentemente tinha sido desligado. Percebi isso quando entrei em Preferências do sistema> Geral> Aplicativos> Termux ----- e descobri que havia uma opção de alternância para acessar arquivos que de alguma forma foram desativados. Escusado será dizer que eu liguei novamente, e o problema foi resolvido. ------ É claro - a crise imediata acabou --- mas isso ainda levanta a questão do que causou o desligamento em primeiro lugar. (Eu sei que eu nunca fiz isso.)
user3080003
Eu tive o mesmo problema, e sua resposta aqui o corrigiu. EDIT: Enter-to-submit estúpido. Estava tentando criar uma nova linha. Aqui está o que eu acho que aconteceu: o Android 7 agora permite negar permissões (sim!), Mas, no caso do Termux, por qualquer motivo, ele não solicita permissão como outros programas. Portanto, o problema não é que, de alguma forma, ele foi desligado, mas nunca foi ligado. Isso é especulação, no entanto.
Andrew
3
Pode-se executar o termux-setup-storage para fazer com que o aplicativo solicite permissões de armazenamento. Veja termux.com/storage.html .
fornwall

Respostas:

5

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

  1. Abra o Termux.
  2. Pressione o botão multitarefa para abrir o menu multitarefa. Este deve estar ao lado do botão inicial à esquerda.
  3. 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

  1. Abra o Termux. Você deseja que a notificação do Termux apareça.
  2. Puxe para baixo o painel de notificações e localize a notificação do Termux.
  3. Experimente uma das opções abaixo:

    • Deslize a notificação para a esquerda ou direita, procure uma roda dentada (⛭) ou o ícone de informações (ℹ) e toque nela. Você não pode descartar a notificação da Termux, então não se preocupe com isso.
    • Toque e segure a notificação e procure uma engrenagem (⛭), um ícone de informações (ℹ) ou um menu de contexto com a opção "Informações do aplicativo" e toque nela.
    • Procure o ícone e / ou o nome do aplicativo. Pode ser necessário deslizar para baixo na notificação. Toque e segure nele. Uma roda dentada (⛭), ícone de informação (ℹ) ou menu de contexto podem aparecer. Toque de acordo.

Método 3: usando o App Manager

  1. Vá para configurações> aplicativos.
  2. Procure uma opção denominada "Application Manager" ou similar. Parece depender do seu dispositivo.
  3. Procure a entrada do Termux e toque nela. Pode ser necessário alterar o filtro para "aplicativos instalados" ou "aplicativos baixados".

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.

  1. Procure uma opção chamada "Permissões" (pode ser necessário rolar). Toque nele.
  2. Deve haver uma entrada para a permissão de armazenamento. Ligue-o clicando no botão ao lado. Se a permissão de armazenamento não estiver listada, use um comando relacionado ao armazenamento no Termux para obter um erro de permissão negada e retornar.

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.

ColinTNMP
fonte
0

é 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

Nathan Smith
fonte