`
iaiai
  • 浏览: 2204637 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 编写使用root权限的android应用程序

 
阅读更多
package com.iaiai;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

/**
 * 
 * <p>
 * Title: MainActivity.java
 * </p>
 * <p>
 * E-Mail: 176291935@qq.com
 * </p>
 * <p>
 * QQ: 176291935
 * </p>
 * <p>
 * Http: iaiai.iteye.com
 * </p>
 * <p>
 * Create time: 2011-10-11
 * </p>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class MainActivity extends Activity {

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		runRootCommand("ls");
	}

	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();

			BufferedReader br = new BufferedReader(new InputStreamReader(
					process.getInputStream()));
			// BufferedReader br = new BufferedReader(new InputStreamReader(
			// process.getErrorStream())); //如果出错用这个输出一下看结果,一定要获取root权限才可以执行
			String line = null;
			while ((line = br.readLine()) != null) {
				Log.d("*********", line);
			}
			try {
				br.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		} catch (Exception e) {
			Log.d("*********",
					"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;
	}

}
分享到:
评论

相关推荐

    android应用获得执行root权限动作__socket_service

    标题"android应用获得执行root权限动作__socket_service"表明我们要讨论如何在Android应用中通过Socket服务来实现root权限的获取。这种方式通常涉及到创建一个在系统层面运行的服务,该服务具有root权限,并通过...

    Android例子源码root后静默安装卸载应用

    1. **获取root权限**:首先,你的应用程序或服务需要获得设备的root权限。root权限允许访问系统级别的文件和功能,包括控制其他应用的安装和卸载。 2. **使用adb工具**:在开发环境中,可以使用Android Debug ...

    Android 截图程序实现 需要root权限

    在Android系统中,截图是日常操作之一,但有些高级功能,比如全局截屏或自定义截屏区域,可能需要root权限才能实现。本教程将深入探讨如何在Android设备上创建一个需要root权限的截图程序,这涉及到Android系统级别...

    Android设备上非root的抓包实现方法(Tcpdump方法)

    由于Android系统的安全机制,大多数应用程序没有root权限,因此不能直接使用tcpdump工具进行抓包。然而,通过一些特殊的技术手段,我们可以在非root的Android设备上实现抓包功能。 首先,理解tcpdump的运行需求。...

    Android应用获取系统权限,修改系统时间

    系统权限则更为特殊,它们涉及到更核心的操作,例如读取或修改系统设置,只有系统应用或已获取root权限的程序才能使用。 在Android中,修改系统时间需要`SYSTEM_TIME`权限,这是一个系统级别的权限。在正常的开发...

    Android获取ROOT权限的实例代码

    在Android应用程序中检查和获取ROOT权限主要涉及以下几个步骤: 1. **检测已有的ROOT权限**: 为了确定设备是否已经具备ROOT权限,可以编写一个简单的函数,如`is_root()`。这个函数通过检查是否存在 `/system/bin...

    Android批量静默安装程序,无权限提示框

    每个应用程序都有自己的运行环境,称为沙箱,这限制了应用之间的相互影响。当安装APK时,系统会检查应用所需的权限,并在安装过程中显示给用户,让用户决定是否接受。 2. **静默安装原理**: 静默安装主要通过绕过...

    安卓安装卸载相关-Android程序无需Root可以安装APK.rar

    在Android系统中,安装和卸载应用程序是用户日常操作的一部分。传统的APK安装通常需要设备具有管理员权限,也就是我们常说的Root权限。然而,有些情况下,用户可能希望在不Root设备的情况下安装APK,这在Android开发...

    AnLinux,在Android上免root安装完整Linux环境 - 知乎.pdf

    AnLinux是一款允许用户在Android设备上免Root安装完整Linux环境的应用程序。它为用户提供了在移动设备上运行Linux发行版的能力,而无需对设备进行Root权限获取。 #### 二、AnLinux的特点 1. **免Root安装**:...

    Android无需Root静默安装apk

    在本文中,我们将探讨如何在不获取Android设备Root权限的情况下实现静默安装APK。 静默安装APK的方法主要分为两种:通过Adb(Android Debug Bridge)和通过自定义服务。Adb是Android开发工具包中的一个重要组成部分...

    Android 设置/system/bin/cmd的权限遇到的问题

    4. **使用替代方法**:如果只是想执行特定命令,可以寻找其他不需要root权限的替代方案,如使用Adb或通过Android Debug Bridge执行命令。 总的来说,直接修改`/system/bin/cmd`的权限并不是一个推荐的做法,因为它...

    Android 实现静默安装并自动重启(需要root)

    在Android系统中,静默...总之,静默安装与自动重启在Android设备上需要root权限支持,并涉及shell脚本编写、包管理器操作以及可能的设备重启控制。虽然这能带来一定的便利性,但务必谨慎处理,遵循安全和合规的原则。

    android RS232串口读写程序

    - Android设备通常需要root权限才能直接访问串口,对于非root设备,可能需要依赖特定的USB转串口驱动或串口服务器。 - 波特率、数据位、奇偶校验、停止位等参数需要正确设置以匹配通信设备。 - 考虑到线程同步,...

    安卓截图截屏相关-关于android全屏截图无需root无状态栏.rar

    本资源“安卓截图截屏相关-关于android全屏截图无需root无状态栏.rar”提供了一种方法,允许用户在不获取设备root权限的情况下实现全屏截图,并且能够隐藏状态栏,从而得到更加纯净的屏幕快照。 首先,让我们了解...

    android动态修改设备节点demo

    在编写这类代码时,应遵循最佳实践,如使用异步任务防止UI冻结,并确保在不需要root权限时及时释放。 8. **系统签名和权限**: 对于系统应用或者需要修改系统级别的权限,还需要考虑系统签名和权限问题。Android...

    Android-Termux是Android终端应用程序和Linux环境

    3. **无需root权限**:Termux的一大优点是它不需要设备具有root权限即可运行,这意味着大多数Android设备都可以使用它。 4. **自定义环境**:用户可以通过配置`.bashrc`或`.zshrc`等文件来定制自己的Shell环境,...

    C++版Android实时投屏软件系统源码,安卓手机投屏软件源码,无需root权限.zip

    Qt是Qt Company开发的一个跨平台的C++图形用户界面应用程序开发框架。它包含了丰富的库,支持多种操作系统,如Windows、Linux、macOS等,并且提供了大量的API用于构建图形用户界面和处理底层系统交互。在这个项目中...

    android静默卸载data/app下的应用程序

    通过学习和理解这个Demo,开发者可以自行编写静默卸载的应用程序或脚本,但需要注意的是,这种操作可能会破坏应用数据,且不被Google官方推荐,因为它可能涉及用户隐私和安全问题。 总的来说,静默卸载是一项需要...

    Android底层记录用户输入, 并模拟

    Android系统基于Linux内核,分为应用程序层、应用程序框架层、系统库和服务层以及Linux内核层。在讨论底层记录用户输入时,我们主要关注的是Linux内核层和系统库层,因为这两层处理硬件交互和输入事件。 2. **...

    Java_一个简单的应用程序,使用Xposed无需root解锁引导加载程序或修改系统映像等.zip

    本项目主要介绍如何利用Java编写一个简单的应用程序,结合Xposed框架,在不需root权限的情况下解锁引导加载程序或修改系统行为。这种方式为开发者提供了便利,避免了对设备进行深度修改的风险。 Xposed是一个强大的...

Global site tag (gtag.js) - Google Analytics