root in Linux (o qualsiasi sistema simile a Unix) è solo l'utente con User ID 0. Il programma su (che in realtà sta per "Switch User", non "Super User") è solo un programma per avviare un altro programma con un diverso ID utente rispetto al programma di avvio (per impostazione predefinita su uid 0, ovvero l'utente root). Android non utilizza il tradizionale / etc / passwd, tuttavia utilizza ancora l'ID utente Linux e l'ID gruppo per la gestione delle autorizzazioni.
Se si desidera intercettare le richieste su in modo da poter richiedere la password o applicare altre regole, sarà necessario sostituire / sbin / su con la propria versione di su. Un approccio alternativo è quello descritto qui: http://www.koushikdutta.com/2008/11/fixing-su-security-hole-on-modified.html sebbene ciò richiederà che le applicazioni cooperino sparando un Intento quando vogliono cambia utente.
Il framework di sicurezza Android è più o meno così: ogni applicazione installata viene eseguita sul proprio ID utente (selezionato al momento dell'installazione) e le autorizzazioni dell'applicazione vengono implementate come gruppi di utenti.
Posso cambiare la password di root dopo aver effettuato il root del mio dispositivo Android semplicemente digitando "passwd"?
Android non usa / etc / passwd, quindi non ha passwd
programma.
come funziona il processo di rooting? intendo cosa stanno facendo le app "one click root" sul mio telefono?
Non sono proprio sicuro dell'esatto processo, probabilmente vorrai chiedere agli sviluppatori di root. Tuttavia, la mia ipotesi è che ripristini solo il controllo di sicurezza che originariamente impedisce allo sviluppatore di impostare 0.
E sono uno sviluppatore, quindi come posso trovare API nascoste (come iOS) per lo sviluppo di app con root?
Poiché Android è open source, non esiste un'API veramente nascosta in Android. Tuttavia, ci sono alcune API non pubblicizzate o non documentate, puoi cercarlo nel codice sorgente di Android . Tuttavia, queste API non riguardano gli sviluppi di root, di solito sono API in sviluppo che non sono ancora pronte o sono troppo localizzate per scopi specifici che non sono utili per gli sviluppatori pubblici (o forse Google non ha ancora realizzato la loro utilità) . Non ti è proibito utilizzare queste API, ma poiché queste non sono API supportate ufficialmente, potrebbero scomparire o rompersi in futuro. Se devi utilizzare queste API, assicurati che la tua app si interrompa correttamente.