方法一:(不弹框)
private final static int kSystemRootStateUnknow = -1;
private final static int kSystemRootStateDisable = 0;
private final static int kSystemRootStateEnable = 1;
private static int systemRootState = kSystemRootStateUnknow;
public static boolean isRootSystem() {
if (systemRootState == kSystemRootStateEnable) {
return true;
} else if (systemRootState == kSystemRootStateDisable) {
return false;
}
File f = null;
final String kSuSearchPaths[] = { "/system/bin/", "/system/xbin/",
"/system/sbin/", "/sbin/", "/vendor/bin/" };
try {
for (int i = 0; i < kSuSearchPaths.length; i++) {
f = new File(kSuSearchPaths[i] + "su");
if (f != null && f.exists()) {
systemRootState = kSystemRootStateEnable;
return true;
}
}
} catch (Exception e) {
}
systemRootState = kSystemRootStateDisable;
return false;
}
方法二:(会弹框)
public synchronized boolean getRootAhth()
{
Process process = null;
DataOutputStream os = null;
try
{
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes("exit\n");
os.flush();
int exitValue = process.waitFor();
if (exitValue == 0)
{
return true;
} else
{
return false;
}
} catch (Exception e)
{
Log.d("*** DEBUG ***", "Unexpected error - Here is what I know: "
+ e.getMessage());
return false;
} finally
{
try
{
if (os != null)
{
os.close();
}
process.destroy();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
方法三:(会弹框)
//判断机器 Android是否已经root,即是否获取root权限
protected static boolean haveRoot()
{
int i = execRootCmdSilent("echo test"); //通过执行测试命令来检测
if (i != -1) return true;
retrun false;
}
分享到:
相关推荐
Android开发中有时需要判断手机是否已经root,这个类就是全面检查Android设备是否root的工具类,Android开发中有时需要判断手机是否已经root,这个类就是全面检查Android设备是否root的工具类,Android开发中有时...
android Root 判断工具 ,很多接口可以使用,快速开发root使用
4. **使用API检测**:Android提供了安全管理相关的API,开发者可以通过`getDevicePolicyManager().isDeviceOwnerApp()`等方法检测设备是否被root。 5. **检测隐藏的系统应用**:root用户可以隐藏系统应用,非root...
Android可以直接运行一个底层命令,来判断是否root,但是这会带来一个问题,每次判断是否root都会弹出一个root请求框。这是十分不友好的一种交互方式,而且,用户如果选择取消,有部分手机是判断为非root的。这种方式...
- **root权限的替代方案**:对于一些不需要root权限就能实现的功能,开发者可以考虑使用Android系统内置的安全机制或其他替代方法来避免使用root权限。 通过以上分析,我们可以看出请求root权限是一个复杂且敏感的...
然而,对于开发者来说,判断一个Android设备是否已被root,是非常重要的,因为这关系到应用的安全性和兼容性。本源码提供了一种方法来检查设备是否已被root。 在Java中,检查Android设备是否被root通常涉及以下几个...
常见的Root方法包括利用系统漏洞、使用第三方Root工具(如SuperSU、Magisk等)以及通过刷入自定义Recovery(如TWRP)然后安装Root包。这些方法通常需要一定的技术知识,且可能违反设备制造商的保修政策。 对于...
现在,我们来看判断Android手机是否已Root的三种方法: 1. **检查已知Root应用是否存在**:这种方法简单直接,通过查找已知的Root管理应用(如SuperSU、Magisk等)的系统文件或服务来判断。例如,可以检查/system/...
在Android中,可以使用`Runtime.getRuntime().exec()` 方法来执行shell命令。下面是一个示例: ```java public void get_root() { if (is_root()) { Toast.makeText(mCtx, "已经具有ROOT权限!", Toast.LENGTH_...
在`runInstall`方法中,可以看到一系列的条件判断,用于处理不同的安装选项,如`-l`表示使用前向锁定模式,`-r`表示替换已存在的应用,`-i`指定安装者包名,`-t`允许测试包,`-s`和`-f`分别表示安装到外部存储和内部...
判断手机是否具有root权限工具类的标准代码
Android可以直接运行一个底层命令,来判断是否root,但是这会带来一个问题,每次判断是否root都会弹出一个root请求框。这是十分不友好的一种交互方式,而且,用户如果选择取消,有部分手机是判断为非root的。这种方式...
### Android系统判断快捷方式是否存在 #### 背景与需求 在Android开发中,有时候我们需要检测用户是否已经为应用程序创建了桌面快捷方式。这在某些应用场景下是非常有用的,比如为了提高用户体验,当检测到未创建...
5. android.permission.ACCESS_NETWORK_STATE:应用需要此权限来获取网络连接状态,如Wi-Fi、移动数据等,以判断是否可以进行网络操作。 6. android.permission.ACCESS_SURFACE_FLINGER:提供对SurfaceFlinger底层...
通过尝试运行SU命令并捕获返回结果,可以判断设备是否已root。如果能够成功执行并返回0(表示成功),则表明设备已被root。 2. **检查系统文件完整性**: - 在未root的设备上,系统文件如/system/app、/system/...
2. **查找合适的Root工具**:针对不同的设备型号,有不同的Root方法。例如,常见的有SuperSU、 towelroot 或 Odin 等工具。在本例中,文件名为"Root2.34"可能是一个特定的Root工具或者固件更新包,具体用途需根据...
四、Android手机未ROOT方法(方法一) 1. 使用网络修复工具,如WiFi Fixer,它可以帮助检测和修复WiFi连接问题。 2. 尝试连接其他WiFi网络,判断是否为手机硬件或软件问题。 3. 检查手机的日期和时间设置,确保与当前...
android中常用的功能抽取出来的Demo.android dp和px之间转换,android root下禁用组件,android 还原短信,android 开机启动,android 判断网络状态,android 设置apn,android 调节屏幕亮度,android 重启,异步...
屏幕旋转会导致布局高度改变,我们需要在`onConfigurationChanged()`方法中更新`rootHeight`,以确保在不同方向下都能正确判断键盘状态。 ```java @Override public void onConfigurationChanged(Configuration ...
- `Android例子源码仿UC网络判断及开启或关闭网络`可能包含以下几个关键部分:初始化`ConnectivityManager`,创建和注册`BroadcastReceiver`,处理网络状态变化的逻辑,以及根据用户操作尝试开启或关闭网络的代码。...