Android應用程式擷取ROOT許可權的方法 (基礎篇)

來源:互聯網
上載者:User

要在android應用程式中使用root許可權,那麼運行程式的裝置必須具有root許可權

  public static boolean runRootCommand(String command) {  Process process = null;  DataOutputStream os = null;  try {  process = Runtime.getRuntime().exec("su");  os = new DataOutputStream(process.getOutputStream());  os.writeBytes(command+"\n");  os.writeBytes("exit\n");  os.flush();  process.waitFor();  } catch (Exception e) {  Log.d(TAG, "the device is not rooted, error message: " + e.getMessage());  return false;  } finally {  try {  if (os != null) {  os.close();  }  if(process != null) {  process.destroy();  }  } catch (Exception e) {  e.printStackTrace();  }  }  return true;  }

如果裝置擷取了root許可權,那麼程式執行su命令時,就會提示使用者進行授權,

 

 

寫個小程式需要用到擷取ROOT許可權,在網上找了好久,發現這種方法可行,前提時裝置必須已經破解過!能執行su命令
一、建一個方法:代碼如下:

package cn.ycmoon.utility;import java.io.DataOutputStream;import android.app.Activity;import android.util.Log;public class SystemManager extends Activity{    /**     * 應用程式運行命令擷取 Root許可權,裝置必須已破解(獲得ROOT許可權)     * @param command 命令:String apkRoot="chmod 777 "+getPackageCodePath(); RootCommand(apkRoot);     * @return 應用程式是/否擷取Root許可權     */    public static boolean RootCommand(String command)    {        Process process = null;        DataOutputStream os = null;        try        {            process = Runtime.getRuntime().exec("su");            os = new DataOutputStream(process.getOutputStream());            os.writeBytes(command + "\n");            os.writeBytes("exit\n");            os.flush();            process.waitFor();        } catch (Exception e)        {            Log.d("*** DEBUG ***", "ROOT REE" + e.getMessage());            return false;        } finally        {            try            {                if (os != null)                {                    os.close();                }                process.destroy();            } catch (Exception e)            {            }        }        Log.d("*** DEBUG ***", "Root SUC ");        return true;    }}

二、在應用程式的MainActivity方法中:二、在應用程式的MainActivity方法中:

 

public class MainActivity extends Activity{    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        String apkRoot="chmod 777 "+getPackageCodePath();        SystemManager.RootCommand(apkRoot);    }}

 

這樣,在應用程式啟動並執行時候,會彈出訊息對話方塊“應用程式已擷取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.