要在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. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android(安卓)获取路径目录方法
  3. 13-4-1 Android中list和Adapter的使用
  4. Android(安卓)获取设备各种信息以及其它
  5. Android(安卓)SDK Manager无法获取其他版本的问题
  6. Android去掉自动获取焦点
  7. android 地图 MapView API Key 获取
  8. Android(安卓)根据坐标获取地址
  9. Android(安卓)8.1 (O) Launcher3 方面修改

随机推荐

  1. 学个明白--Android世界的坐标系
  2. Android调用WebService系列之KSoap2对象
  3. Android(安卓)多线程-----AsyncTask详解
  4. android studio 使用adb 命令传递文件到a
  5. Android中shape的使用
  6. 谷歌升级手机Android商城 趋向社交网络应
  7. 图解 Android(安卓)Handler 线程消息机制
  8. Android:Google的阳谋和Apache Harmony
  9. Android(安卓)Broadcast 用法简单讨论
  10. Android开发资料推荐之Google Android开