18

我正在尝试在我的根 Nexus 4 上运行 sqlite3。我已经将可执行文件推送到 /sdcard 但我无法执行它。我正在运行基于 SuperSU 1.45 的 Android 4.3。

该文件如下所示:

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

至今:

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

有一个更好的方法吗?

4

3 回答 3

19

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

于 2013-10-01T01:08:42.630 回答
3

chmod 777 sqlite3 什么都不做...

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

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

chmod 0777 sqlite3

而勇一大概是对的——/mnt/sdcard很可能是装着noexec

于 2014-08-14T03:48:43.540 回答
2

我知道这是一个老问题。.img但我想通过在 sdcard 中创建磁盘文件然后将其挂载到 /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. Format <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.

行。就这样

参考:

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

于 2018-05-23T06:43:36.093 回答