为Android构建内核以启用随机化wifi for地址时出现错误。添加的语言如下:
if (randomize_mac && (changes & IFF_UP) && !(old_flags & IFF_UP)) {
/* randomize MAC whenever interface is brought up */
struct sockaddr sa;
unsigned int mac4;
unsigned short mac2;
mac4 = prandom_u32();
mac2 = prandom_u32();
memcpy(sa.sa_data, &mac4, sizeof(mac4));
memcpy((char *)sa.sa_data + sizeof(mac4), &mac2, sizeof(mac2));
if (!is_valid_ether_addr(sa.sa_data))
sa.sa_data[5] = 1;
sa.sa_data[0] &= 0xFC;
sa.sa_family = dev->type;
dev_set_mac_address(dev, &sa);
}
return ret;}`
我在顶部添加了以下内容:
u32 prandom_u32(void);但是仍然得到了错误。请帮帮忙
发布于 2016-08-10 02:33:22
好的。解决了这个问题:只需查看/include/linux/ u32 .h,就会发现include被定义为random32。因此,我将相应的行更改为
mac4 = random32();
mac2 = random32();https://stackoverflow.com/questions/38852946
复制相似问题