Немає дозволів для доступу Termux до внутрішнього сховища - навіть для читання


19

Використовуючи програму терміналу ( https://termux.com ) терміналу-емуляції, я набираю таку команду:

ls /sdcard

Я отримую таку помилку:

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

Зрозумівши, що каталог / sdcard на Android є символьним посиланням, я спробував знайти місце фактичного каталогу - дізнавшись, що це не просто симпосилання, а символьне посилання на інше символьне посилання, а фактичний каталог - / зберігання / емуляція / 0

Отже, нарешті, я набрав:

ls -ld /storage/emulated/0

Я отримав результат:

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

Отже, коротко --- я не знаю, термікс використовувався для запуску з дозволами групи sdcard_r, чи дозволи дозволу o використовувались для дозволу читання-запису - але мені потрібно знати, хто з двох раніше був і як виправити речі - адже можливість доступу до вмісту внутрішньої карти SD начебто важлива.

Ні, мій пристрій не вкорінюється, і я не планую викорінювати його, тому я не можу дати жодної інформації, яку я повинен був би викорінити. Однак ніколи не вкорінюватися ніколи в минулому не заважало мені прочитати доступ до каталогу / sdcard - тому це нове (і тривожне).

Зрозуміло - минуло кілька місяців, оскільки раніше я намагався це зробити, - але це нове обмеження від Android серйозно перешкоджає зручності використання termux і, хто знає, що ще - тому що мені потрібно мати доступ до файлів, які є на моїй SD-картці. (Я все ще можу зробити багато, навіть якщо не все, навіть без дозволу на запис - але я дуже сильно застряг у воді, якщо не можу отримати дозволи на читання, як це зараз.)


Гм, здається, у нього є READ_EXTERNAL_STORAGEдозвіл, тому він повинен мати доступ.
Матвій

3
Так --- але, мабуть, його відключили. Я зрозумів це, коли зайшов у System Preferences> General> Applications> Termux ----- і виявив, що є перемикач для доступу до файлів, які якось вимкнулися. Зайве говорити - я знову ввімкнув її, і проблема була вирішена. ------ Звичайно - негайна криза закінчилася --- але це все-таки ставить питання про те, що змусило її відключитися в першу чергу. (Я знаю, я ніколи цього не робив.)
user3080003

У мене була така ж проблема, і ваша відповідь тут вирішила це для мене. РЕДАКТУВАННЯ: Дурне введення для подання. Намагався створити новий рядок. Ось що я думаю, що сталося: Android 7 тепер дозволяє забороняти дозволи (так!), Але, у випадку Termux, з будь-якої причини він не вимагає дозволу, як це роблять інші програми. Отже, проблема не в тому, що вона якось була вимкнена, але ніколи не була включена. Це, однак, спекуляція.
Андрій

3
Можна запустити termux-setup-storage для отримання дозволу на зберігання запиту програми. Дивіться termux.com/storage.html .
fornwall

Відповіді:



5

Новіші версії Android вимагають, щоб додатки запитували дозволу під час виконання. Ви, можливо, це вже помітили. Одним із прикладів є Chrome, який запитує дозволу на зберігання, коли ви намагаєтесь завантажити щось вперше. Для Termux це проблема. Дозвіл за замовчуванням "не дозволено", тому коли Termux потрібен дозвіл на завдання, оскільки Termux не оновлювався для запиту цих дозволів, він натомість намагається виконати завдання все одно і видає помилку як результат. На жаль, розробники повинні це самі виправити. На щастя, Android надає способи керування дозволами додатків вручну. Поки розробники не оновлюють Термукс відповідно, це, мабуть, єдиний спосіб.

Крок 1: Перейдіть на сторінку Інформація про додаток Termux

Існує кілька способів дійти до цієї сторінки. Оскільки різні телефони можуть мати різну поведінку, я включив усіх тих, кого знаю.

Спосіб 1: Використання багатозадачного меню

  1. Відкрийте Termux.
  2. Натисніть кнопку багатозадачності, щоб відкрити меню багатозадачності. Це має бути поруч із домашньою кнопкою зліва.
  3. У списку програм Termux має бути першим. Торкніться і утримуйте її значок.

    На деяких телефонах ви вже будете на сторінці інформації. На інших телефонах ви замість цього побачите зміну коробки додатків Termux у верхній частині, де інформаційна піктограма (ℹ) з’являється десь. Інші телефони можуть надавати вам контекстне меню з опцією "Інформація про додаток". В обох випадках натисніть їх.

Спосіб 2: Використання панелі сповіщень

  1. Відкрийте Termux. Ви хочете, щоб повідомлення Termux з’явилося.
  2. Відсуньте панель сповіщень і знайдіть сповіщення Termux.
  3. Спробуйте щось із наведеного нижче:

    • Проведіть сповіщення ліворуч або праворуч і знайдіть колесо зубчика (⛭) або значок інформації (() та торкніться його. Ви не можете відхилити сповіщення Termux, тому не хвилюйтеся з цього приводу.
    • Торкніться та утримуйте сповіщення та знайдіть або шестірню (⛭), іконку інформації (ℹ), або контекстне меню з опцією "Інформація про додаток" та торкніться її.
    • Знайдіть піктограму програми та / або ім’я. Можливо, вам доведеться провести пальцем вниз по сповіщенню. Торкніться і утримуйте його. Можливо, спливе колесо зубця (⛭), інформаційна піктограма (ℹ) або контекстне меню. Торкніться відповідно.

Спосіб 3: Використання диспетчера додатків

  1. Перейдіть у налаштування> програми.
  2. Шукайте параметр із написом "Менеджер програм" або подібний. Здається, це залежить від вашого пристрою.
  3. Шукайте запис Termux і торкніться його. Можливо, вам доведеться змінити фільтр на "встановлені додатки" або "завантажені програми".

Крок 2: Зміна дозволів

Тепер ви повинні знаходитись на сторінці з назвою, значком та номером версії Termux з двома кнопками з позначками "Видалити" та "Примусово зупинити". внизу повинні бути різні інші варіанти.

  1. Шукайте опцію з написом "Дозволи" (можливо, вам потрібно буде прокрутити). Торкніться його.
  2. Там має бути запис дозволу на зберігання. Увімкніть його, натиснувши перемикач поруч. Якщо дозвіл на зберігання не вказаний, використовуйте команду, пов’язану з пам’яттю, у Termux, щоб отримати дозвіл відхилено у дозволі та повернутися назад.

Тестування змін

Тепер ви надали Termux доступ до вашої пам’яті. Ви можете перевірити це за допомогою команди нижче:
ls /sdcard/
Якщо ви не отримали дозволу, який відхилив помилку, він працював! Вам не потрібно робити це ще раз, якщо ви не перевстановите Termux.


0

це липень 2017 року, і у мене була ця сама проблема, гугл для неї, і прибув сюди. Коментар Меттью Рейда вказав шлях до рішення, але немає відповіді, яка б чітко його роз'яснила, тож ось вам:

Termux не вимагає дозволу файлової системи при встановленні, тому вам потрібно ввімкнути його через Settings => Applications => Termux => Permissions

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.