Conversation

Stable privacy addresses are only used by Android when MAC randomization is disabled. The stable privacy address feature otherwise isn't used. The issue with public IPv6 addresses isn't an intentional design choice by Android but rather a Linux kernel design issue.
2
1
By default, Android uses a persistent random MAC address for each network, a link-local IPv6 address based on the MAC address and an ephemeral public IPv6 address rotating daily for new connections and valid for up to a week per Linux kernel defaults for privacy address rotation.
2
1
If you disable MAC randomization, it uses the hardware MAC and a stable privacy address for the link-local IP address. Public addresses always work the same way: ephemeral rotating privacy addresses. GrapheneOS adds ephemeral MAC rand and uses that as the default mode instead.
1
1
We still have both of their standard modes (per-network randomization, device MAC) but we add a 3rd mode. The problem we need to fix is that when you move across networks, the Linux kernel doesn't start over with fresh public privacy addresses. Keeps counting down same timers.
2
1
If they have their own SoC, then it's possible it will be using 5.10.x. Maybe they'll actually move to newer LTS branches within the lifetime of the device with their own SoC but it's incredibly uncommon. Linux kernel has a ton of regressions, particularly hardware-specific ones.
1
IoT / embedded doesn't generally updates in the first place or at least not long enough / seriously enough for kernel LTS support to matter. Regardless, almost every production Linux device (i.e. not a hobbyist thing) never moves to a new LTS branch. That includes servers too.