Termux'un dahili depolamaya erişmesine izin yok - okumak için bile


19

Kullanma termux ( https://termux.com ) terminal emülasyon programı, aşağıdaki komutu:

ls /sdcard

Aşağıdaki hatayı alıyorum:

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

Android'deki / sdcard dizininin bir sembolik bağlantı olduğunu fark ederek , gerçek dizinin konumunu bulmaya çalıştım - sadece bir semboliklik değil, başka bir sembolik sisteme bir sembolik bağlantı ve gerçek dizin / storage / emulated / 0

Sonunda şunu yazdım:

ls -ld /storage/emulated/0

Elde ettiğim sonuç:

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

Yani kısacası --- Ben mi bilmiyorum termux izinleriyle çalıştırmak için kullanılır sdcard_r grup veya ister o okuma-yazma izin vermek için kullanılan izinler - ama eskiden ikisinden hangisi bilmek gerekir ve bir şeylerin nasıl düzeltileceği - çünkü dahili SD kartın içeriğine erişebilmek biraz kritiktir.

Hayır, cihazım köklü değil, root yapmayı da planlamıyorum - bu yüzden cihazı almak için rootlamak zorunda olduğum hiçbir bilgiyi veremiyorum. Ancak, geçmişte hiç kök salmamak, / sdcard dizinine okuma erişimine sahip olmamı engelledi - bu yeni (ve rahatsız edici).

Verilmiş - daha önce yapmaya çalıştığımdan beri birkaç ay geçti - ancak Android'in bu yeni sınırlaması, termux'un ve başka kimin bildiklerini kullanılabilirliğini ciddi şekilde engelliyor - çünkü dosyalara erişebilmem gerekiyor SD Kartımda. (Yazma izinleri olmasa bile her şey olmasa bile hala çok şey yapabilirim - ancak şu anda olduğu gibi okuma izinlerini alamıyorsam suya yapıştım.)


Hmm, READ_EXTERNAL_STORAGEizne sahip olduğu anlaşılıyor , bu yüzden erişime sahip olmalı.
Matthew,

3
Evet --- ama görünüşe göre kapalı. Sistem Tercihleri> Genel> Uygulamalar> Termux ----- 'a gittiğimde fark ettim ve bir şekilde kapatılmış olan dosyalara erişim için bir geçiş anahtarı olduğunu buldum. Söylemeye gerek yok - tekrar açtım ve sorun çözüldü. ------ Tabii ki - acil kriz bitti --- ama bu hala ilk başta neyin kapatılmasına neden olduğu sorusunu gündeme getiriyor. (Bunu hiç yapmadığımı biliyorum.)
user3080003

Aynı sorunu yaşadım ve cevabınız benim için düzeltti. EDIT: Göndermek için aptalca giriş. Yeni bir çizgi oluşturmaya çalışıyordu. İşte düşündüğüm şey: Android 7 artık izinleri reddetmeye (yay!) İzin veriyor, ancak Termux'un durumunda, herhangi bir nedenle, diğer programlar gibi izin istemiyor. Yani, sorun bir şekilde kapatılmamış olması değil, asla açılmamış olması. Bu bir spekülasyon.
Andrew

3
Biri, uygulama istek depolama izinleri yapmak için termux-setup-storage çalıştırabilir. Termux.com/storage.html adresine bakın .
fornwall

Yanıtlar:



5

Android'in daha yeni sürümleri için uygulamaların çalışma sırasında izin istemesi gerekir. Bunu zaten fark etmiş olabilirsiniz. Bunun bir örneği, Chrome'u ilk kez bir şey indirmeye çalıştığınızda Depolama İzni istemektir. Termux için bu bir problem. İzinler varsayılan olarak "izin verilmez" olarak ayarlandığından, Termux'un bir görev için izin alması gerektiğinde, Termux bu izinleri soracak şekilde güncellenmediğinden, bunun yerine görevi yine de gerçekleştirmeye çalışır ve sonuç olarak bir hata atar. Ne yazık ki, geliştirici (ler) bunu kendileri düzeltmek zorundadır. Neyse ki, Android size uygulama izinlerini manuel olarak yönetme yolları sunar. Geliştirici (ler) Termux'u buna göre güncelleyinceye kadar, bu muhtemelen tek yoldur.

Adım 1: Termux'un Uygulama Bilgisi sayfasına gidin

Bu sayfaya ulaşmak için birden fazla yöntem vardır. Farklı telefonların farklı davranışları olabileceğinden, tanıdığımları dahil ettim.

Yöntem 1: Çoklu görev menüsünü kullanma

  1. Termux'u açın.
  2. Çoklu görev menüsünü açmak için çoklu görev düğmesine basın . Bu, soldaki ana sayfa düğmesinin yanında olmalıdır.
  3. Uygulama listesinde, Termux ilk olmalıdır. Simgesine uzun dokunun.

    Bazı telefonlarda zaten bilgi sayfasında olacaksınız. Diğer telefonlarda, bunun yerine, bir yerde bir bilgi simgesi (ℹ) beliren Termux'un uygulama kutusu değişikliklerini göreceksiniz. Diğer telefonlar size "Uygulama Bilgisi" seçeneği içeren bir içerik menüsü verebilir. Her iki durumda da, bunlara dokunun.

Yöntem 2: Bildirim panelini kullanma

  1. Termux'u açın. Termux'un bildiriminin görünmesini istiyorsunuz.
  2. Bildirim panelini aşağı çekin ve Termux'un bildirimini bulun.
  3. Aşağıdakilerden birini deneyin:

    • Bildirimi sola veya sağa kaydırın ve bir dişli çark (⛭) veya bilgi simgesi (ℹ) bulun ve dokunun. Termux'un bildirimini reddedemezsiniz, bu yüzden endişelenmeyin.
    • Bildirime uzun dokunun ve bir dişli (⛭), bir bilgi simgesi (ℹ) veya "Uygulama Bilgisi" seçeneği olan bir içerik menüsü arayın ve ona dokunun.
    • Uygulama simgesini ve / veya adını arayın. Bildirimi hızlıca aşağı kaydırmanız gerekebilir. Üzerine uzun dokunun. Bir dişli çark (⛭), bilgi simgesi (ℹ) veya içerik menüsü belirebilir. Buna göre dokunun.

Yöntem 3: Uygulama Yöneticisi'ni kullanma

  1. Ayarlar> uygulamalar'a gidin.
  2. "Uygulama Yöneticisi" veya benzeri bir seçeneği arayın. Cihazınıza bağlı gibi görünüyor.
  3. Termux'un girişini bulun ve dokunun. Filtrenizi "yüklü uygulamalar" veya "indirilen uygulamalar" olarak değiştirmeniz gerekebilir.

2. Adım: İzinleri değiştirme

Artık Termux'un adını, simgesini ve sürüm numarasını "Kaldır" ve "Zorla Durdur" etiketli bir sayfada bulunmalısınız. aşağıda çeşitli diğer seçenekler olmalıdır.

  1. "İzinler" etiketli bir seçenek arayın (kaydırmanız gerekebilir). Üzerine dokunun.
  2. Depolama izni için bir giriş olmalıdır. Yanındaki düğmeyi tıklayarak açın. Depolama izni listelenmiyorsa, izin reddedildi hatası almak ve geri dönmek için Termux'da depolamayla ilgili bir komut kullanın.

Değişikliği test etme

Artık Termux'a depolama alanınıza erişim izni verdiniz. Bunu aşağıdaki komutla test edebilirsiniz:
ls /sdcard/
İzin verilmedi hatası almazsanız işe yaradı! Termux'u yeniden yüklemediğiniz sürece bunu tekrar yapmanız gerekmez.


1

Temmuz 2017 & ben de aynı sorunu vardı, googled & buraya geldi. Matthew Read'in yorumu çözüme giden yolu işaret etti, ancak bunu net bir şekilde açıklayan bir cevap yok, işte burada tl; dr:

Termux yükleme sırasında dosya sistemi izni istemez, bu yüzden Ayarlar => Uygulamalar => Termux => İzinler aracılığıyla açmanız gerekir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.