How can check android Device is Rooted Device?
adb, android
Solution
I use this class:
private void CheckRoot()
{
Process p;
try {
// Preform su to get root privledges
p = Runtime.getRuntime().exec("su");
// Attempt to write a file to a root-only
DataOutputStream os = new DataOutputStream(p.getOutputStream());
os.writeBytes("echo \"Do I have root?\" >/data/LandeRootCheck.txt\n");
// Close the terminal
os.writeBytes("exit\n");
os.flush();
try {
p.waitFor();
if (p.exitValue() == 0) {
// TODO Code to run on success
this.IsRoot=true;
}
else {
// TODO Code to run on unsuccessful
this.IsRoot=false;
}
} catch (InterruptedException e) {
// TODO Code to run in interrupted exception
toastMessage("not root");
}
} catch (IOException e) {
// TODO Code to run in input/output exception
toastMessage("not root");
}
}
Problem
How can i check if android device is rooted or not? I am using the following code: ``` Process proc = Runtime.getRuntime ().exec ("su"); ``` and when I run it on a device I got following exception. ``` Causes by:Permission denied ``` But running on an emulator does not give any exception. I am using another way to check. Entering `adb shell` in the commend line for emulator returns #, but for device writing `adb shell` gives the following error: ``` shell@android:/ $ su su /system/bin/sh: su: not found 127|shell@android:/ $ ``` So how can I check if device is rooted or not. Thanks in Advance.