Android的root學習

來源:互聯網
上載者:User

標籤:https   執行   data   idt   raw   bin   是什麼   chm   核心   

參考這篇文章:https://www.zhihu.com/question/21074979

Android的核心就是Linux,所以Android擷取root其實和Linux擷取root許可權是一回事兒。
你想在Linux下擷取root許可權的時候就是執行sudo或者su,接下來系統會提示你輸入root使用者的密碼,密碼正確就獲得root許可權了。Android本身就不想讓你獲得Root許可權,大部分手機出廠的時候根本就沒有su這個程式。所以你想獲得Android的root許可權,第一步就是要把編譯好的su檔案拷貝到Android手機的/system/bin或者/system/xbin/目錄下。我們先假設你可以把su放在xbin下,接下來你可以在Android手機的adb shell或者串口下輸入su了。
Linux下su以後輸入密碼就可以root了,但Android裡的su和Linux裡的su是不一樣的,Android裡的su不是靠驗證密碼的,而是看你原來的許可權是什麼。意思就是如果你是root,那你可以通過su切換到別的使用者,比如說shell,wifi,audio什麼的。但如果你是root之外的其他使用者,就不能切換回root了,會提示你permission denied。也就說用root運行su才有用,但我這個時候還沒有root怎麼辦呢?這就涉及到另外個問題。
一般我們在Linux的console下輸入 ls -l 會列出所有檔案的許可權。
比如:-rwxr-xr-x,用過Linux的人都知道r代表該檔案可讀,w代表可寫,x代表可執行,-就代表沒有該許可權。第一個rwx代表檔案所有者的許可權,第二個rwx代表和所有者同組人的許可權,第三個rwx代表其他使用者對該檔案的許可權。但下面這個檔案就比較特殊。

rws,它的執行許可權標誌位是一個s,s代表當任何一個使用者執行該檔案的時候都擁有檔案所有者的許可權,這檔案的所有者是root,簡單點說就是不管誰執行這個檔案,他執行的時候都是以root身份執行的。
也就說即使我不是root也有可能以root身份來執行程式,那麼我就把一個所有者是root的su程式許可權標誌位置成-rwsr-xr-x,那麼不管誰執行它,都是root身份執行,su就可以順利執行成功了,執行成功之後我就是root身份了。

問題都清楚了,就是你需要把一個所有者是root的su拷貝到Android手機上,並且把su的許可權標誌位置成-rwsr-xr-x。能把這個事情搞定你就成功root了一個手機。
大概意思就是兩行代碼
cp /data/tmp/su /system/bin/ #copy su 到/system/分區
chown root:root su #su的所有者置成root
chmod 4775 /system/bin/su #把su置成-rwsr-xr-x

 為什麼su一定要放到/system/bin/或者/system/xbin/
su不能放在data分區,原因是因為data分區在mount時就指定了不能給可執行程式加s位。在adb shell裡執行mount就可以看到:   

Android的root學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.