Android - qual é a diferença de permissão em dispositivos normais e enraizados?

0

Eu tenho dois telefones android, um enraizado o 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 root retorna-me error-2 (512); o telefone normal retorna o erro-1 (256, permissão negada). Então, minha pergunta é: o que faz essa diferença?

    
por brewphone 12.04.2013 / 22:05

1 resposta

1

Pelo menos no meu sistema Linux de desktop, o errno 2 é ENOENT , ou seja, nenhum desses arquivos ou diretórios. Você pode descobrir com o comando errno (embora você provavelmente não tenha isso no telefone).

Isso pode significar que você não tem um / data nesse telefone (o que seria estranho). Meu telefone com root (Galaxy Nexus, jelly Jean 4.2.2) deixa a permissão negada quando tento isso em um shell (não em um programa C, como você parece estar fazendo)

Sugiro ls -ld /data para começar e talvez também which echo para ver se algo é diferente lá. Ou possivelmente você não tem uma concha; o system("true") funciona?

    
por 12.04.2013 / 23:03

Tags