要在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屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  3. 关于Android(安卓)Studio3.2新建项目Android(安卓)resource link
  4. Android(安卓)- Manifest 文件 详解
  5. Android之应用程序基础
  6. android 获取唯一标识
  7. android拍照与读取相册
  8. Android四大组件的理解
  9. Android(安卓)给 app默认权限(不弹窗申请权限)

随机推荐

  1. 新手如何有效学习linux?
  2. 孟德尔自由组合定理--计算机模拟
  3. 安装Kali linux
  4. 短信营销推广如何降低成本?
  5. Linux系统rsync实战操作
  6. LAMP架构应用实战—Apache服务介绍与安装
  7. box-sizing和定位
  8. 此卷不包含可识别的文件系统咋解决?
  9. docker 安装脚本
  10. 2021年最全C/C++免费开发工具和教程(全部