由於Android底層是Linux內核,故了解了Linux的權限管理后就可以知道ROOT的原理,具體可以訪問《Android系統權限和root權限》一文,而一般的Androd下的su命令只支持在ROOT用戶和SHELL用戶下才有權限讓程序以root用戶身份運行,其實看完Android源碼下的system/extras/su/su.c代碼即可清楚,而我們繞過了其中的當前運行用戶判斷來讓所有的用戶都可以將以自己身份運行的程序嘗試去設置以root用戶身份運行,即運行su命令不需判斷運行程序的當前用戶的uid,直接可以設置相應的uid和gid,而我們所做的只是修改su.c文件,把如下代碼屏蔽即可。
myuid = getuid();
if (myuid != AID_ROOT && myuid != AID_SHELL) {
fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
return 1;
}
轉載自:http://www.61ic.com/Mobile/Android/201207/43661.html