-
android怎样在代码里判断系统是否root?在不弹出授权提示前提下5
如题 怎样在不弹出授权提示的前提下获知系统是否root
我在网上找了很多都是执行需要root权限的动作然后根据结果来判断 但是这样的话就会弹出授权的提示 如果用户拒绝授权的话那么判断出来的还是系统没有root
所以我想在不弹出授权提示的前提下用什么方法或者通过检测什么东西来判断手机系统是否被root2012年6月08日 11:22
2个答案 按时间排序 按投票排序
-
简单点的,root过的机器必定会安装superuser这个软件,判断这个软件是否安装可以大概了解该机器是否已root。该方法的问题是,没有root也可以装superuser这个软件,不过这么无聊的人不多吧。
2012年7月20日 15:13
-
public static boolean hasRootAccess(Context ctx)
{
final StringBuilder res = new StringBuilder();
try
{
if (runScriptAsRoot(ctx, "exit 0", res) == 0)
return true;
} catch (Exception e) {
}
return false;
}
public static int runScriptAsRoot(Context ctx, String script, StringBuilder res)
{
final File file = new File(ctx.getCacheDir(), "secopt.sh");
final ScriptRunner runner = new ScriptRunner(file, script, res);
runner.start();
try
{
runner.join(40000);
if (runner.isAlive())
{
runner.interrupt();
runner.join(150);
runner.destroy();
runner.join(50);
}
} catch (InterruptedException ex)
{
}
return runner.exitcode;
}
private static final class ScriptRunner extends Thread
{
private final File file;
private final String script;
private final StringBuilder res;
public int exitcode = -1;
private Process exec;
public ScriptRunner(File file, String script, StringBuilder res)
{
this.file = file;
this.script = script;
this.res = res;
}
@Override
public void run()
{
try
{
file.createNewFile();
final String abspath = file.getAbsolutePath();
Runtime.getRuntime().exec("chmod 777 " + abspath).waitFor();
final OutputStreamWriter out = new OutputStreamWriter(
new FileOutputStream(file));
if (new File("/system/bin/sh").exists())
{
out.write("#!/system/bin/sh\n");
}
out.write(script);
if (!script.endsWith("\n"))
out.write("\n");
out.write("exit\n");
out.flush();
out.close();
exec = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(exec.getOutputStream());
os.writeBytes(abspath);
os.flush();
os.close();
InputStreamReader r = new InputStreamReader(exec.getInputStream());
final char buf[] = new char[1024];
int read = 0;
while ((read = r.read(buf)) != -1)
{
if (res != null)
res.append(buf, 0, read);
}
r = new InputStreamReader(exec.getErrorStream());
read = 0;
while ((read = r.read(buf)) != -1)
{
if (res != null)
res.append(buf, 0, read);
}
if (exec != null)
this.exitcode = exec.waitFor();
} catch (InterruptedException ex)
{
if (res != null)
res.append("\nOperation timed-out");
} catch (Exception ex)
{
if (res != null)
res.append("\n" + ex);
} finally
{
destroy();
}
}
public synchronized void destroy()
{
if (exec != null)
exec.destroy();
exec = null;
}
}
你调用hasRootAccess()这个方法判断boolean值就可以了2012年6月26日 15:31
相关推荐
### Android应用程序请求root权限代码详解 #### 一、概述 在Android开发中,有时需要对系统进行更深层次的操作,例如修改系统文件或访问特定的硬件资源等,这就需要使用到root权限。root权限通常被视为超级用户...
Android可以直接运行一个底层命令,来判断是否root,但是这会带来一个问题,每次判断是否root都会弹出一个root请求框。这是十分不友好的一种交互方式,而且,用户如果选择取消,有部分手机是判断为非root的。这种方式...
Android开发中有时需要判断手机是否已经root,这个类就是全面检查Android设备是否root的工具类,Android开发中有时需要判断手机是否已经root,这个类就是全面检查Android设备是否root的工具类,Android开发中有时...
在很多情况下,当检测到root权限时,Android应用会弹出警告通知用户,但这可能会引起用户的不满或疑惑。不弹窗的检测方式则更为隐蔽,可以用于后台检测,避免打扰用户。 实现root检测的方法通常有以下几种: 1. **...
在Android开发中,有时我们需要检测用户的设备是否已经获得了Root权限,因为这可能影响到应用程序的安全性和功能表现。本文将详细探讨如何通过编程实现这一功能,主要基于提供的"Android例子源码不弹框手机是否Root...
在Android系统中,根权限(root权限)是一个高级权限,允许用户访问系统级别的文件和功能,这在默认情况下是被禁止的。对于开发者或者高级用户来说,获取root权限能够实现更多的自定义和优化操作,例如修改系统文件...
在Android系统中,修改设备分辨率通常涉及到对系统底层设置的更改,这通常需要获取设备的Root权限。Root权限是Android系统中的超级用户权限,允许用户访问和修改系统核心文件,包括与显示分辨率相关的配置。然而,...
该资源为Android 系统获得root权限的方法,该方法在Android 7.0、Android 9.0、Android10.0上验证过
在Android设备上,当一个应用请求root权限时,Superuser应用会弹出一个对话框,让用户确认是否给予权限。这个标签可能意味着压缩包内的内容与Superuser应用有关,可能包括其源代码、配置文件、或者是用于开发类似...
android Root 判断工具 ,很多接口可以使用,快速开发root使用
在不刷root权限的情况下,如果想在应用层修改系统时间是比较复杂的。本资源是通过android:sharedUserId="android.uid.system",先打包apk,然后用压缩文件打开apk,删除META-INF文件夹下的CERT.SF和CERT.RSA,然后运行...
在Android操作系统中,"root权限"是一个至关重要的概念,它涉及到系统的核心控制权。当一个设备被赋予root权限,意味着用户可以访问并修改系统级别的文件和设置,这在默认情况下是受到严格限制的。Android root权限...
在非Root环境下,Android应用遵循权限模型,每个应用都有自己的沙箱环境,不能随意访问其他应用的数据或执行系统命令。然而,当设备被Root后,应用可以获取到超级用户(su)权限,从而可以执行对系统有影响的shell...
在Android平台上,通常我们使用`Runtime.getRuntime().exec()`方法来执行系统命令,但这不适用于所有情况,特别是当涉及到需要更高权限的操作,如网络数据包抓包。由于Android系统的安全机制,大多数应用程序没有...
Android系统root破解原理分析
在Android系统中,修改系统文件访问权限涉及到对操作系统底层的深度理解,这通常需要root权限。以下是关于这个主题的详细知识点: 1. **init.rc**:这是Android系统启动时执行的第一个脚本,位于系统的system/core/...
判断手机是否具有root权限工具类的标准代码
RootService是一种在Android系统中实现root权限管理的服务,允许开发者在用户权限下运行需要root权限的任务,同时保持系统的稳定性和安全性。 【描述】描述中的内容与标题一致,主要强调这是一个针对rk-android9.0...
万能ANDROID系统ROOT工具,几乎可以ROOT所有ANDROID手机!
Android 模拟器永久root工具------包含 (android for img.rar、Android SU文件更新包.zip、RootExplorer.apkSuperuser.apk) 1、用android for img.rar里的android for img.exe打开 E:\SDK\platforms\android-8\...