A raiz no Linux (ou em qualquer sistema semelhante ao Unix) é apenas o usuário com ID de usuário 0. O programa su (que na verdade significa "Alternar usuário", não "Superusuário") é apenas um programa para iniciar outro programa com um nome diferente. ID do usuário que o programa inicial (por padrão, para uid 0, que é a raiz do usuário). O Android não usa o / etc / passwd tradicional, mas ainda usa o ID do usuário e o ID do grupo do Linux para gerenciar permissões.
Se você deseja interceptar solicitações de su para solicitar senha ou aplicar outras regras, será necessário substituir / sbin / su por sua própria versão do su. A abordagem alternativa é a descrita aqui: http://www.koushikdutta.com/2008/11/fixing-su-security-hole-on-modified.html, embora isso exija que os aplicativos cooperem disparando um Intent quando quiserem mudar de utilizador.
A estrutura de segurança do Android é mais ou menos assim: cada aplicativo instalado é executado em seu próprio ID do usuário (selecionado no momento da instalação) e as permissões do aplicativo são implementadas como grupos de usuários.
Posso alterar a senha de root depois de fazer o root no meu dispositivo Android, simplesmente digitando "passwd"?
O Android não usa / etc / passwd, por isso também não possui passwd
programa.
Como está o processo de root? quero dizer, o que os aplicativos "um clique raiz" estão fazendo no meu telefone?
Eu não tenho certeza do processo exato, provavelmente você quer perguntar para os desenvolvedores. No entanto, meu palpite é que apenas reverte a verificação de segurança que originalmente impedia o desenvolvedor de setuid 0.
E sou desenvolvedor, então, como posso encontrar APIs ocultas (como iOS) para o desenvolvimento de aplicativos com raiz?
Como o Android é de código aberto, não existe uma API verdadeiramente oculta no Android. No entanto, existem algumas APIs não publicadas ou não documentadas. Você pode procurar por isso no código-fonte do Android . No entanto, essas APIs não são sobre desenvolvimentos raiz, geralmente são APIs em desenvolvimento que ainda não estão prontas ou localizadas demais para fins específicos que não são úteis para desenvolvedores públicos (ou talvez o Google ainda não tenha percebido sua utilidade) . Você não está impedido de usar essas APIs, mas, como não são APIs oficialmente suportadas, elas podem desaparecer ou quebrar a compatibilidade com versões anteriores no futuro. Se você precisar usar essas APIs, verifique se o aplicativo é interrompido normalmente.