【Android 進階】臨時卸載root和恢復root功能

【前言】爲何有這個需求?html

Q:首先,談談爲啥想要root呢?linux

A:有root纔能有控制權,也才能折騰不少東西,好比:刪刪流氓軟件,用用代理、軟件自動安裝等;android

Q:而後,那麼爲什麼又須要刪除root呢?編程

A:有時候有些工具在已經root的機器上是不能執行的啦, 可是這些功能對咱們也有很大的吸引力,好比:手機打卡呀 等等牛逼的功能;若是你也想要使用這些功能,同時又想要偶爾root一下的話, 那麼恭喜你,能夠經過以下的方式來搞定;數組

 

一 準備篇

1.1 要已有root權限

至於如何獲取root,這是最基本的了,百度一下不少工具都有一鍵root的功能;此處略過一萬字;app

 

1.2 用到的終端工具

推薦使用Better Terminal Emulator Pro,免費又好用;工具

參考地址以下(百度手機助手搜索一下就好了):測試

 

 

1.3 必備的知識

1.3.1 關於mount

  默認啓動後的系統分區都是隻讀的,因此就算你的手機已經root了,經過終端操做的時候,看到的也是隻讀的,不能修改,那麼就須要從新掛載一次,主要是要掛載成可讀寫,核心腳本以下:ui

mount -o remount,rw /emmc@android /system

 

1.3.2 關於可執行權限

  簡單來講在linux角度一個程序的各類權限是經過權限位來設置的,核心思想是:讀權限值爲四、寫權限值爲二、執行權限值爲1,須要什麼樣的權限,那麼就設置合適的權限值就好了,好比你要可讀可寫可執行,那麼就是4+2+1=7;spa

  權限分組,linux一個文件權限分了3個部分,分別是: 擁有者的權限 擁有小組的權限 其餘人的權限, 三個部分依次用3個8進制的數組和起來,因此通常權限位設置的時候看起來像 77七、755 這樣子的,就是全部人可讀可寫可執行 和 擁有者可讀可寫可執行、擁有該文件的小組的全部人可讀可執行、其餘人可讀可執行;

  此處額外設置一下suid和guid,故整個權限位變成了 6755, 前面的6讓普通用戶執行su的時候感受是root在執行同樣;

chmod 6755 /system/xbin/su

詳細的能夠參考: http://blog.chinaunix.net/uid-26642180-id-3378119.html

也能夠搜索一下: suid guid 關鍵字

 

二 行動篇

2.1 查看分區狀況

打開超級終端,輸入mount命令,查看當前是哪一個分區掛載到了 /system這個目錄,個人系統是掛載了 /emmc@android 到 /system下,參考下圖:

如需使用,請輸入mount查看您的磁盤分區路徑;

2.2 查看需找su路徑

通常su所在路徑是:

/system/xbin/su
/system/bin/su

後續假設都在通用的 /system/xbin/su 路徑下;

2.3 準備寫腳本

2.3.1 備份原來的su程序broot.sh

#!/system/bin/sh
/system/xbin/su -c "mount -o remount,rw /emmc@android /system"
/system/xbin/su -c "cp /system/xbin/su /system/su"
/system/xbin/su -c "mount -o remount,ro /emmc@android /system"

這個腳本通常執行一次就能夠了,也能夠經過Root Explorer來實現備份!

 

2.3.2 獲取root的程序groot.sh

#!/system/bin/sh
/system/su -c "mount -o remount,rw /emmc@android /system"
/system/su -c "cp /system/su /system/xbin/su"
/system/su -c "chmod 6755 /system/xbin/su"
/system/su -c "mount -o remount,ro /emmc@android /system"

實現原理是,利用上面備份好的su,來執行如下幾步:

  • 從新掛載system分區爲可讀可寫;
  • 拷貝備份的su到xbin目錄下
  • 設置合適的權限;
  • 從新掛載分區爲只讀模式;

 

2.3.3 刪除root的程序droot.sh

特別注意,必須先參考2.3.1的腳本備份su到/system/su目錄下,而後才能執行這個程序,否則沒了root後果自負哦;

#!/system/bin/sh
/system/su -c "mount -o remount,rw /emmc@android /system"
/system/su -c "mv /system/xbin/su /system/xbin/su.bak"
/system/su -c "mount -o remount,ro /emmc@android /system"

實現原理是,利用上面備份好的su,來執行如下幾步:

  • 從新掛載system分區爲可讀可寫;
  • 將xbin下的su重命名爲su.bak;
  • 從新掛載分區爲只讀模式;

 

三 不勞而獲

3.1 下載工具

基本腳本都寫好了,到這裏來下載吧 :)

http://yunpan.cn/cfwmQui82UXZt (提取碼:c7a3)

 

3.2 執行實例

執行步驟詳解以下:

sh broot.sh # 備份su

ls -al /system/su # 檢查備份結果

sh droot.sh # 刪除su,移除root權限,特別要當心!!!保證前面備份成功啊!!!

su # 檢查是否成功移除,出現not found表示移除成功了;

su groot.sh # 恢復su,恢復了root權限,恭喜 :)

su # 檢查是否恢復成功,執行不報錯,前面提示符編程 '#'表示成功;

exit # 退出root模式

有圖有真相!!!

 

【測試機型】 紅米Note聯通版, HM NOTE 1W;

歡迎你們交流 :)

相關文章
相關標籤/搜索