10

In an attempt to transfer a file from a remote server to an Android device I ran into permission problems.

It turns out that I do not have a write permission at the location of the SD card (/mnt/extSdCard).

I am using SSHDroid as an ssh server on the Android device and vSSH as an ssh client to engage in ssh on the Android device.

Since both sudo and su seem to be absent on the ssh server app (SSHDroid), I am wondering how I can change/get permission to write to the SD card location. Or is root privilege not enough to change write permissions, and is this thus governed solely by the Android OS, so a limitation of the OS?

What I can do is write to the home path of the ssh server (SSHDroid). This path, however, is very cumbersome and can not be reached from the regular Android filebrowser API. This is the reason why I wanted to transfer the file to an accessible path, like the SD card.

Supplement. The Android version is 4.4.2. The kernel version is 3.4.0-1539356#1.

  • 3
    That's a restriction of Kitkat (they call it "security", but in reality it's rather a "force2cloud"). You won't be able to work around that without rooting your device. Except for chosing your internal SD-Card, because there you can write. – Izzy Jul 17 '14 at 7:41
  • @Izzy If you would have put that in an answer then this question would be an answered question. – Mussé Redi Jul 17 '14 at 8:16
  • Done, with a few more details supplied. I had liked to give you a better answer (with a more convenient solution), but Google forbids that... – Izzy Jul 17 '14 at 9:38
  • Really? I thaught they where a big fan of the open source spirit. – Mussé Redi Jul 17 '14 at 9:44
  • "Just do as I say, don't do as I do". Distinguish between the flowers and the fruits. Proclaimed "open source", Google mixes in a lot of proprietary stuff, amongst others. And "freedom" gets more restricted with each new Android version. But that's no topic for here :) – Izzy Jul 17 '14 at 10:43
9

One of the restrictions introduced with was moving the WRITE_EXTERNAL_STORAGE permission to protection-level "SignatureOrSystem", which means even if requested, a "normal app" (i.e. one you install yourself as "normal user" without any root specialities) will no longer get it granted. So there are very few things you can do to "work around" this:

  • obviously: rooting the device, and removing this limit
  • using the app's "personal" directory as storage for your sync'd files (i.e. <sdcard>/Android/data/<package_name>/, as this is the only place an app can write on SD with Kitkat)
  • using your card as storage (as here the limitation does not apply)
  • What are the downsides of rooting an android device? Does the warranty become obsolete? – Mussé Redi Jul 17 '14 at 9:43
  • Most likely. In the EU there's a law for that, distinguishing between warranty and guarantee. One of them is enforced by law (and cannot be obsoleted by rooting), the other is a non-mandatory offer of the manufacturer, and with that the decision made by him. Looks differently outside the EU, so no definite answer here. – Izzy Jul 17 '14 at 10:41
1

You can always take the external sdcard out of the device, and plug it into your pc. Most pc don't support the micro-sdcards, but you can use an adapter. More infos here: https://en.wikipedia.org/wiki/Secure_Digital#Micro

If the external sdcard is mounted in your pc, then you can read and write all files on it :-)

  • It was more kind of an excercise to see how far you can go with ssh on an android device rather than accessing the content on the SD card. – Mussé Redi Jul 23 '16 at 18:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.