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

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 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 del 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, por lo tanto, 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 principal del servidor ssh (SSHDroid). Esta ruta, sin embargo, es muy engorrosa y no se puede acceder desde el navegador de archivos normal 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 núcleo es 3.4.0-1539356#1.

Esa es una restricción de Kitkat (lo llaman "seguridad", pero en realidad es más bien un "force2cloud"). No podrá solucionar eso sin rootear su dispositivo. Excepto por elegir tu tarjeta SD interna , porque allí puedes escribir.
@Izzy Si hubiera puesto eso en una respuesta, entonces esta pregunta sería una pregunta respondida .
Listo, con algunos detalles más proporcionados. Me hubiera gustado darte una mejor respuesta (con una solución más conveniente), pero Google lo prohíbe...
¿En serio? Enseñé que eran grandes admiradores del espíritu de código abierto.
"Solo haz lo que digo, no hagas lo que yo hago". Distinguir entre las flores y los frutos. Proclamado "código abierto", Google mezcla muchas cosas patentadas, entre otras. Y la "libertad" se restringe más con cada nueva versión de Android. Pero ese no es tema para aquí :)

Respuestas (2)

Una de las restricciones introducidas con fue mover 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 usted mismo instala como "usuario normal" sin ninguna especialidad raíz) no Ya no te lo concedan. Entonces, hay muy pocas cosas que puede hacer para "solucionar" esto:

  • obviamente: rootear el dispositivo y eliminar este límite
  • usar 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)
¿Cuáles son las desventajas de rootear un dispositivo Android? ¿La garantía se vuelve obsoleta?
Más probable. En la UE hay una ley para eso, que distingue entre garantía y garantía. Uno de ellos es obligatorio por ley (y no puede quedar obsoleto mediante el enraizamiento), el otro es una oferta no obligatoria del fabricante, y con eso la decisión tomada por él. Se ve diferente fuera de la UE, por lo que no hay una respuesta definitiva aquí.

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 :-)

Fue más una especie de ejercicio ver hasta dónde se puede llegar con ssh en un dispositivo Android en lugar de acceder al contenido de la tarjeta SD.