root sous Linux (ou n’importe quel système de type Unix) n’est que l’utilisateur dont l’ID utilisateur est 0. Le programme su (qui signifie en réalité "Switch User" et non "Super User") n’est qu’un programme permettant de démarrer un autre programme avec un autre ID utilisateur que le programme de démarrage (par défaut, uid 0, qui correspond à l'utilisateur root). Android n'utilise pas le traditionnel / etc / passwd, mais utilise toujours l'ID utilisateur Linux et l'ID groupe pour la gestion des autorisations.
Si vous souhaitez intercepter les requêtes su afin de pouvoir demander un mot de passe ou appliquer d'autres règles, vous devrez remplacer / sbin / su par votre propre version de su. L’approche alternative est celle décrite ici: http://www.koushikdutta.com/2008/11/fixing-su-security-hole-on-modified.html mais il faudra pour cela que les applications coopèrent en déclenchant une intention quand elles le souhaitent. changer d'utilisateur.
L'infrastructure de sécurité Android ressemble plus ou moins à ceci: chaque application installée s'exécute sous son propre ID utilisateur (sélectionné au moment de l'installation) et les autorisations de l'application sont implémentées en tant que groupes d'utilisateurs.
Puis-je changer le mot de passe root après avoir rooté mon appareil Android en tapant simplement "passwd"?
Android n'utilise pas / etc / passwd, il n'a donc pas de passwd
programme.
Comment fonctionne le processus d'enracinement? Je veux dire que font les applications "root en un clic" sur mon téléphone?
Je ne suis pas sûr du processus exact moi-même, vous voudrez probablement demander aux développeurs rooter. Cependant, je suppose que cela annule simplement le contrôle de sécurité qui empêche initialement le développeur de définir la valeur 0.
Et en tant que développeur, comment puis-je trouver des API cachées (comme iOS) pour le développement d'applications enracinées?
Depuis qu'Android est open source, il n'y a pas d'API vraiment cachée dans Android. Cependant, il existe certaines API non publiées ou non documentées, vous pouvez les rechercher dans le code source d'Android . Cependant, ces API ne concernent pas les développements racine, mais des API en cours de développement qui ne sont pas encore prêtes ou qui sont trop localisées pour un objectif spécifique, ce qui n'est pas utile pour les développeurs publics (ou peut-être que Google n'a tout simplement pas compris leur utilité). . Vous n'êtes pas limité à l'utilisation de ces API, mais comme elles ne sont pas officiellement prises en charge, elles risquent de disparaître ou de supprimer les compatibilités antérieures. Si vous devez utiliser ces API, assurez-vous que votre application fonctionne correctement.