要在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权限”

 

 

 

更多相关文章

  1. 程序中如何获取Android的Root权限
  2. Android模仿乐淘的应用程序分析源码
  3. android应用程序组件之间的通讯
  4. android 学习五 设置应用程序全屏(没有状态栏和标题栏)
  5. Android应用程序组件Content Provider在应用程序之间共享数据的
  6. Android的权限分类

随机推荐

  1. Android(安卓)Studio将module打包成.jar
  2. 迅速理解Android事件传递
  3. 手把手教您-将Gallery导入eclipse
  4. android 在应用中安装其他程序
  5. iPhone与Android自绘自定义控件比较
  6. android 屏幕切换
  7. 在android工程中导入layoutlib.jar
  8. delphixe10 android操作 打电话,摄像头,定
  9. Android中判断状态栏是否存在
  10. Android(安卓)Weekly Notes Issue #251