2017-08-09 39 views
1

我正在嘗試將http服務器添加到基於5.1的自定義ROM中。我設法通過device.mk中的PRODUCT_COPY_FILES將lighttpd二進制文件放置在system/xbin中,並且能夠在eng構建中的設備中成功運行它。服務器正在監聽端口80AOSP:Android privilaged端口,文件組和啓動服務

但是在用戶構建中,服務器無法綁定到80。選中時,文件所有者/組是root/shell。這是80端口不允許的原因嗎?在放置二進制文件時如何更改爲root/root?有沒有其他方法可以綁定到80

EDIT-1

我嘗試另一種選擇是用iptables ..但再次,權限被拒絕。 有什麼辦法可以在android源代碼中添加一個iptable規則並構建?

另外閱讀'更新Linux配置'將端口80標記爲非特權端口..但無法弄清楚如何做到這一點。

在此先感謝。

回答

2

不應該讓它在根端口80上運行,這可能最終會導致安全漏洞。

無論是高於1024端口上運行,或閱讀本answer,尤其是介紹如何使用su

+0

感謝你的回覆部分。我有幾個其他系統試圖連接到端口80 ..因此這種嘗試。在6個月內,我們會更新這些指向更高的端口。 我嘗試通過su ..但沒有運氣。仍然80端口的權限被拒絕。有趣的是,su也是root:shell。 看起來像改變lighttpd爲根:根是唯一的選擇.. – user2257682

+0

如果在這個Android設備上啓用selinux。你可能也得處理這個問題。 – ApriOri

+0

我使用android_filesystem_config.h管理root:su。也設置權限爲6755.但令我驚訝的是,端口80仍然是不允許的。另外,su不能在system/xbin中設置另一個文件的chown。 哪個方面會成爲垃圾場?正如我所提到的,在eng build port 80是開放的。 SELinux被禁用。 – user2257682