AndroidアプリケーションがROOT権限を取得する方法

2275 ワード


最近Androidを勉强する时に小さいプログラムを书いて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 + "
"); os.writeBytes("exit
"); 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メソッドにおいて:
 
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権限を取得しました」がポップアップされます.