Android擷取ROOT許可權方法匯總

來源:互聯網
上載者:User
文章目錄
  • 一、使用SuperOneClick等軟體進行ROOT破解
  • 二、應用程式擷取ROOT許可權代碼
  • 三、補充

原文地址::http://www.metsky.com/archives/532.html

 

 

本文介紹Android系統上擷取TF/SD卡ROOT許可權方法,應用程式擷取Root許可權有個前提是該裝置已經破解(ROOT過,比如使用SuperOneClick軟體,參考地址:http://forum.xda-developers.com/showthread.php?t=803682),否則執行SU命令毫無效果,示範程式使用chmod方式修改某個裝置(TF卡分區)的存取權限,比如要按照物理扇區訪問讀寫TF卡或希望刪除某些重要檔案時,在Android系統上必須具備ROOT許可權才可以。

一、使用SuperOneClick等軟體進行ROOT破解

:http://forum.xda-developers.com/showthread.php?t=803682

用法參考:http://hi.baidu.com/cy594/blog/item/190e8794021c150bd31b7041.html

該ROOT破解軟體的原理就是利用Android系統的漏洞進行提權,最終目的開啟ROOT賬戶登入,且在下文執行SU命令時不被Android系統放鴿子(執行失敗)。如果您對ROOT結果及潛在風險知之甚少,請謹慎而為。

二、應用程式擷取ROOT許可權代碼

樣本擷取ROOT並修改mmcblk0分區許可權為777:

package com.android.myapp.utility;import java.io.DataOutputStream;import android.app.Activity;public class MyTestPri extends Activity{    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);    //* Create a TextView and set its content.        //* the text is retrieved by calling a native        //* function.        setContentView(R.layout.main);        String apkRoot="chmod 777 /dev/block/mmcblk0";//SD卡分區路徑,也可能是mmcblk1隨系統版本定,當前程式路徑請用getPackageCodePath();        RootCmd(apkRoot);    }    public boolean RootCmd(String cmd){        Process process = null;        DataOutputStream os = null;        try{            process = Runtime.getRuntime().exec("su");            os = new DataOutputStream(process.getOutputStream());            os.writeBytes(cmd+ "\n");            os.writeBytes("exit\n");            os.flush();            process.waitFor();        } catch (Exception e) {            return false;        } finally {            try {                if (os != null)   {                    os.close();                }                process.destroy();            } catch (Exception e) {            }        }        return true;    }}

以上程式第一次運行時,會彈出類似“XXX應用程式想要擷取root許可權”這樣提示的對話方塊。這時你只需確認許可即可,下次再次執行時,Android會自動授權該程式進行ROOT提權。

執行完成後,可以看到該裝置許可權已被修改為777,註:如果只是想按照扇區讀寫SD卡,修改為606就足夠了,或者再嘗試低一點的許可權。

另外,關於TF/SD卡的掛載點問題,好像有的版本會掛載到mmcblk0,有的會掛載到mmcblk1上,具體還是要判斷一下,有深入研究過的不妨留言補充。

三、補充

上文方法介紹首先需要SuperOneClick進行ROOT破解,這對很多非開發人員而言都會有難度,而且容易忽視潛在的風險,所以,我們還可以通過更好的方法進行解決,下文方法就是很好的例子:

http://my.unix-center.net/~Simon_fu/?p=951(Android應用程式擷取ROOT許可權)

該文章通過對Android的啟動服務修改(Init.rc)從而實現ROOT許可權提升,不過要實現該功能你得是個開發人員,懂得Android源碼修改和編譯才行。這個功能暫未測試,該文章似乎是只擷取了System許可權,但是ROOT許可權跟System許可權還是有差別的,比如直接讀寫DEV裝置類(比如上文的SD卡扇區讀寫)則必須ROOT許可權,只有System許可權是不行的。

天緣只是剛接觸到這裡但仍未測試,以後再試,有經驗的Android高手歡迎賜教。

參考資料:

http://www.cnblogs.com/ycmoon/archive/2011/05/11/2042999.html(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.