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.)
READ_EXTERNAL_STORAGE
permissão, então deve ter acesso.