Tôi muốn xóa ứng dụng khỏi các dịch vụ định vị trong cài đặt bảo mật và quyền riêng tư trên MaC OS X 10.8 Mountain Lion. (Các ứng dụng vẫn được liệt kê ngay cả khi chúng đã được gỡ cài đặt.) Tôi tìm thấy bài đăng Xóa ứng dụng khỏi Dịch vụ vị trí trong Bảo mật & quyền riêng tư trên Mac OS X 10.7 và điều đó đã đưa tôi đi đúng hướng. Đây là tương đương với OS X 10.8.2 Mountain Lion phù hợp với tôi. Sự khác biệt chính là vị trí của tệp client.plist. Tôi cũng muốn cung cấp một quy trình từng bước.
TUYÊN BỐ TỪ CHỐI: Điều này làm việc cho tôi. Hãy chắc chắn rằng bạn có một bản sao lưu tốt của hệ thống của bạn. Quá trình này bao gồm tạo một bản sao lưu của tệp client.plist, nhưng người ta không bao giờ có thể quá an toàn.
1. Bắt đầu thiết bị đầu cuối và sau đó sudo đến một vỏ gốc
sudo -s
2. Chuyển đến / var / db / locationd
cd /var/db/locationd
3. Tạo một bản sao lưu của tệp client.plist
cp -p clients.plist clients.plist.save
4. Chuyển đổi client.plist thành xml (định dạng có thể chỉnh sửa)
plutil -convert xml1 clients.plist
5. Sử dụng vi (vim) để chỉnh sửa tệp client.plist và xóa ứng dụng.
vi clients.plist
Các tập tin có thể sẽ chứa nhiều mục ứng dụng. Đây là định dạng của một mục ứng dụng duy nhất (Safari trong trường hợp này). Toàn bộ mục cần phải được xóa.
<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. Chuyển đổi tệp client.plist trở lại nhị phân
plutil -convert binary1 clients.plist
7. Khởi động lại locationd
killall locationd
Nếu các ứng dụng vẫn còn ở đó, hãy thực hiện lại quy trình, ngoại trừ khởi động lại locationd bằng kill -9 sau khi xác định PID như sau. PID là trường thứ hai trong đầu ra ps.
ps -ef | grep locationd | grep -v grep
Đầu ra: 205 427 1 0 6:31PM ?? 0:00.07 /usr/libexec/locationd
kill -9 427
Tôi đã chạy quá trình hai lần để xóa một ứng dụng cùng một lúc. Lần đầu tiên, killall là đủ. Lần thứ hai, nó đã không. Tôi không biết tại sao. Nó hoạt động giống như locationd đang giữ một bộ đệm và xây dựng lại client.plist. Tôi nói điều này bởi vì các mục đã được thêm lại vào client.plist sau khi chạy killall - và ngay cả khi khởi động lại. Dù nguyên nhân gốc rễ là gì, sử dụng kill -9 đã giải quyết vấn đề cho tôi.
Nếu mọi thứ trở nên tồi tệ, sau đó sao chép lại tệp gốc và khởi động lại locationd.
cp -p clients.plist.save clients.plist
killall locationd
(hoặc phương thức kill -9)
Tôi hi vọng cái này giúp được. Chúc mừng!