Android - qual é a diferença de permissão em dispositivos normais e com acesso root

Android - qual é a diferença de permissão em dispositivos normais e com acesso root

Eu tenho dois telefones Android, um com root e outro não. Quando executo o código a seguir sem pedir permissão de root nos dois telefones,

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

o telefone enraizado me retorna erro-2 (512); o telefone normal retorna o erro-1 (256, permissão negada). Então minha pergunta é: o que faz essa diferença.

Responder1

Pelo menos no meu sistema desktop Linux, errno 2 é ENOENT, ou seja, não existe tal arquivo ou diretório. Você pode descobrir com o errnocomando (embora provavelmente não o tenha no telefone).

Isso pode significar que você não tem /data nesse telefone (o que seria estranho). Meu telefone enraizado (Galaxy Nexus, executando o Jelly Jean 4.2.2) dá permissão negada quando tento fazer isso em um shell (não em um programa C, como você parece estar fazendo)

Sugiro ls -ld /datacomeçar, e talvez também which echover se algo está diferente aí. Ou possivelmente você não tem uma concha; funciona system("true")?

informação relacionada