Nessuna autorizzazione per Termux per accedere alla memoria interna, anche per la lettura


19

Usando il programma di emulazione terminale termux ( https://termux.com ), digito il seguente comando:

ls /sdcard

Ottengo il seguente errore:

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

Rendendosi conto che la directory / sdcard su Android è un collegamento simbolico, ho provato a trovare la posizione della directory effettiva - apprendendo che non è solo un link simbolico, ma un link simbolico a un altro link simbolico, e la directory effettiva è / storage / emulato / 0

Quindi alla fine ho scritto:

ls -ld /storage/emulated/0

Il risultato che ho ottenuto è stato:

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

Così, in breve --- io non so se termux utilizzato per eseguire con le autorizzazioni del sdcard_r gruppo o se la o autorizzazioni utilizzate per permettere lettura e scrittura - ma ho bisogno di sapere quale dei due ha usato essere e come risolvere le cose - perché è in grado di accedere al contenuto della scheda SD interna è un po 'critico.

No, il mio dispositivo non è rootato, né ho intenzione di effettuare il root - quindi non posso fornire alcuna informazione che dovrei ottenere per effettuare il root del dispositivo. Tuttavia, non essere rootato in passato non mi ha impedito di avere accesso in lettura alla directory / sdcard - quindi questo è nuovo (e inquietante).

Concesso - sono passati alcuni mesi da quando in precedenza ho provato a farlo - ma questa nuova limitazione di Android ostacola seriamente l'usabilità di termux e chissà cos'altro - dato che devo essere in grado di avere accesso ai file che sono sulla mia scheda SD. (Posso ancora fare molto, anche se non tutto, anche senza i permessi di scrittura - ma sono praticamente bloccato nell'acqua se non riesco a ottenere i permessi di lettura, come è attualmente il caso.)


Hmm, sembra che abbia il READ_EXTERNAL_STORAGEpermesso, quindi dovrebbe avere accesso.
Matteo Leggi l'

3
Sì --- ma apparentemente si era spento. L'ho capito quando sono andato in Preferenze di Sistema> Generali> Applicazioni> Termux ----- e ho scoperto che c'era un interruttore a levetta per l'accesso ai file che era stato in qualche modo spento. Inutile dire che l'ho riacceso e il problema è stato risolto. ------ Naturalmente - la crisi immediata è finita --- ma tutto ciò solleva ancora la questione di cosa abbia causato la sua disattivazione in primo luogo. (So ​​di non averlo mai fatto.)
user3080003

Ho avuto lo stesso problema e la tua risposta qui l'ha risolto per me. EDIT: Stupido invio da inviare. Stavo cercando di creare una nuova linea. Ecco cosa penso sia successo: Android 7 ora consente di negare le autorizzazioni (yay!), Ma, nel caso di Termux, per qualsiasi motivo, non richiede autorizzazioni come fanno altri programmi. Quindi, il problema non è che è stato in qualche modo spento, ma non è mai stato acceso. Questa è speculazione, però.
Andrew,

3
È possibile eseguire termux-setup-storage per fare in modo che l'app richieda autorizzazioni di archiviazione. Vedi termux.com/storage.html .
Fornwall

Risposte:



5

Le versioni più recenti di Android richiedono che le app richiedano l'autorizzazione durante il runtime. Potresti averlo già notato. Un esempio è Chrome che richiede l'autorizzazione di archiviazione quando si tenta di scaricare qualcosa per la prima volta. Per Termux, questo è un problema. Le autorizzazioni predefinite sono "non consentite", quindi quando Termux necessita di un'autorizzazione per un'attività, poiché Termux non è stato aggiornato per richiedere tali autorizzazioni, cerca comunque di eseguire l'attività e genera un errore di conseguenza. Sfortunatamente, gli sviluppatori devono risolvere questo problema da soli. Per fortuna, Android ti offre la possibilità di gestire manualmente le autorizzazioni delle app. Fino a quando gli sviluppatori non aggiornano Termux di conseguenza, questo è probabilmente l'unico modo.

Passaggio 1: vai alla pagina Informazioni sull'app di Termux

Esistono più metodi per raggiungere questa pagina. Poiché telefoni diversi possono avere comportamenti diversi, ho incluso tutti quelli che conosco.

Metodo 1: utilizzo del menu multitasking

  1. Apri Termux.
  2. Premere il pulsante Multitasking per aprire il menu Multitasking. Dovrebbe essere vicino al pulsante Home a sinistra.
  3. Nell'elenco delle applicazioni, Termux dovrebbe essere il primo. Tocca e tieni premuta la sua icona.

    Su alcuni telefoni, sarai già nella pagina delle informazioni. Su altri telefoni, invece, vedrai la modifica dell'app-box-app di Termux in alto, con un'icona informazioni (ℹ) che appare da qualche parte. Altri telefoni potrebbero offrire un menu di scelta rapida con un'opzione "Informazioni app". In entrambi i casi, tocca questi.

Metodo 2: utilizzo del pannello delle notifiche

  1. Apri Termux. Vuoi che appaia la notifica di Termux.
  2. Apri il pannello delle notifiche e trova la notifica di Termux.
  3. Prova uno dei seguenti:

    • Scorri la notifica verso sinistra o destra e cerca una ruota dentata (⛭) o un'icona informazioni (ℹ) e toccala. Non puoi respingere la notifica di Termux, quindi non preoccuparti.
    • Tocca e tieni premuta la notifica e cerca un ingranaggio (⛭), un'icona informazioni (ℹ) o un menu di scelta rapida con un'opzione "Informazioni app" e toccala.
    • Cerca l'icona dell'app e / o il nome. Potrebbe essere necessario scorrere verso il basso sulla notifica. Tocca e tieni premuto. Potrebbe apparire una ruota dentata (⛭), un'icona informazioni (info) o un menu di scelta rapida. Tocca di conseguenza.

Metodo 3: utilizzo di Gestione app

  1. Vai su impostazioni> app.
  2. Cerca un'opzione etichettata "Gestione applicazioni" o simile. Sembra dipendere dal tuo dispositivo.
  3. Cerca la voce di Termux e toccala. Potrebbe essere necessario modificare il filtro in "app installate" o "app scaricate".

Passaggio 2: modifica delle autorizzazioni

Ora dovresti trovarti in una pagina con il nome, l'icona e il numero di versione di Termux con due pulsanti etichettati "Disinstalla" e "Forza l'arresto". sotto dovrebbe essere varie altre opzioni.

  1. Cerca un'opzione denominata "Autorizzazioni" (potrebbe essere necessario scorrere). Toccalo.
  2. Dovrebbe essere presente una voce per l'autorizzazione di archiviazione. Attivalo facendo clic sull'interruttore accanto ad esso. Se l'autorizzazione di archiviazione non è elencata, utilizzare un comando relativo all'archiviazione in Termux per ottenere un errore di autorizzazione negata e tornare indietro.

Testare la modifica

Ora hai dato a Termux l'accesso al tuo archivio. Puoi verificarlo con il comando seguente:
ls /sdcard/
Se non ricevi un errore di autorizzazione negata, ha funzionato! Non è necessario ripetere l'operazione a meno che non si reinstalli Termux.


0

è luglio 2017 e ho avuto lo stesso problema, ho cercato su Google e sono arrivato qui. Il commento di Matthew Read ha indicato la strada per la soluzione, ma non c'è una risposta che la spieghi chiaramente, quindi ecco il tl; dr di essa:

Termux non richiede l'autorizzazione del file system durante l'installazione, quindi è necessario attivarlo tramite Impostazioni => Applicazioni => Termux => Autorizzazioni

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.