2016-06-28 40 views
1

我想在Android(奇巧4.4)設備上運行NanoHttpd並將其綁定到端口80運行NanoHttpd作爲根

我明白,我只能綁定到端口80作爲根用戶。我的設備一直紮根,我能成功地火了具有超級用戶權限的進程,像這樣:

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

blog post顯示我如何寫一個文件,通過使用ProcessgetOutputStream()方法。

但是,我想在根植過程中運行NanoHttpd。那可能嗎?或者我僅限於shell命令?或者我可以從腳本啓動我的應用程序?

回答

1

可以使用下面的命令(以超級用戶權限)開始你的應用程序中的腳本:

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

更換your.package.name.YourActivity相應。

在Java使用根殼:

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

無論命令是什麼以及如何構建,您都可以使用任何命令,該命令可以在根shell中使用。如果您需要多個命令,請對每條命令重複以下幾行:

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