當前位置:編程學習大全網 - 源碼下載 - Android,SuperSU的system-less root mode是什麽原理

Android,SuperSU的system-less root mode是什麽原理

其實最關鍵的是把壹個叫su的binary放到/system/xbin下,因為app希望做需要root權限的操作時代碼壹般是"su -c xxxcmd"。這個su肯定壹開始是沒有的,所以問題其實是怎麽把su放過去。直接copy過去到system分區會失敗,因為system分區是只讀的,所以要放過去東西就要remount成可寫,但是remount操作必須是root權限才能做,於是好像形成了死循環。

破掉的辦法是先通過漏洞把某個進程提權到root,然後root權限的進程fork壹個出來做remount之類的事或者啟動壹個腳本做類似的事情。比如有些linux kernel或者驅動存在UAF或者overflow的洞,壹鍵root等軟件利用這些漏洞讓自己的代碼運行在內核態,然後把這個進程的uid gid等等改成0(這些存在內核態,用戶態沒法直接改),那這個進程的權限就被提到root了。

或者是直接刷個zip包,這個zip包括boot分區,system分區的內容,然後可以把su直接放在system分區文件夾裏再打包刷機即可,不過有的手機有檢驗簽名,那打了包刷機的時候刷不上去。那就可以先換個recovery再刷zip。

錘子T1可以用這種類似的思路解決v2.0系統root

1.降到1.4版本,用kingroot利用漏洞得到root權限,system分區放上su

2.dd if=newrec.img of=recblock換掉recovery

3.刷機升級

4.選recovery裏的getroot,recovery會把su等放到system分區

5.重啟

6.dd if=recbackup.img of=recblock恢復recovery

  • 上一篇:csdn與ibm的關系是什麽?
  • 下一篇:請問源代碼和源程序有什麽區別?
  • copyright 2024編程學習大全網