2017-08-09 40 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