It took me a while to figure out why many of my self-hosted services were intermittently failing to connect on my phone after updating to Android 17. I eventually figured out there’s a new ACCESS_LOCAL_NETWORK permission which means the “Nearby devices” permission is now required to access devices on the same network subnet. For an avid self-hoster, this can be quite a bit.
I had my DNS configured so my public-facing server resolved to a local IP address when on my LAN. This meant that my web, immich, xmpp, NTP, jellyfin and DoH servers all resolved to a local IP address on wifi. On Android 17, it all broke without warning. No error messages. No asking for extra permissions. Just silent packet dropping.
I’ve solved it by configuring my public-facing services to resolve to my external (static) IP address, even when inside the network. I couldn’t make any internal services resolve to the external address (SMB, CUPS etc) because they are (obviously) not bound to my WAN interface.
I get why the change was made. A lot of apps were snooping around people’s networks to gather intel. A potentially massive privacy violation.
Has anyone else had this issue? Is this the cleanest solution?
oha@lemmy.pobierz.net
RickyRigatoni@piefed.zip
avidamoeba@lemmy.ca
giant_smeeg@feddit.uk 8 hours ago
Luckily grapheneos allows a hybrid approach so allows just the lan subnet permission without the wider nearby devices permission.
pHr34kY@lemmy.world 1 hour ago
I’m actually on GrapheneOS.
I’ve found that you can deny “Network” permissions and permit “Nearby devices”. The app becomes LAN-only this way.
curbstickle@anarchist.nexus 4 minutes ago
You’re also handling bluetooth and wifi functionality with that permission, fyi.
NarrativeBear@lemmy.world 7 hours ago
Hey can you let me know where I can find more info on this? I am running GrapheneOS as I was having this exact same issue as OP a few day back.
On my browsers I have network access, but nearby devices was disabled.
I checked my private dns settings and granted nearby devices access to my browsers, which allowed me to hit my local self-hosted services.
Just wondering if there is a better way to achieve the same.