最近學習Android的時候寫個小程式需要用到擷取ROOT許可權,在網上找了好久,發現這種方法可行,前提時裝置必須已經破解過!能執行su命令。
一、建一個方法:代碼如下:
View Code
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方法中:
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許可權”