Brak uprawnień dla Termux dostępu do pamięci wewnętrznej - nawet do odczytu

19

Korzystając z programu emulacji terminalu termux ( https://termux.com ), wpisuję następującą komendę:

ls /sdcard

Otrzymuję następujący błąd:

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

Zdając sobie sprawę, że katalog / sdcard na Androidzie jest dowiązaniem symbolicznym, próbowałem znaleźć lokalizację rzeczywistego katalogu - dowiadując się, że nie jest to tylko dowiązanie symboliczne, ale dowiązanie symboliczne do innego dowiązania symbolicznego, a rzeczywisty katalog to / storage / emulated / 0

Wreszcie napisałem:

ls -ld /storage/emulated/0

Otrzymałem wynik:

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

Tak w skrócie --- nie wiem czy termux wykorzystane do uruchomienia z uprawnieniami do sdcard_r grupy czy też ö uprawnienia używane w celu umożliwienia odczytu i zapisu - ale muszę wiedzieć, który z nich kiedyś i jak to naprawić - ponieważ dostęp do zawartości wewnętrznej karty SD jest dość krytyczny.

Nie, moje urządzenie nie jest zrootowane, ani nie planuję go zrootować - więc nie mogę podać żadnych informacji, które musiałbym zrootować, aby je uzyskać. Jednak brak rootowania nigdy w przeszłości nie uniemożliwiał mi dostępu do odczytu katalogu / sdcard - więc jest to nowe (i niepokojące).

To prawda - minęło kilka miesięcy, odkąd próbowałem to zrobić - ale to nowe ograniczenie Androida poważnie utrudnia użyteczność termuxa i kto wie co jeszcze - ponieważ muszę mieć dostęp do plików, które są na mojej karcie SD. (Nadal mogę dużo, nawet jeśli nie wszystko, nawet bez uprawnień do zapisu - ale utknąłem w wodzie, jeśli nie mogę uzyskać uprawnień do odczytu, jak ma to miejsce obecnie).

użytkownik3080003
źródło
Hmm, wygląda na to, że ma READ_EXTERNAL_STORAGEpozwolenie, więc powinien mieć dostęp.
Mateusz
3
Tak --- ale najwyraźniej został wyłączony. Uświadomiłem sobie to, kiedy wszedłem w Preferencje systemowe> Ogólne> Aplikacje> Termux ----- i odkryłem, że był przełącznik do dostępu do plików, które w jakiś sposób zostały wyłączone. Nie trzeba dodawać, że włączyłem go ponownie i problem został rozwiązany. ------ Oczywiście - natychmiastowy kryzys się skończył --- ale to wciąż rodzi pytanie, co spowodowało, że został on wyłączony. (Wiem, że nigdy tego nie zrobiłem.)
user3080003
Miałem ten sam problem, a twoja odpowiedź tutaj go rozwiązała. EDYCJA: Głupie zgłoszenie do przesłania. Próbowałem utworzyć nową linię. Oto, co myślę, że się wydarzyło: Android 7 pozwala teraz odmawiać uprawnień (tak!), Ale w przypadku Termux, z jakiegokolwiek powodu, nie prosi o pozwolenie, jak robią to inne programy. Problemem nie jest to, że został jakoś wyłączony, ale nigdy nie został włączony. To jednak spekulacje.
Andrew
3
Można uruchomić termux-setup-storage, aby zezwolić aplikacji na przechowywanie żądań. Zobacz termux.com/storage.html .
forwall 27

Odpowiedzi:

5

Nowsze wersje Androida wymagają, aby aplikacje pytały o pozwolenie podczas działania. Być może już to zauważyłeś. Jednym z przykładów jest Chrome z prośbą o pozwolenie na miejsce, gdy próbujesz coś pobrać po raz pierwszy. Dla Termuxa jest to problem. Uprawnienia domyślnie są „niedozwolone”, więc gdy Termux potrzebuje pozwolenia na zadanie, ponieważ Termux nie został zaktualizowany, aby poprosić o te uprawnienia, zamiast tego próbuje wykonać zadanie i w wyniku tego generuje błąd. Niestety twórcy muszą sami to naprawić. Na szczęście system Android umożliwia ręczne zarządzanie uprawnieniami aplikacji. Dopóki programiści nie zaktualizują odpowiednio Termux, jest to prawdopodobnie jedyny sposób.

Krok 1: Przejdź do strony informacji o aplikacji Termux

Dostęp do tej strony można uzyskać na wiele sposobów. Ponieważ różne telefony mogą mieć różne zachowania, dołączyłem wszystkie te, które znam.

Metoda 1: Korzystanie z menu wielozadaniowości

  1. Otwórz Termux.
  2. Naciśnij przycisk wielozadaniowości, aby otworzyć menu wielozadaniowości. Powinien znajdować się obok przycisku Home po lewej stronie.
  3. Na liście aplikacji Termux powinien być pierwszy. Naciśnij i przytrzymaj jego ikonę.

    W niektórych telefonach będziesz już na stronie informacyjnej. Na innych telefonach zamiast tego zobaczysz na górze zmianę aplikacji w pudełku Termux z ikoną informacyjną (ℹ). Inne telefony mogą wyświetlać menu kontekstowe z opcją „Informacje o aplikacji”. W obu przypadkach dotknij tych.

Metoda 2: Korzystanie z panelu powiadomień

  1. Otwórz Termux. Chcesz, aby pojawiło się powiadomienie Termux.
  2. Rozwiń panel powiadomień i znajdź powiadomienie Termux.
  3. Spróbuj jednego z poniższych:

    • Przesuń powiadomienie w lewo lub w prawo i poszukaj koła zębatego (⛭) lub ikony informacyjnej (ℹ) i dotknij go. Nie możesz odrzucić powiadomienia Termux, więc nie martw się o to.
    • Stuknij i przytrzymaj powiadomienie i poszukaj koła zębatego (⛭), ikony informacyjnej (ℹ) lub menu kontekstowego z opcją „Informacje o aplikacji” i dotknij go.
    • Poszukaj ikony i / lub nazwy aplikacji. Może być konieczne przesunięcie powiadomienia w dół. Stuknij i przytrzymaj. Może pojawić się koło zębate (⛭), ikona informacji (ℹ) lub menu kontekstowe. Stuknij odpowiednio.

Metoda 3: Korzystanie z Menedżera aplikacji

  1. Przejdź do ustawień> aplikacje.
  2. Poszukaj opcji o nazwie „Menedżer aplikacji” lub podobnej. Wygląda na to, że zależy od twojego urządzenia.
  3. Poszukaj wpisu Termuxa i dotknij go. Być może trzeba zmienić filtr na „zainstalowane aplikacje” lub „pobrane aplikacje”.

Krok 2: Zmiana uprawnień

Powinieneś teraz znaleźć się na stronie z nazwą, ikoną i numerem wersji Termux z dwoma przyciskami oznaczonymi „Odinstaluj” i „Wymuś zatrzymanie”. poniżej powinny znajdować się różne inne opcje.

  1. Poszukaj opcji o nazwie „Uprawnienia” (może być konieczne przewinięcie). Stuknij w to.
  2. Powinien znajdować się wpis dotyczący uprawnienia do przechowywania. Włącz go, klikając przełącznik obok niego. Jeśli uprawnienia do przechowywania nie ma na liście, użyj polecenia dotyczącego przechowywania w Termuxie, aby uzyskać błąd odmowy uprawnień i wrócić.

Testowanie zmiany

Dałeś teraz dostęp do swojego magazynu Termux. Możesz to sprawdzić za pomocą poniższej komendy:
ls /sdcard/
Jeśli nie otrzymasz błędu odmowy uprawnień, zadziałało! Nie powinieneś tego robić ponownie, chyba że ponownie zainstalujesz Termux.

ColinTNMP
źródło
0

jest lipiec 2017 r. i miałem ten sam problem, poszukałem go w Google i dotarłem tutaj. Komentarz Matthew Read wskazał drogę do rozwiązania, ale nie ma odpowiedzi, która jasno to określa, więc oto tl; dr tego:

Termux nie żąda uprawnień systemu plików podczas instalacji, więc musisz je włączyć poprzez Ustawienia => Aplikacje => Termux => Uprawnienia

Nathan Smith
źródło