Android - 通常のデバイスとルート化されたデバイスの権限の違いは何ですか

Android - 通常のデバイスとルート化されたデバイスの権限の違いは何ですか

私は2台のAndroid携帯を持っていて、1台はルート化されており、もう1台はルート化されていません。2台の携帯でルート権限を求めずに次のコードを実行すると、

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")動作しますか?

関連情報