Я хотел удалить приложения из служб определения местоположения в настройках безопасности и конфиденциальности на 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)
Надеюсь, это поможет. Ура!
Ответы:
Редактор списка свойств XCode также можно использовать для удаления записей старых приложений, но, поскольку к файлу трудно получить доступ, необходимо временно открыть разрешения:
поэтому каталог и файл могут быть прочитаны и записаны всеми пользователями. Тогда, для удобства, введите ваш логин:
Это предполагает, что Xcode является приложением по умолчанию для открытия файлов * .plist, и вы знакомы с редактором списка свойств. Под свойством Root есть 3 словаря по умолчанию:
Они не должны быть удалены. Для записей, которые принадлежат давно ушедшим приложениям, вы можете навести курсор слева от столбца «Словарь» в строке соответствующего приложения, где появится обратный серый «-». Нажав на нее, вы удалите элемент и всех его детей. Если вы предпочитаете сначала проверить запись, щелкнув серый треугольник (знакомый пользователям в представлении списка Finder) слева от ключевой строки, разверните словарь и отобразите его элементы.
После того как вы удалите или отключите ключи, сохраните файл и выйдите из Xcode. Затем, вернувшись в Терминал, выполните:
дважды нажмите стрелку вверх, чтобы вызвать команду chmod, ctrl-Aчтобы перейти к началу строки, cursor-rightпримерно восемь раз, изменить «+» на «-» или ввести следующее, как показано, чтобы восстановить разрешения, которыми они были:
тогда HUP демон локации:
Быстрая проверка вкладки Security.PrefPane Privacy должна подтвердить ваши изменения.
Стандартные заявления об отказе от ответственности, предостерегающие истории о горе, ругательствах, хлопотах и "Действительно ли эта поездка необходима?" отражения особенно применимы.
источник
Использование tccutil (утилита командной строки OS X)
Я думаю, что самый быстрый и безопасный способ сделать это, с помощью утилиты командной строки OS X tccutil
Сбросить службы определения местоположения
Сбросить доступ к контактам / адресной книге:
Сбросить доступ к напоминаниям
Сбросить доступ к календарям
И это все, что нужно сделать. Кстати, судо не нужно.
источник
tccutil reset CoreLocationAgent
, похоже, больше не работает. Смотрите эту проблему .Это старое, и решение, которое я предлагаю, технически не отличается от решения в посте и принятого, но оно намного меньше хлопот и гораздо проще автоматизировать (полезно для отладки). Просто сделать
как корень.
источник
В дополнение к предыдущим ответам эта проблема исчезла после исправления владения файлами:
Затем перезагрузите компьютер.
источник