我正在尝试在1024以下的端口上创建一个ServerSocket。
显然,这仅限于root访问权限。
但我正努力为我的应用获取正确的权限。
我正在使用此代码,例如,测试我是否具有root访问权限(或触发对话框)
但它仍然不允许我使用ServerSocket。
AFAIK,使用SU命令创建的进程具有root访问权限,而不是我的应用程序。如何将root权限访问到我自己的进程中?
public stat
ic boolean getRoot() {
try {
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
os.writeBytes("echo \"Do I have root?\" >/system/sd/temporary.txt\n");
os.writeBytes("exit\n");
os.flush();
try {
p.waitFor();
if (p.exitValue() != 255) {
return true;
} else {
return false;
}
} catch (InterruptedException e) {
e.printStackTrace();
return false;
}
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
答案 0 :(得分:1)
如果你不是root用户,你不能在* nix系统下打开1024以下的端口......