Tidak ada izin untuk Termux untuk mengakses penyimpanan internal - bahkan untuk membaca

19

Menggunakan program terminal-emulation termux ( https://termux.com ), saya mengetik perintah berikut:

ls /sdcard

Saya mendapatkan kesalahan berikut:

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

Menyadari bahwa direktori / sdcard pada Android adalah symlink, saya mencoba mencari lokasi direktori sebenarnya - mengetahui bahwa itu bukan hanya symlink, tetapi symlink ke symlink lain, dan direktori aktualnya adalah / storage / emulated / 0

Jadi akhirnya, saya mengetik:

ls -ld /storage/emulated/0

Hasil yang saya dapatkan adalah:

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

Jadi singkatnya --- Saya tidak tahu apakah termux digunakan untuk menjalankan dengan izin dari grup sdcard_r atau apakah o izin yang digunakan untuk mengizinkan baca-tulis - tapi saya perlu tahu yang mana dari dua dulu dan bagaimana cara memperbaikinya - karena dapat mengakses isi kartu SD internal agak kritis.

Tidak, perangkat saya tidak di-rooting, saya juga tidak berencana untuk melakukan rooting - jadi saya tidak dapat memberikan informasi apa pun bahwa saya harus melakukan rooting pada perangkat untuk mendapatkan. Namun, tidak pernah di-rooting sebelumnya mencegah saya dari memiliki akses baca ke direktori / sdcard - jadi ini baru (dan mengganggu).

Memang - sudah beberapa bulan sejak sebelumnya saya mencoba melakukan ini - tetapi batasan baru dari Android ini secara serius menghambat kegunaan termux dan siapa-tahu-apa-lagi - karena saya harus dapat memiliki akses ke file yang di Kartu SD saya. (Saya masih bisa melakukan banyak hal, bahkan jika tidak semuanya, bahkan tanpa izin menulis - tetapi saya cukup banyak terjebak dalam air jika saya tidak bisa mendapatkan izin baca, seperti saat ini.)

pengguna3080003
sumber
Hmm, kelihatannya ia memiliki READ_EXTERNAL_STORAGEizin, jadi itu harus memiliki akses.
Matius Baca
3
Ya --- tapi ternyata sudah dimatikan. Saya menyadarinya ketika saya masuk System Preferences> General> Applications> Termux ----- dan menemukan bahwa ada toggle switch untuk akses ke file yang entah bagaimana sudah dimatikan. Tidak perlu dikatakan lagi - saya menyalakannya kembali, dan masalahnya terpecahkan. ------ Tentu saja - krisis langsung telah berakhir --- tetapi ini masih menimbulkan pertanyaan tentang apa yang menyebabkannya dimatikan. (Saya tahu saya tidak pernah melakukan itu.)
user3080003
Saya memiliki masalah yang sama, dan jawaban Anda di sini memperbaikinya untuk saya. EDIT: Bodoh enter-to-submit. Sedang berusaha membuat garis baru. Inilah yang saya pikir terjadi: Android 7 sekarang memungkinkan penolakan izin (yay!), Tetapi, dalam kasus Termux, untuk alasan apa pun, itu tidak meminta izin seperti program lain. Jadi, masalahnya bukan itu entah bagaimana dimatikan, tetapi tidak pernah dinyalakan. Tapi ini spekulasi.
Andrew
3
Seseorang dapat menjalankan termux-setup-storage untuk membuat izin penyimpanan permintaan aplikasi. Lihat termux.com/storage.html .
fornwall

Jawaban:

5

Versi Android yang lebih baru membutuhkan aplikasi untuk meminta izin selama runtime. Anda mungkin sudah memperhatikan ini. Salah satu contoh adalah Chrome meminta izin Penyimpanan ketika Anda mencoba mengunduh sesuatu untuk pertama kalinya. Bagi Termux, ini masalah. Izin default untuk "tidak diizinkan," jadi ketika Termux membutuhkan izin untuk suatu tugas, karena Termux belum diperbarui untuk meminta izin ini, ia malah mencoba untuk melakukan tugas dan melemparkan kesalahan sebagai hasilnya. Sayangnya, pengembang harus memperbaikinya sendiri. Untungnya, Android memberi Anda cara untuk mengelola izin aplikasi secara manual. Sampai pengembang memperbarui Termux yang sesuai, ini mungkin satu-satunya cara.

Langkah 1: Buka halaman Info Aplikasi Termux

Ada beberapa metode untuk mencapai halaman ini. Karena ponsel yang berbeda dapat memiliki perilaku yang berbeda, saya memasukkan semua yang saya tahu.

Metode 1: Menggunakan menu multitask

  1. Buka Termux.
  2. Tekan tombol multitask untuk membuka menu multitask. Ini harus di sebelah tombol beranda di sebelah kiri.
  3. Dalam daftar aplikasi, Termux harus menjadi yang pertama. Ketuk dan tahan ikonnya.

    Pada beberapa ponsel, Anda sudah berada di halaman info. Di ponsel lain, Anda akan melihat perubahan app-box Termux di bagian atas, dengan ikon info (ℹ) muncul di suatu tempat. Ponsel lain mungkin memberi Anda menu konteks dengan opsi "Info App". Dalam kedua kasus, ketuk ini.

Metode 2: Menggunakan panel notifikasi

  1. Buka Termux. Anda ingin notifikasi Termux muncul.
  2. Tarik ke bawah panel notifikasi dan temukan notifikasi Termux.
  3. Coba salah satu di bawah ini:

    • Geser pemberitahuan ke kiri atau kanan dan cari roda penggerak (⛭) atau ikon info (ℹ) dan ketuk. Anda tidak dapat mengabaikan pemberitahuan Termux, jadi jangan khawatir tentang itu.
    • Ketuk dan tahan notifikasi dan cari roda gigi (⛭), ikon info (ℹ), atau menu konteks dengan opsi "Info Aplikasi" dan ketuk.
    • Cari ikon aplikasi dan / atau nama. Anda mungkin harus menggesek notifikasi. Ketuk dan tahan. Roda gigi (⛭), ikon info (ℹ), atau menu konteks mungkin muncul. Ketuk yang sesuai.

Metode 3: Menggunakan App Manager

  1. Buka pengaturan> aplikasi.
  2. Cari opsi berlabel "Manajer Aplikasi" atau yang serupa. Tampaknya tergantung pada perangkat Anda.
  3. Cari entri Termux dan ketuk. Anda mungkin harus mengubah filter Anda menjadi "aplikasi yang diinstal" atau "aplikasi yang diunduh."

Langkah 2: Mengubah izin

Anda sekarang harus berada pada halaman dengan nama, ikon, dan nomor versi Termux dengan dua tombol berlabel "Uninstall" dan "Force Stop." di bawahnya harus ada berbagai pilihan lain.

  1. Cari opsi berlabel "Izin" (Anda mungkin perlu menggulir). Ketuk itu.
  2. Seharusnya ada entri untuk izin Penyimpanan. Nyalakan dengan mengklik sakelar di sebelahnya. Jika izin Penyimpanan tidak terdaftar, gunakan perintah terkait penyimpanan di Termux untuk mendapatkan kesalahan yang ditolak izin dan kembali.

Menguji perubahan

Anda sekarang telah memberikan akses Termux ke penyimpanan Anda. Anda dapat menguji ini dengan perintah di bawah ini:
ls /sdcard/
Jika Anda tidak mendapatkan izin ditolak kesalahan, itu berhasil! Anda tidak perlu melakukan ini lagi kecuali Anda menginstal ulang Termux.

ColinTNMP
sumber
0

ini bulan Juli 2017 & saya punya masalah yang sama, googled untuk itu, & tiba di sini. Komentar Matthew Read menunjukkan jalan menuju solusi, tetapi tidak ada jawaban yang menjabarkannya dengan jelas, jadi inilah tl; dr darinya:

Termux tidak meminta izin sistem file saat instalasi, jadi Anda harus menyalakannya melalui Pengaturan => Aplikasi => Termux => Izin

Nathan Smith
sumber