私は2つのAndroid携帯電話を持っていますが、1つはルート化され、もう1つはルート化されませんでした。ルート権限を要求せずに両方の電話機で次のコードを実行すると、
system("echo \"abc\" > /data/a.txt\n");
ルーティングされた電話機はエラー2(512)を返し、通常の電話機はエラー1(256、許可されていません)を返します。だから私の質問は、これらの違いの原因は何ですか?
答え1
少なくとも私のデスクトップLinuxシステムではerrno 2があり、そのファイルENOENT
やディレクトリはありません。コマンドを使用して確認できますerrno
(携帯電話では使用できない可能性があります)。
これはおそらく携帯電話に/ dataがないことを意味します(異常ですね)。私のルーティングされた携帯電話(Galaxy Nexus、在庫Jelly Jean 4.2.2を実行)でシェル(Cプログラムではなく)で試してみると、権限が拒否されます。
私はls -ld /data
始めて、which echo
そこに何か他のものがあることを確認することをお勧めします。または、シェルがない可能性があります。動作しますかsystem("true")
?