jdmbair13m5-changelog-20260904-0345-fleet-tcc-rtty-location-repair
Repaired reverting Location Services permissions for RTTy
(com.eastcoastscience.rtty.direct) by purging stale
colliding registrations, setting authorization in CoreLocation daemon
clients.plist, and built/deployed fleetwide diagnostic and repair tool
mac_fleet_TCC_repair_check.zsh with Gemini-style Footlights
status bar (1-10 dense lines) across all 6 Mac fleet hosts.
Scope
- Hosts audited & remediated:
jdmbair13m5(local),rdmsm4x,rdmbair13m5,rdmbair15m5,rdmpw3265m,rdmpw3275m. - macOS Architecture:
- macOS 27.0 (Darwin 27):
jdmbair13m5,rdmsm4x,rdmbair13m5,rdmbair15m5(UI Section: "Device Control" replacing "Accessibility"). - macOS 26.7 (Darwin 26):
rdmpw3265m,rdmpw3275m(UI Section: "Accessibility").
- macOS 27.0 (Darwin 27):
Root Cause Analysis: Reverting Location Switch
- In macOS System Settings, toggling Location Services on for RTTy immediately reverted to off.
- Under
/var/db/locationd/clients.plist,locationdmaintained stale client keys mapped to/Applications/RTTy.appusing the legacy bundle identifiernet.dataroo.RTTy(with requirementidentifier "net.dataroo.RTTy"). - The active RTTy binary is codesigned with bundle identifier
com.eastcoastscience.rtty.directand designated requirementidentifier "com.eastcoastscience.rtty.direct" and anchor apple generic and certificate leaf[subject.CN] = "Apple Development: Richard Doty (S65Q255HA8)". - When System Settings issued an XPC request to mutate authorization,
locationddetected duplicate executable paths and a requirement mismatch against the registered client token, denying the mutation. - In addition,
locationdcachesclients.plistin memory and flushes dirty memory to disk unless frozen (killall -STOP locationd) prior to editing and force-restarted (killall -9 locationd).
Exact Files Touched
- Local & Remote:
/var/db/locationd/clients.plist(audited, stale entries purged,com.eastcoastscience.rtty.directauthorized) - Canonical Project Root:
rdmsm4x:~/dev/apps/RDmacTCCfix/mac_fleet_TCC_repair_check.zsh - Canonical Project Documentation:
rdmsm4x:~/dev/apps/RDmacTCCfix/README.md - Canonical Fleet Script:
rdmsm4x:~/dev/scripts/mac_fleet_TCC_repair_check.zsh - Distributed Fleet Script:
~/dev/scripts/mac_fleet_TCC_repair_check.zshonjdmbair13m5,rdmbair13m5,rdmbair15m5,rdmpw3265m,rdmpw3275m
Commands Run
# Built and tested mac_fleet_TCC_repair_check.zsh
/Users/richh/dev/scripts/mac_fleet_TCC_repair_check.zsh -l 5 --fleet --audit-only
/Users/richh/dev/scripts/mac_fleet_TCC_repair_check.zsh -l 5 --fleet --repair
/Users/richh/dev/scripts/mac_fleet_TCC_repair_check.zsh -l 5 --fleet --audit-only --verbose
# Distributed to rdmsm4x project and scripts across fleet
scp /Users/richh/dev/scripts/mac_fleet_TCC_repair_check.zsh [email protected]:/Users/richh/dev/apps/RDmacTCCfix/
scp /Users/richh/dev/scripts/mac_fleet_TCC_repair_check.zsh [email protected]:/Users/richh/dev/scripts/Verification Evidence
[03:42:45] ● PASS [jdmbair13m5] Location Services: com.eastcoastscience.rtty.direct (/Applications/RTTy.app) -> Status: [CHECKED]
[03:42:46] ● PASS [rdmsm4x] Location Services: com.eastcoastscience.rtty.direct (/Applications/RTTy.app) -> Status: [CHECKED]
[03:42:46] ● PASS [rdmbair13m5] Location Services: com.eastcoastscience.rtty.direct (/Applications/RTTy.app) -> Status: [CHECKED]
[03:42:47] ● PASS [rdmbair15m5] Location Services: com.eastcoastscience.rtty.direct (/Applications/RTTy.app) -> Status: [CHECKED]
[03:42:47] ● PASS [rdmpw3265m] Location Services: com.eastcoastscience.rtty.direct (/Applications/RTTy.app) -> Status: [CHECKED]
[03:42:48] ● PASS [rdmpw3275m] Location Services: com.eastcoastscience.rtty.direct (/Applications/RTTy.app) -> Status: [CHECKED]
Active RTTy process on jdmbair13m5 (PID 76293) connected
to locationd with RegistrationComplete: 1,
newAuthContext: RegResult:0(0) (Authorized).
Backup Locations
jdmbair13m5:/var/db/locationd/clients.plist.bak.1788507346rdmsm4x:/var/db/locationd/clients.plist.bak.1788507436rdmbair13m5:/var/db/locationd/clients.plist.bak.1788507751rdmbair15m5:/var/db/locationd/clients.plist.bak.1788507752rdmpw3265m:/var/db/locationd/clients.plist.bak.1788507754rdmpw3275m:/var/db/locationd/clients.plist.bak.1788507755
How to Undo
To revert to the prior state on any host:
sudo cp -f /var/db/locationd/clients.plist.bak.<timestamp> /var/db/locationd/clients.plist && sudo killall -9 locationd
Outstanding Owner Actions
None required. All fleet hosts now have
com.eastcoastscience.rtty.direct authorized for Location
Services, and mac_fleet_TCC_repair_check.zsh is installed
fleetwide.