如何在/ sdcard上执行文件?

时间:2013-10-01 00:44:40

标签: android

我正在尝试在我的root用户Nexus 4上运行sqlite3。我已经将可执行文件推送到/ sdcard但我无法执行它。我运行Android 4.3的股票,根据SuperSU 1.45。

该文件如下所示:

-rw-rw-r-- root     sdcard_rw    36860 2013-09-30 17:29 sqlite3

到目前为止:

  • chmod 777 sqlite3什么都不做
  • File.setExecutable()返回false(但File.exists()返回true)。

有更好的方法吗?

3 个答案:

答案 0 :(得分:16)

SD卡通常格式化为FAT32,并且装有所有无法执行的文件。 Nexus 4上的SD卡目录是模拟目录,但系统仍然会阻止其中的任何文件被标记为可执行文件。您需要将文件移到SD卡之外以将其标记为可执行文件。

答案 1 :(得分:2)

  

chmod 777 sqlite3什么都不做......

     

chmod + x不起作用......我得到“坏模式”。

“错误模式”来自a+x+x等。请记住,它的八进制。尝试:

chmod 0777 sqlite3

Yuichi可能是正确的 - /mnt/sdcard很可能与noexec挂起。

答案 2 :(得分:1)

我知道这是一个老问题。 但是我想通过在sdcard中创建磁盘.img文件然后将其挂载到/ data /

来建议另一个解决此问题的方法。

嗯,我知道这是多余的,但至少如果您的内部磁盘空间不足,它可以用作解决方法。

此处需要一些说明。

  1. adb shell到您的设备,
  2. 转到/sdcard(每个设备的设置点可能会有所不同)
  3. dd if=/dev/zero of=<your-new>.img bs=1M count=0 seek=2048。这将创建一个名为<your-new>.img的新图像文件,将搜索值更改为您想要的大小(例如2048 = 2GB)。如果dd不可用,请先尝试安装busybox,然后再从dd更改为busybox dd
  4. 格式<yout-new>.img,在我的情况下,我使用了ext2。例如。 mke2fs -F ubuntunew.img
  5. <your-new>.img挂载到/data。例如。 mount -o loop /sdcard/<your-new>.img /data/<your-mount-point>。如果mount命令不可用,请使用busybox
  6. 确定。这就是全部

    参考文献:

    https://forum.xda-developers.com/showthread.php?t=2743108 https://linuxonandroid.uservoice.com/knowledgebase/articles/74683-how-to-i-give-linux-more-space