25 votes

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

Utilisation de la termux ( https://termux.com ), je tape la commande suivante :

ls /sdcard

Je reçois l'erreur suivante :

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

Réalisant que le /sdcard sur Android est un lien symbolique, j'ai essayé de trouver l'emplacement du répertoire réel - j'ai appris 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 le suivant /storage/emulated/0

Alors finalement, j'ai tapé :

ls -ld /storage/emulated/0

Le résultat que j'ai obtenu est le suivant :

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

Donc en bref --- Je ne sais pas si termux s'exécutait avec les permissions du sdcard_r ou si le o Les permissions autorisaient la lecture-écriture, mais j'ai besoin de savoir laquelle des deux était utilisée et comment réparer les choses, parce que la possibilité d'accéder au contenu de la carte SD interne est assez critique.

Non, mon appareil n'est pas rooté, et je n'ai pas l'intention de le faire - je ne peux donc pas donner d'informations qu'il faudrait que je roote l'appareil pour obtenir. Cependant, le fait de ne pas être rooté ne m'a jamais empêché par le passé d'avoir un accès en lecture au répertoire /sdcard - c'est donc nouveau (et inquiétant).

Je vous l'accorde, cela fait quelques mois que je n'ai pas essayé de le faire, mais cette nouvelle limitation d'Android entrave sérieusement l'utilisation de l'application termux et je ne sais quoi d'autre, car je dois pouvoir accéder aux fichiers qui se trouvent sur ma carte SD. (Je peux encore faire beaucoup de choses, même si ce n'est pas tout, même sans droits d'écriture -- mais je suis à peu près coincé dans l'eau si je ne peux pas obtenir les droits de lecture, comme c'est le cas actuellement).

15voto

Jensenmann Points 121

Suivant le wiki de Termux à exécuter termux-setup-storage l'a réparé pour moi, comme suggéré par fornwall .

puis redémarrez Termux.

5voto

Dustin Points 398

Les nouvelles versions d'Android obligent les applications à demander 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 permissions par défaut sont "non autorisées", donc quand Termux a besoin d'une permission pour une tâche, parce que Termux n'a pas été mis à jour pour demander ces permissions, il essaie d'exécuter la tâche de toute façon et jette une erreur en conséquence. Malheureusement, le(s) développeur(s) doit(vent) corriger cela lui-même. Heureusement, Android vous permet de gérer manuellement les autorisations des applications. Jusqu'à ce que le(s) développeur(s) mette(nt) Termux à jour en conséquence, c'est probablement le seul moyen.

Etape 1 : Allez sur la page d'information de l'application Termux.

Il existe plusieurs méthodes pour atteindre cette page. Comme les téléphones peuvent avoir des comportements différents, j'ai inclus toutes celles que je connais.

Méthode 1 : utiliser le menu multitâche

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

    Sur certains téléphones, vous serez déjà à la page d'information. Sur d'autres téléphones, vous verrez plutôt l'app-box-truc de Termux changer en haut, avec une icône info () apparaissant quelque part. D'autres téléphones peuvent vous donner un menu contextuel avec une option "App Info". Dans les deux cas, tapez dessus.

Méthode 2 : Utiliser le panneau de notification

  1. Open Termux. Vous voulez que la notification de Termux apparaisse.
  2. Descendez le panneau de notification et trouvez la notification de Termux.
  3. Essayez l'une des options ci-dessous :

    • Balayez la notification vers la gauche ou la droite et recherchez une roue dentée () ou une icône d'information () et appuyez dessus. Vous ne pouvez pas rejeter la notification de Termux, alors ne vous inquiétez pas pour cela.
    • Touchez et maintenez la notification et recherchez une roue dentée (), une icône d'information () ou un menu contextuel avec une option "App Info" et touchez-la.
    • Recherchez l'icône et/ou le nom de l'application. Vous devrez peut-être glisser vers le bas sur la notification. Touchez-la et maintenez-la enfoncée. Une roue dentée (), une icône d'information () ou un menu contextuel peuvent s'afficher. Tapez dessus en conséquence.

Méthode 3 : Utiliser l'App Manager

  1. Allez dans Paramètres>Applications.
  2. Recherchez une option intitulée "Gestionnaire d'applications" ou similaire. Cela semble dépendre de votre appareil.
  3. Cherchez l'entrée de Termux et appuyez dessus. Il se peut que vous deviez changer votre filtre pour "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 "Permissions" (vous devrez peut-être faire défiler la page). Tapez dessus.
  2. Il devrait y avoir une entrée pour la permission de stockage. Activez-la en cliquant sur le bouton situé à côté. Si la permission Storage n'est pas listée, utilisez une commande liée au stockage dans Termux pour obtenir une erreur de permission refusée et revenez.

Tester le changement

Vous avez maintenant donné à Termux l'accès à votre stockage. Vous pouvez tester ceci avec la commande ci-dessous :
ls /sdcard/
Si vous n'obtenez pas d'erreur de refus de permission, c'est que ça a marché ! Vous ne devriez pas avoir à refaire cette opération, sauf si vous réinstallez Termux.

2voto

Nathan Smith Points 131

Nous sommes en juillet 2017 & j'ai eu ce même problème, j'ai cherché sur Google, et je suis arrivé ici. Le commentaire de Matthew Read m'a indiqué la solution, mais il n'y a pas de réponse qui l'explique clairement, alors voici le résumé de la situation :

Termux ne demande pas la permission du système de fichiers à l'installation, vous devez donc l'activer via Paramètres => Applications => Termux => Permissions.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X