Wireguard-go on Android 11+

Anton jnashicq at googlemail.com
Wed Apr 12 12:39:00 UTC 2023

Hi all,

I'm porting a Golang-based program [1] to Android11+ (API level 30)
and I've faced a problem,as the getifaddrs function is not available
for apps and other restrictions.

>From Android developer documentation [2]:
> In addition, non-privileged apps can't access the device's MAC address; only network interfaces with an IP address are visible. This impacts the getifaddrs() and   NetworkInterface.getHardwareAddress() methods, as well as sending RTM_GETLINK Netlink messages.
>   The following is a list of the ways that apps are affected by this change:
>   NetworkInterface.getHardwareAddress() returns null for every interface.
>   Apps cannot use the bind() function on NETLINK_ROUTE sockets.
>   The ip command does not return information about interfaces.
>   Apps cannot send RTM_GETLINK messages.

I came up with a workaround [3], and now my app works OK.

External references:

best regards,

More information about the WireGuard mailing list