Permiso de escritura en ciertas rutas, como la tarjeta SD (extSdCard)

10

En un intento de transferir un archivo desde un servidor remoto a un dispositivo Android, me encontré con problemas de permisos.

Resulta que no tengo un permiso de escritura en la ubicación de la tarjeta SD (/ mnt / extSdCard).

Estoy usando SSHDroid como servidor ssh en el dispositivo Android y vSSH como cliente ssh para participar en ssh en el dispositivo Android.

Dado que tanto sudo como su parecen estar ausentes en la aplicación de servidor ssh (SSHDroid), me pregunto cómo puedo cambiar / obtener permiso para escribir en la ubicación de la tarjeta SD. ¿O el privilegio de root no es suficiente para cambiar los permisos de escritura, y esto se rige únicamente por el sistema operativo Android, por lo que es una limitación del sistema operativo?

Lo que puedo hacer es escribir en la ruta de inicio del servidor ssh (SSHDroid). Esta ruta, sin embargo, es muy engorrosa y no se puede acceder desde la API normal del navegador de archivos de Android. Esta es la razón por la que quería transferir el archivo a una ruta accesible , como la tarjeta SD.

Suplemento. La versión de Android es 4.4.2. La versión del kernel es 3.4.0-1539356 # 1.

Mussé Redi
fuente
3
Esa es una restricción de Kitkat (lo llaman "seguridad", pero en realidad es más bien un "force2cloud"). No podrá evitar eso sin rootear su dispositivo. Excepto por elegir su tarjeta SD interna , porque allí puede escribir.
Izzy
@Izzy Si hubieras puesto eso en una respuesta, entonces esta pregunta sería una pregunta contestada .
Mussé Redi
Hecho, con algunos detalles más suministrados. Me hubiera gustado darle una mejor respuesta (con una solución más conveniente), pero Google prohíbe eso ...
Izzy
De Verdad? Les enseñé que eran un gran admirador del espíritu de código abierto.
Mussé Redi
"Solo haz lo que te digo, no hagas lo que yo hago". Distinguir entre las flores y los frutos. Proclamado "código abierto", Google mezcla muchas cosas propietarias, entre otras. Y la "libertad" se vuelve más restringida con cada nueva versión de Android. Pero ese no es un tema aquí :)
Izzy

Respuestas:

9

Una de las restricciones introducidas con fue trasladar el WRITE_EXTERNAL_STORAGEpermiso al nivel de protección "SignatureOrSystem", lo que significa que incluso si se solicita, una "aplicación normal" (es decir, una que se instale como "usuario normal" sin ninguna especialidad raíz) no Ya no lo concedas. Así que hay muy pocas cosas que puede hacer para "solucionar" esto:

  • obviamente: rootear el dispositivo y eliminar este límite
  • usando el directorio "personal" de la aplicación como almacenamiento para sus archivos sincronizados (es decir <sdcard>/Android/data/<package_name>/, ya que este es el único lugar donde una aplicación puede escribir en SD con Kitkat)
  • usando su tarjeta como almacenamiento (ya que aquí no se aplica la limitación)
Izzy
fuente
¿Cuáles son las desventajas de rootear un dispositivo Android? ¿La garantía queda obsoleta?
Mussé Redi
Más probable. En la UE hay una ley para eso, que distingue entre garantía y garantía. Una de ellas se aplica por ley (y no puede quedar obsoleta al enraizar), la otra es una oferta no obligatoria del fabricante, y con eso la decisión tomada por él. Se ve de manera diferente fuera de la UE, por lo que no hay una respuesta definitiva aquí.
Izzy
1

Siempre puede sacar la tarjeta sd externa del dispositivo y conectarla a su PC. La mayoría de las PC no son compatibles con las tarjetas micro SD, pero puede usar un adaptador. Más información aquí: https://en.wikipedia.org/wiki/Secure_Digital#Micro

Si la tarjeta sd externa está montada en su PC, puede leer y escribir todos los archivos en ella :-)

guettli
fuente
Fue más bien un ejercicio ver hasta dónde puede llegar con ssh en un dispositivo Android en lugar de acceder al contenido de la tarjeta SD.
Mussé Redi