以rootHttpd运行NanoHttpd

时间:2016-06-28 13:25:32

标签: android root nanohttpd

我想在Android(KitKat 4.4)设备上运行NanoHttpd并将其绑定到端口80.

据我所知,我只能以root用户身份绑定到端口80。我的设备已经植根,我可以成功启动具有超级用户权限的进程,如下所示:

Process p = Runtime.getRuntime().exec("su");

blog post向我展示了如何使用getOutputStream()的{​​{1}}方法编写文件。

但是,我想在root进程中运行NanoHttpd。那可能吗?或者我是否仅限于shell命令?或者我可以从脚本启动我的应用程序吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下命令(具有超级用户权限)在脚本中启动应用程序:

am start -n your.package.name/.YourActivity

相应地替换your.package.name.YourActivity

在java中使用root shell:

Process p = Runtime.getRuntime().exec("su");
DataOutputStream doutps = new DataOutputStream(p.getOutputStream());
doutps.writeBytes("yourcommand" + "\n");
doutps.flush();
doutps.writeBytes("exit\n");
doutps.flush();
p.WaitFor();
doutps.close();
try { p.destroy(); } catch(Exception ex) {}

再次,用您想要的命令替换yourcommand

您可以使用可在root shell中使用的任何命令,无论命令是什么以及如何构造它。如果您需要多个命令,只需为每个命令重复以下行:

doutps.writeBytes("yourcommand" + "\n");
doutps.flush();