Я хотел удалить приложения из служб определения местоположения в настройках безопасности и конфиденциальности на MaC OS X 10.8 Mountain Lion. (Приложения все еще были в списке, несмотря на то, что они были удалены.) Я обнаружил сообщение « Удалить приложение из Location Services» в разделе « Безопасность и конфиденциальность» в Mac OS X 10.7 , и это заставило меня двигаться в правильном направлении. Вот OS X 10.8.2 Mountain Lion эквивалент, который работал для меня. Основным отличием является расположение файла clients.plist. Я также хотел представить пошаговый процесс.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Это сработало для меня. Убедитесь, что у вас есть хорошая резервная копия вашей системы. Этот процесс включает в себя создание резервной копии файла clients.plist, но никто не может быть слишком безопасным.
1. Запустите терминал и затем sudo для корневой оболочки
sudo -s
2. Перейдите в / var / db / locationd
cd /var/db/locationd
3. Сделайте резервную копию файла clients.plist
cp -p clients.plist clients.plist.save
4. Конвертируйте clients.plist в xml (редактируемый формат)
plutil -convert xml1 clients.plist
5. Используйте vi (vim), чтобы отредактировать файл clients.plist и удалить приложение.
vi clients.plist
Файл, вероятно, будет содержать много записей приложения. Вот формат одной записи приложения (в данном случае Safari). Вся запись должна быть удалена.
<key>com.apple.Safari</key>
<dict>
<key>Authorized</key>
<true/>
<key>BundleId</key>
<string>com.apple.Safari</string>
<key>Executable</key>
<string>/Applications/Safari.app/Contents/MacOS/Safari</string>
<key>LocationTimeStopped</key>
<real>376348187.80421197</real>
<key>Registered</key>
<string>/Applications/Safari.app/Contents/MacOS/Safari</string>
<key>RequirementString</key>
<string>identifier "com.apple.Safari" and anchor apple</string>
<key>Whitelisted</key>
<false/>
</dict>
6. Преобразуйте файл clients.plist обратно в двоичный файл.
plutil -convert binary1 clients.plist
7. Перезапустите локацию
killall locationd
Если приложения все еще там, выполните процесс снова, за исключением перезапуска locationd с использованием kill -9 после определения PID следующим образом. PID - это второе поле в выводе ps.
ps -ef | grep locationd | grep -v grep
Выход: 205 427 1 0 6:31PM ?? 0:00.07 /usr/libexec/locationd
kill -9 427
Я запустил процесс дважды, чтобы удалить одно приложение за раз. Первое время killall было достаточно. Во второй раз этого не было. Я не знаю почему. Он действовал так, как если бы locationd хранил кеш и перестраивал client.plist. Я говорю это потому, что записи были добавлены обратно в список clients.plist после запуска killall - и даже после перезагрузки. Независимо от первопричины, использование kill -9 решило проблему для меня.
Если что-то пойдет не так, скопируйте исходный файл и перезапустите его.
cp -p clients.plist.save clients.plist
killall locationd
(или метод kill -9)
Надеюсь, это поможет. Ура!