security/commoncap.c:90: error: 'AID_NET_RAW' undeclared

编译安卓4.0系统linux内核时,报错:

CC      security/commoncap.o
security/commoncap.c: In function 'cap_capable':
security/commoncap.c:90: error: 'AID_NET_RAW' undeclared (first use in this function)
security/commoncap.c:90: error: (Each undeclared identifier is reported only once
security/commoncap.c:90: error: for each function it appears in.)
security/commoncap.c:92: error: 'AID_NET_ADMIN' undeclared (first use in this function)
make[1]: *** [security/commoncap.o] Error 1
make: *** [security] Error 2
make: *** Waiting for unfinished jobs....

经过查找,发现定义:

/include/linux/android_aid.h:23:#define AID_NET_RAW      3004

于是打开源文件,查看该文件是否包含,看到如下部分:

#ifdef CONFIG_ANDROID_PARANOID_NETWORK
#include <linux/android_aid.h>
#endif

因此,那原因就是没有定义
CONFIG_ANDROID_PARANOID_NETWORK
进一步搜索发现该定义在net/Kconfig:

config ANDROID_PARANOID_NETWORK
	bool "Only allow certain groups to create sockets"
	default y
	help
		none

终于找到问题所在了,刚开始还纳闷为什么以前编译没有错误,选中该项,问题解决。

android在建立网络连接会进行身份验证,确定是否有权限进行该项操作,因此此处必须加上。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值