Android - was ist der Berechtigungsunterschied zwischen normalen und gerooteten Geräten

Android - was ist der Berechtigungsunterschied zwischen normalen und gerooteten Geräten

Ich habe zwei Android-Telefone, eines gerootet, das andere nicht. Wenn ich den folgenden Code ausführe, ohne auf beiden Telefonen nach Root-Berechtigungen zu fragen,

system("echo \"abc\" > /data/a.txt\n");

Das gerootete Telefon gibt mir Fehler 2 (512) zurück; das normale Telefon gibt Fehler 1 (256, Zugriff verweigert) zurück. Meine Frage ist also, was diesen Unterschied ausmacht.

Antwort1

Zumindest auf meinem Linux-Desktopsystem lautet errno 2 ENOENT, d. h., keine solche Datei oder kein solches Verzeichnis. Sie können das mit dem Befehl herausfinden errno(obwohl Sie diesen wahrscheinlich nicht auf dem Telefon haben).

Das könnte bedeuten, dass Sie auf diesem Telefon kein /data haben (was seltsam wäre). Mein gerootetes Telefon (Galaxy Nexus, mit Jelly Jean 4.2.2) verweigert die Berechtigung, wenn ich das in einer Shell versuche (nicht in einem C-Programm, wie Sie es anscheinend tun).

Ich schlage vor ls -ld /data, damit anzufangen und vielleicht auch which echozu sehen, ob da etwas anders ist. Oder vielleicht hast du keine Shell; funktioniert system("true")das?

verwandte Informationen