在某些路径上具有写权限,例如SD卡(extSdCard)


10

为了将文件从远程服务器传输到Android设备,我遇到了权限问题。

事实证明,我在SD卡(/ mnt / extSdCard)的位置没有写许可。

我正在将SSHDroid用作Android设备上的ssh服务器,并使用vSSH作为ssh客户端来在Android设备上参与ssh。

由于ssh服务器应用程序(SSHDroid)上似乎既没有sudo也有su,所以我想知道如何更改/获取写入SD卡位置的权限。还是root特权不足以更改写许可权,因此这是否仅由Android OS控制,因此OS的局限性?

能做的就是写入ssh服务器(SSHDroid)的本地路径。但是,此路径非常繁琐,无法通过常规的Android文件浏览器API来访问。这就是为什么我要将文件传输到SD卡等可访问路径的原因。

补充。Android版本是4.4.2。内核版本为3.4.0-1539356#1。


3
这是Kitkat的限制(他们称其为“安全性”,但实际上是“ force2cloud”)。如果没有植根设备,您将无法解决该问题。除了选择内部 SD卡以外,因为您可以在其中写东西。
伊兹

@Izzy如果您将其放在答案中,则此问题将为已回答的问题
穆塞·雷迪

完成,提供了更多详细信息。我想给您一个更好的答案(采用更方便的解决方案),但Google禁止这样做
Izzy

真?我认为他们是开源精神的忠实拥护者。
穆塞·雷迪

“只要按照我说的做,就不要像我那样做”。区分花朵和果实。Google被称为“开放源代码”,其中包含许多专有内容。每个新的Android版本对“自由”的限制都更大。但这不是这里的主题:)
伊兹

Answers:


9

引入的限制是将WRITE_EXTERNAL_STORAGE权限转移到保护级别“ SignatureOrSystem”,这意味着即使请求,“普通应用程序”(即您自己以“普通用户”身份安装而没有任何根特殊性)也不会不再得到它。因此,您几乎可以做一些事情来“解决”此问题:

  • 显然:生根设备,并消除此限制
  • 使用应用程序的“个人”目录作为已同步文件的存储空间(即<sdcard>/Android/data/<package_name>/,因为这是应用程序可以通过Kitkat在SD上进行写入的唯一位置)
  • 使用您的卡作为存储设备(因为此限制不适用)

扎根Android设备有哪些弊端?保修是否过时?
穆塞·雷迪

最有可能的。在欧盟,有一项法律将保修与担保区分开。其中之一是法律强制执行的(不能因生根而废除),另一个是制造商的非强制性报价,并由制造商做出决定。在欧盟之外的情况看起来有所不同,因此这里没有明确的答案。
伊兹

1

您始终可以将外部SD卡从设备中取出,然后将其插入PC。大多数电脑不支持微型SD卡,但是您可以使用适配器。此处提供更多信息:https//en.wikipedia.org/wiki/Secure_Digital#Micro

如果您的PC上安装了外部sdcard,则可以在其中读取和写入所有文件:-)


看到您可以在android设备上使用ssh而不是访问SD卡上的内容,这更像是一种练习。
穆塞·雷迪
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.