Aucune autorisation pour Termux d'accéder au stockage interne - même pour la lecture

19

À l'aide du programme d'émulation de terminal termux ( https://termux.com ), je tape la commande suivante:

ls /sdcard

J'obtiens l'erreur suivante:

ls: can't open '/sdcard': Permission denied

Réalisant que le répertoire / sdcard sur Android est un lien symbolique, j'ai essayé de trouver l'emplacement du répertoire réel - en apprenant qu'il ne s'agit pas seulement d'un lien symbolique, mais d'un lien symbolique vers un autre lien symbolique, et que le répertoire réel est / stockage / émulé / 0

Alors finalement, j'ai tapé:

ls -ld /storage/emulated/0

Le résultat que j'ai obtenu était:

drwxrwx--x   63 root     sdcard_r      4096 Aug 10 12:04 /storage/emulated/0

Donc, en bref --- je ne sais pas si termux fonctionnait avec les autorisations du groupe sdcard_r ou si les autorisations o utilisées pour autoriser la lecture-écriture - mais j'ai besoin de savoir laquelle des deux il était et comment réparer les choses - parce que pouvoir accéder au contenu de la carte SD interne est un peu critique.

Non, mon appareil n'est pas enraciné, et je n'ai pas l'intention de le rooter - je ne peux donc pas donner d'informations que j'aurais à rooter pour obtenir. Cependant, le fait de ne jamais être enraciné dans le passé m'a empêché d'avoir un accès en lecture au répertoire / sdcard - c'est donc nouveau (et dérangeant).

Certes - cela fait quelques mois que j'ai essayé de le faire auparavant - mais cette nouvelle limitation d'Android entrave sérieusement l'utilisabilité de termux et qui sait quoi d'autre - car j'ai besoin d'avoir accès aux fichiers qui sont sur ma carte SD. (Je peux encore faire beaucoup, même si ce n'est pas tout, même sans autorisations d'écriture - mais je suis à peu près coincé dans l'eau si je ne peux pas obtenir les autorisations de lecture, comme c'est actuellement le cas.)

user3080003
la source
Hmm, on dirait qu'il a la READ_EXTERNAL_STORAGEpermission, donc il devrait y avoir accès.
Matthew Read
3
Oui --- mais apparemment, il s'était éteint. Je l'ai réalisé lorsque je suis allé dans Préférences Système> Général> Applications> Termux ----- et j'ai constaté qu'il y avait un interrupteur à bascule pour l'accès aux fichiers qui avaient été désactivés. Inutile de dire que je l'ai rallumé et que le problème a été résolu. ------ Bien sûr - la crise immédiate est terminée --- mais tout cela soulève toujours la question de ce qui a provoqué son arrêt en premier lieu. (Je sais que je n'ai jamais fait ça.)
user3080003
J'ai eu le même problème, et votre réponse ici l'a résolu pour moi. EDIT: Stupide entrée à soumettre. J'essayais de créer une nouvelle ligne. Voici ce que je pense être arrivé: Android 7 permet désormais de refuser les autorisations (oui!), Mais, dans le cas de Termux, pour une raison quelconque, il ne demande pas d'autorisation comme le font d'autres programmes. Donc, le problème n'est pas qu'il était en quelque sorte éteint, mais n'a jamais été allumé. C'est de la spéculation, cependant.
Andrew
3
On peut exécuter termux-setup-storage pour que l'application demande des autorisations de stockage. Voir termux.com/storage.html .
fornwall

Réponses:

5

Les nouvelles versions d'Android nécessitent que les applications demandent la permission pendant l'exécution. Vous l'avez peut-être déjà remarqué. Par exemple, Chrome demande l'autorisation de stockage lorsque vous essayez de télécharger quelque chose pour la première fois. Pour Termux, c'est un problème. Les autorisations par défaut sont «non autorisées», donc lorsque Termux a besoin d'une autorisation pour une tâche, car Termux n'a pas été mis à jour pour demander ces autorisations, il essaie à la place d'effectuer la tâche de toute façon et génère une erreur en conséquence. Malheureusement, le ou les développeurs doivent résoudre ce problème eux-mêmes. Heureusement, Android vous permet de gérer manuellement les autorisations des applications. Jusqu'à ce que les développeurs mettent à jour Termux en conséquence, c'est probablement le seul moyen.

Étape 1: Accédez à la page d'informations sur l'application de Termux

Il existe plusieurs méthodes pour accéder à cette page. Parce que différents téléphones peuvent avoir des comportements différents, j'ai inclus tous ceux que je connais.

Méthode 1: utilisation du menu multitâche

  1. Ouvrez Termux.
  2. Appuyez sur le bouton multitâche pour ouvrir le menu multitâche. Cela devrait être à côté du bouton d'accueil à gauche.
  3. Dans la liste des applications, Termux devrait être le premier. Appuyez et maintenez sur son icône.

    Sur certains téléphones, vous serez déjà sur la page d'informations. Sur d'autres téléphones, vous verrez à la place le changement de boîte d'appli de Termux en haut, avec une icône d'information (ℹ) apparaissant quelque part. D'autres téléphones peuvent vous proposer un menu contextuel avec une option "Informations sur l'application". Dans les deux cas, appuyez dessus.

Méthode 2: utilisation du panneau de notification

  1. Ouvrez Termux. Vous souhaitez que la notification de Termux apparaisse.
  2. Déroulez le panneau de notification et recherchez la notification de Termux.
  3. Essayez l'une des solutions ci-dessous:

    • Faites glisser la notification vers la gauche ou la droite et recherchez une roue dentée (⛭) ou une icône d'informations (ℹ) et appuyez dessus. Vous ne pouvez pas ignorer la notification de Termux, alors ne vous inquiétez pas.
    • Appuyez et maintenez la notification et recherchez soit un engrenage (⛭), une icône d'information (ℹ), ou un menu contextuel avec une option "App Info" et appuyez dessus.
    • Recherchez l'icône et / ou le nom de l'application. Vous devrez peut-être glisser vers le bas sur la notification. Appuyez et maintenez dessus. Une roue dentée (⛭), une icône d'informations (ℹ) ou un menu contextuel peuvent apparaître. Appuyez en conséquence.

Méthode 3: utilisation du gestionnaire d'applications

  1. Accédez à paramètres> applications.
  2. Recherchez une option intitulée «Application Manager» ou similaire. Cela semble dépendre de votre appareil.
  3. Recherchez l'entrée de Termux et appuyez dessus. Vous devrez peut-être modifier votre filtre en «applications installées» ou «applications téléchargées».

Étape 2: modification des autorisations

Vous devriez maintenant être sur une page avec le nom, l'icône et le numéro de version de Termux avec deux boutons intitulés «Désinstaller» et «Forcer l'arrêt». en dessous, il devrait y avoir diverses autres options.

  1. Recherchez une option intitulée "Autorisations" (vous devrez peut-être faire défiler). Appuyez dessus.
  2. Il doit y avoir une entrée pour l'autorisation de stockage. Allumez-le en cliquant sur l'interrupteur à côté de lui. Si l'autorisation de stockage n'est pas répertoriée, utilisez une commande liée au stockage dans Termux pour obtenir une erreur d'autorisation refusée et revenir.

Tester le changement

Vous avez maintenant donné à Termux l'accès à votre stockage. Vous pouvez tester cela avec la commande ci-dessous:
ls /sdcard/
Si vous n'obtenez pas d'erreur d'autorisation refusée, cela a fonctionné! Vous ne devriez pas avoir à recommencer, sauf si vous réinstallez Termux.

ColinTNMP
la source
0

nous sommes en juillet 2017 et j'ai eu le même problème, je l'ai recherché sur Google et je suis arrivé ici. Le commentaire de Matthew Read a ouvert la voie à la solution, mais il n'y a pas de réponse qui l'explique clairement, alors voici le tl; dr de celui-ci:

Termux ne demande pas l'autorisation du système de fichiers lors de l'installation, vous devez donc l'activer via Paramètres => Applications => Termux => Autorisations

Nathan Smith
la source