Android: ¿cuál es la diferencia de permisos en dispositivos normales y rooteados?

Android: ¿cuál es la diferencia de permisos en dispositivos normales y rooteados?

Tengo dos teléfonos Android, uno rooteado y el otro no. Cuando ejecuto el siguiente código sin pedir permiso de root en los dos teléfonos,

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

el teléfono rooteado me devuelve el error-2 (512); el teléfono normal devuelve el error 1 (256, permiso denegado). Entonces mi pregunta es, ¿qué hace esta diferencia?

Respuesta1

Al menos en mi sistema Linux de escritorio, el error 2 es ENOENT, es decir, no existe tal archivo o directorio. Puedes averiguarlo con el errnocomando (aunque probablemente no lo tengas en el teléfono).

Eso podría significar que no tienes /data en ese teléfono (lo cual sería extraño). Mi teléfono rooteado (Galaxy Nexus, que ejecuta Jelly Jean 4.2.2) da permiso denegado cuando lo intento en un shell (no en un programa C, como parece que estás haciendo)

Sugiero ls -ld /datacomenzar y tal vez también which echover si hay algo diferente allí. O posiblemente no tengas un caparazón; ¿ system("true")funciona?

información relacionada