{ "title": "phone_focus_mode: fix YouTube DNS blocking via netd cache restart", "objective": "Android 13's netd process caches /etc/hosts entirely in memory at startup and never re-reads from disk. The existing bind-mount approach changes the on-disk file but not the live resolver cache, so blocked domains continued to resolve. Fix: restart netd exactly once after applying the bind mount, using PID-stamp deduplication to prevent double-restarts that corrupt ConnectivityService's routing table.", "acceptance_criteria": [ "www.youtube.com resolves to 0.0.0.0/127.0.0.1 (blocked) after deploy", "youtube.com resolves to 0.0.0.0/127.0.0.1 (blocked) after deploy", "google.com resolves to a real IP (network is up, not over-blocked)", "Blocking persists after a clean reboot (Magisk module path verified)", "deploy.sh completes without network disruption beyond the expected ~4s during single netd restart", "pre-commit passes on all changed files (shellcheck, codespell, all hooks)" ], "out_of_scope": [ "Firefox UI verification", "googlevideo.com CDN blocking", "FOCUS_BOOT_AUTOSTART=1 boot path testing", "mid-session domain addition without reboot" ], "verifier": "ping tests via ADB after reboot and after fresh deploy; pre-commit run on changed shell files" }