Ou como faço para fazer root no meu dispositivo sem um rooter?
As instruções de root para dispositivos Android que eu já vi são geralmente da seguinte forma:
- Baixar
Gingerbreak.apk
- Execute o Gingerbreak, clique em "dispositivo raiz"
- Observe que
Superuser.apk
foi instalado magicamente, possivelmente junto combusybox
outras coisas, e desfrute da sua bondade.
O que eu quero saber é o seguinte: como o enraizamento realmente acontece? O que o Gingerbreak faz?
Entendo o resultado final do enraizamento:
su
está presente e trabalhandoSuperuser.apk
está instalado e controla o acesso asu
- Vários utilitários estão presentes, fornecidos pelo BusyBox (opcional?)
Também acho que entendo a idéia básica de como o Gingerbreak é iniciado - explora algumas vulnerabilidades de escalação de privilégios locais e usa seus novos poderes para implantar o Superusuário e tudo o mais necessário.
Portanto, a menos que eu esteja errado em alguns dos entendimentos expostos acima, o principal que quero saber é o que o instalador raiz faz para implantar e ativar o Superusuário. Parece que apenas colocar Superuser.apk
no lugar certo não seria suficiente - como é permitido o acesso root permitido? Como ele é conectado a moderar esse acesso para outros aplicativos?
O que o Gingerbreak faz após a exploração para habilitar e proteger o acesso root?
Respostas:
O que o APK e a exploração fazem (geralmente) é o seguinte:
Como exemplo, esta página detalha como o grupo contra exploração de gaiolas tenta obter privilégios elevados.
fonte
Depois de muita pesquisa, finalmente descobri. Eu estava errado sobre onde está a mágica - ela não está no script do instalador; tudo o que precisa fazer é colocar os binários
su
eSuperuser.apk
no lugar certo e definir suas permissões. Portanto, é realmente tão simples quanto soltar arquivos no local e definir permissões. Sem fiação mágica.A mágica acontece no
su
binário (veja a fonte e também esta pergunta ). Eu estava (incorretamente) pensando que issosu
era um padrãosu
, e que as coisas estavam de alguma forma conectadas para moderar o acesso ao binárioSuperuser.apk
.Errado. O que realmente acontece é muito mais simples: o Superusuário fornece uma implementação personalizada
su
que autentica o acesso através do Superusuário e de seu banco de dados de aplicativos autorizado.Portanto, o processo de torcer é tão simples quanto o @Sparx disse. O software implantado contém a mágica.
fonte
su
própria não é mágica, a única mágica é que o sistema operacional a trata especialmente. Tudo o que precisa fazer é retornar "OK" ou "Não OK" quando solicitado pelo sistema operacional para permitir que um aplicativo específico eleve permissões. Se estiver faltando ou sempre retornar "Não está OK", os aplicativos normais nunca conseguirão fazer o root. Portanto, o enraizamento é basicamente o processo de colocar umsu
binário que às vezes pode retornar "OK", no local protegido em um sistema que não deve permitir que isso seja feito.all that has to do is put the su and Superuser.apk binaries in the right place and set their permissions
como se isso fosse fácil sem uma exploração, a exploração é a mágica.