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 file browser. 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.

5
  • 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, 2014 at 7:41
  • @Izzy If you would have put that in an answer then this question would be an answered question.
    – easytarget
    Jul 17, 2014 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, 2014 at 9:38
  • Really? I thaught they where a big fan of the open source spirit.
    – easytarget
    Jul 17, 2014 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, 2014 at 10:43

2 Answers 2

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)
2
  • What are the downsides of rooting an android device? Does the warranty become obsolete?
    – easytarget
    Jul 17, 2014 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, 2014 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 :-)

1
  • 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.
    – easytarget
    Jul 23, 2016 at 18:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .