
我有兩部安卓手機,一部已經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")
?