Autorizzazione alla scrittura su determinati percorsi, come la scheda SD (extSdCard)


10

Nel tentativo di trasferire un file da un server remoto a un dispositivo Android ho riscontrato problemi di autorizzazione.

Si scopre che non ho un permesso di scrittura nella posizione della scheda SD (/ mnt / extSdCard).

Sto usando SSHDroid come server SSH sul dispositivo Android e VSSH come client SSH per impegnarsi in SSH sul dispositivo Android.

Poiché sia ​​sudo che su sembrano essere assenti sull'app ssh server (SSHDroid), mi chiedo come posso cambiare / ottenere il permesso di scrivere sulla posizione della scheda SD. O il privilegio di root non è sufficiente per modificare i permessi di scrittura, e questo è quindi governato esclusivamente dal sistema operativo Android, quindi una limitazione del sistema operativo?

Quello che posso fare è scrivere sul percorso principale del server SSH (SSHDroid). Questo percorso, tuttavia, è molto complicato e non può essere raggiunto dalla normale API di browser di file Android. Questo è il motivo per cui volevo trasferire il file in un percorso accessibile , come la scheda SD.

Supplemento. La versione di Android è 4.4.2. La versione del kernel è 3.4.0-1539356 # 1.


3
Questa è una restrizione di Kitkat (lo chiamano "sicurezza", ma in realtà è piuttosto un "force2cloud"). Non sarai in grado di aggirare il problema senza eseguire il root del tuo dispositivo. Fatta eccezione per la scelta della scheda SD interna , perché è possibile scrivere.
Izzy

@Izzy Se lo avessi inserito in una risposta, questa domanda sarebbe una risposta .
Mussé Redi,

Fatto, con alcuni dettagli in più forniti. Mi sarebbe piaciuto darti una risposta migliore (con una soluzione più conveniente), ma Google proibisce che ...
Izzy

Veramente? Ho insegnato a loro un grande fan dello spirito open source.
Mussé Redi,

"Fai solo come ti dico, non fare come faccio io". Distingua tra i fiori e i frutti. Proclamato "open source", Google mescola molte cose proprietarie, tra le altre cose. E la "libertà" diventa più limitata con ogni nuova versione di Android. Ma questo non è un argomento per qui :)
Izzy

Risposte:


9

Una delle restrizioni introdotte con era il trasferimento WRITE_EXTERNAL_STORAGEdell'autorizzazione al "SignatureOrSystem" a livello di protezione, il che significa che anche se richiesto, una "app normale" (ovvero quella che si installa come "utente normale" senza specialità root) no ottenere più concesso. Quindi ci sono pochissime cose che puoi fare per "aggirare" questo:

  • ovviamente: il rooting del dispositivo e la rimozione di questo limite
  • utilizzando la directory "personale" dell'app come archivio per i file sincronizzati (ovvero <sdcard>/Android/data/<package_name>/, poiché questo è l'unico posto in cui un'app può scrivere su SD con Kitkat)
  • utilizzando la scheda come memoria (poiché qui non si applica la limitazione)

Quali sono gli svantaggi del rooting di un dispositivo Android? La garanzia diventa obsoleta?
Mussé Redi,

Più probabilmente. Nell'UE esiste una legge per questo, che distingue tra garanzia e garanzia. Uno di essi è applicato per legge (e non può essere superato con il rooting), l'altro è un'offerta non obbligatoria del produttore e con ciò la decisione da lui presa. Sembra diverso al di fuori dell'UE, quindi nessuna risposta definitiva qui.
Izzy

1

Puoi sempre estrarre la scheda SD esterna dal dispositivo e collegarla al PC. La maggior parte dei pc non supporta le micro-schede, ma è possibile utilizzare un adattatore. Maggiori informazioni qui: https://en.wikipedia.org/wiki/Secure_Digital#Micro

Se la scheda SD esterna è montata sul tuo PC, puoi leggere e scrivere tutti i file su di essa :-)


È stato più che altro un esercizio per vedere quanto lontano puoi andare con ssh su un dispositivo Android piuttosto che accedere al contenuto sulla scheda SD.
Mussé Redi,
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.