我有两部安卓手机,一部已经root,另一部没有。当我在两部手机上运行以下代码而不请求 root 权限时,
system("echo \"abc\" > /data/a.txt\n");
root 后的手机返回错误 2 (512);普通电话返回错误1(256,权限被拒绝)。所以我的问题是,是什么造成了这种差异。
答案1
至少在我的桌面Linux系统上,errno 2是ENOENT
,即没有这样的文件或目录。您可以使用命令找到errno
答案(尽管您的手机上可能没有该命令)。
这可能意味着您的手机上没有 /data(这很奇怪)。当我在 shell 中尝试(不是在 C 程序中,正如您所做的那样)时,我的 root 手机(Galaxy Nexus,运行股票 Jelly Jean 4.2.2)给出了权限被拒绝
我建议ls -ld /data
开始,也许也which echo
看看那里是否有什么不同。或者你可能没有 shell;有效吗system("true")
?