Mit dem Terminalemulationsprogramm termux ( https://termux.com ) gebe ich folgenden Befehl ein:
ls /sdcard
Ich erhalte folgenden Fehler:
ls: can't open '/sdcard': Permission denied
Als ich feststellte, dass das Verzeichnis / sdcard unter Android ein Symlink ist, versuchte ich, den Speicherort des tatsächlichen Verzeichnisses zu ermitteln. Dabei stellte ich fest, dass es sich nicht nur um einen Symlink, sondern um einen Symlink zu einem anderen Symlink handelt und das tatsächliche Verzeichnis / storage / emulated / ist. 0
Also gab ich endlich ein:
ls -ld /storage/emulated/0
Das Ergebnis war:
drwxrwx--x 63 root sdcard_r 4096 Aug 10 12:04 /storage/emulated/0
Kurz gesagt: Ich weiß nicht, ob termux früher mit den Berechtigungen der Gruppe sdcard_r ausgeführt wurde oder ob die o- Berechtigungen für das Lesen und Schreiben verwendet wurden. Ich muss jedoch wissen, welche der beiden Berechtigungen früher verwendet wurden und wie man das Problem behebt - denn der Zugriff auf den Inhalt der internen SD-Karte ist ein bisschen kritisch.
Nein, mein Gerät ist nicht gerootet und ich habe auch nicht vor, es zu rooten. Daher kann ich keine Informationen angeben, für die ich das Gerät rooten müsste, um sie zu erhalten. Da ich jedoch in der Vergangenheit nie rooted war, konnte ich nicht lesend auf das Verzeichnis / sdcard zugreifen - das ist also neu (und störend).
Zugegeben - es ist ein paar Monate her, seit ich dies versucht habe -, aber diese neue Einschränkung von Android beeinträchtigt ernsthaft die Benutzerfreundlichkeit von termux und who-knows-what-else, da ich in der Lage sein muss, auf Dateien zuzugreifen, die vorhanden sind auf meiner SD-Karte. (Ich kann immer noch viel tun, auch wenn nicht alles, auch ohne Schreibrechte - aber ich stecke ziemlich im Wasser fest, wenn ich keine Leserechte bekomme, wie es derzeit der Fall ist.)
quelle
READ_EXTERNAL_STORAGE
Erlaubnis, also sollte es Zugriff haben.Antworten:
Im Anschluss an das Termux-Wiki zum Ausführen von termux-setup-storage wurde es für mich behoben, wie von fornwall vorgeschlagen .
Und termux neu starten.
quelle
Für neuere Versionen von Android müssen Apps zur Laufzeit um Erlaubnis fragen. Möglicherweise haben Sie dies bereits bemerkt. Ein Beispiel ist, dass Chrome nach der Speichererlaubnis fragt, wenn Sie versuchen, etwas zum ersten Mal herunterzuladen. Für Termux ist dies ein Problem. Die Standardberechtigungen sind "nicht zulässig". Wenn Termux eine Berechtigung für eine Aufgabe benötigt, wird stattdessen versucht, die Aufgabe trotzdem auszuführen, und es wird ein Fehler ausgegeben, da Termux nicht aktualisiert wurde, um diese Berechtigungen anzufordern. Leider müssen die Entwickler dies selbst beheben. Zum Glück können Sie mit Android die App-Berechtigungen manuell verwalten. Bis die Entwickler Termux entsprechend aktualisieren, ist dies wahrscheinlich der einzige Weg.
Schritt 1: Gehen Sie zur Termux App Info-Seite
Es gibt mehrere Methoden, um diese Seite zu erreichen. Da unterschiedliche Telefone unterschiedliche Verhaltensweisen aufweisen können, habe ich alle mir bekannten hinzugefügt.
Methode 1: Verwenden des Multitask-Menüs
In der Liste der Anwendungen sollte Termux der erste sein. Tippen und halten Sie auf das Symbol.
Auf einigen Handys befinden Sie sich bereits auf der Infoseite. Auf anderen Handys sehen Sie stattdessen oben die Änderung der Termux-App-Box, wobei irgendwo ein Info-Symbol (ℹ) angezeigt wird. Bei anderen Telefonen wird möglicherweise ein Kontextmenü mit der Option "App-Info" angezeigt. Tippen Sie in beiden Fällen auf diese.
Methode 2: Verwenden des Benachrichtigungsfelds
Probieren Sie eine der folgenden Möglichkeiten:
Methode 3: Verwenden des App Managers
Schritt 2: Ändern der Berechtigungen
Sie sollten sich jetzt auf einer Seite mit dem Namen, dem Symbol und der Versionsnummer von Termux befinden, die über zwei Schaltflächen mit den Bezeichnungen "Deinstallieren" und "Stopp erzwingen" verfügt. Darunter sollten verschiedene andere Möglichkeiten stehen.
Änderung testen
Sie haben Termux nun Zugriff auf Ihren Speicher gegeben. Sie können dies mit dem folgenden Befehl testen:
ls /sdcard/
Wenn Sie keinen Fehler mit verweigerter Berechtigung erhalten, hat es funktioniert! Sie sollten dies nicht erneut ausführen müssen, es sei denn, Sie installieren Termux neu.
quelle
Es ist Juli 2017 und ich hatte das gleiche Problem, habe dafür gegoogelt und bin hier angekommen. Matthew Reads Kommentar wies den Weg zur Lösung, aber es gibt keine Antwort, die dies klar ausdrückt.
Termux fordert bei der Installation keine Dateisystemberechtigung an. Sie müssen sie daher über Einstellungen => Anwendungen => Termux => Berechtigungen aktivieren
quelle