Entfernen Sie Anwendungen aus den Ortungsdiensten in Sicherheit und Datenschutz unter Mac OS X 10.8

9577
Scot S

Ich wollte Anwendungen aus den Ortungsdiensten in den Sicherheits- und Datenschutzeinstellungen von MaC OS X 10.8 Mountain Lion entfernen. (Die Apps wurden immer noch aufgelistet, obwohl sie deinstalliert wurden.) Ich habe den Beitrag Anwendung aus den Ortungsdiensten in Sicherheit und Datenschutz unter Mac OS X 10.7 entfernen gefunden, und das hat mich in die richtige Richtung gelenkt. Hier ist das OS X 10.8.2 Mountain Lion-Äquivalent, das für mich funktioniert hat. Der Hauptunterschied ist der Speicherort der Datei clients.plist. Ich wollte auch Schritt für Schritt vorgehen.

HAFTUNGSAUSSCHLUSS: Das hat bei mir funktioniert. Stellen Sie sicher, dass Sie eine gute Sicherung Ihres Systems haben. Dieser Prozess umfasst das Erstellen einer Sicherungskopie der Datei clients.plist, die jedoch niemals zu sicher sein kann.

1. Starten Sie Terminal und dann Sudo zu einer Root-Shell
sudo -s

2. Gehen Sie zu / var / db / locationd
cd /var/db/locationd

3. Erstellen Sie eine Sicherungskopie der Datei clients.plist
cp -p clients.plist clients.plist.save

4. Konvertieren Sie clients.plist in XML (bearbeitbares Format)
plutil -convert xml1 clients.plist

5. Bearbeiten Sie die Datei clients.plist mit vi (vim) und entfernen Sie die Anwendung.
vi clients.plist

Die Datei enthält wahrscheinlich viele Anwendungseinträge. Hier ist das Format eines einzelnen Anwendungseintrags (in diesem Fall Safari). Der gesamte Eintrag muss gelöscht werden.

 <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. Konvertieren Sie die Datei clients.plist wieder in eine Binärdatei
plutil -convert binary1 clients.plist

7. Starten Sie locationd neu
killall locationd

Wenn sich die Apps noch immer dort befinden, führen Sie den Vorgang erneut aus, mit der Ausnahme, dass Sie locationd mit kill -9 erneut starten, nachdem Sie die PID wie folgt ermittelt haben. Die PID ist das zweite Feld in der Ausgabe von ps.

ps -ef | grep locationd | grep -v grep
Ausgabe: 205 427 1 0 6:31PM ?? 0:00.07 /usr/libexec/locationd
kill -9 427

Ich habe den Vorgang zweimal ausgeführt, um jeweils eine App zu entfernen. Das erste Mal war Killall ausreichend. Das zweite Mal war es nicht. Keine Ahnung warum. Es wirkte, als würde locationd einen Cache behalten und clients.plist neu erstellen. Ich sage das, weil die Einträge nach dem Ausführen von killall - und sogar nach einem Neustart - wieder in clients.plist eingefügt wurden. Was auch immer die Ursache war, mit kill -9 wurde das Problem für mich gelöst.

Wenn die Dinge schlecht laufen, kopieren Sie die ursprüngliche Datei zurück und starten Sie locationd neu.
cp -p clients.plist.save clients.plist
killall locationd(oder die Kill -9-Methode)

Ich hoffe das hilft. Prost!

20
kill -HUP ist möglicherweise zuverlässiger; Es ist das Legacy-Kill-Signal, das einem Dämon mitteilt, den Cache zu leeren und die Konfigurationsdatei erneut zu lesen. Ich sehe, dass killall -HUP locationd funktionieren würde. Ein möglicher Grund für die anderen Kills war möglicherweise, dass die Cache-Dateien vom neu erstellten Prozess noch gelesen wurden. Nevin Williams vor 11 Jahren 0
Interessante Tatsache: Ich bin nicht sicher, ob dieses Verhalten vor High Sierra vorhanden war, aber zumindest in diesem Mac OS, wenn Sie das Kontrollkästchen einer Datei deaktivieren, die nicht mehr im Einstellungsbereich vorhanden ist. Normalerweise zeigt die App sie nicht mehr in der Liste an. Mit dieser Methode entdeckte ich jedoch, dass einige dieser angeblich gelöschten Apps tatsächlich immer noch in der Liste waren und nicht angezeigt wurden. DonielF vor 6 Jahren 0
Ich sollte auch auf der Grundlage meiner Erfahrung darauf hinweisen: Ich habe versucht, ein Applescript von mir aus den Systemeinstellungen aus Gründen zu entfernen, und es stellte sich immer wieder heraus, dass mein Standort für mehrere Versuche gewünscht wurde, bis es schließlich zum Schweigen kam. Ich gehe davon aus, dass ich ständig versucht habe, diese Codezeile im Applescript auszuführen, und die Bash im Hintergrund ausgeführt wurde, bis sie aus meinen Systemeinstellungen gelöscht wurde ... und so ging es zur nächsten Zeile in der Bash. Da ich mehrere davon im Hintergrund laufen ließ, musste ich anscheinend jedes einzeln abbrechen. DonielF vor 6 Jahren 0

4 Antworten auf die Frage

5
Nevin Williams

Xcode's property list editor can also be used to delete old apps' entries, but since the file is hard to get to, permissions have to be temporarily opened:

mini-nevie:~ root# chmod o+rwx /var/db/locationd/ /var/db/locationd/clients.plist 

so the directory and file can be read and written by all users. Then, for convenience, su to your login ID:

mini-nevie:~ root# su - nevinwilliams mini-nevie:~ nevinwilliams$ open /var/db/locationd/clients.plist 

This assumes Xcode is the default app for opening *.plist files, and you're familiar with the Property List Editor. Under the Root property, there are 3 default Dictionary entries:

com.appl com.appl.locationd.executable-/usr/libexec/UserEventAgent com.appl.aosnotifyd 

Those ought not to be removed. For entries that belong to long-gone apps, you can hover just to the left of the Dictionary column of the corresponding app's row, where an inverse grey '-' will appear. Clicking on it will remove the item, and all its children. If you'd rather inspect the entry first, clicking on the grey triangle (familiar to Finder list-view users) to the left of the key string will expand the Dictionary and display its elements.

Once you delete or disable the keys to your satisfaction, save the file, and quit Xcode. Then, back in Terminal, do:

mini-nevie:~ nevinwilliams$ exit logout mini-nevie:~ root# 

hit the up-arrow twice to recall the chmod command, ctrl-A to go to the beginning of the line, cursor-right about eight times, change the '+' to a '-', or enter the following as shown to restore permissions to what they were:

mini-nevie:~ root# chmod o-rwx /var/db/locationd /var/db/locationd/clients.plist 

then HUP the location daemon:

 mini-nevie:~ root# killall -HUP locationd 

a quick check of the Security.PrefPane Privacy tab ought to confirm your changes.

Standard disclaimers, cautionary tales of woe, scoldings, cluckings, and "Is This Trip Really Necessary?" reflections are especially applicable.

3
Andreas

Tccutil verwenden (OS X-Befehlszeilenprogramm)

Ich denke, der schnellste und sicherste Weg, dies zu tun, ist das Befehlszeilen-Dienstprogramm von OS X, tccutil

  • Öffnen Sie ein neues Terminalfenster
  • Schließen Sie alle geöffneten Fenster "Sicherheit und Datenschutz"
  • Geben Sie die folgenden hervorgehobenen Befehle ein, oder fügen Sie sie ein

Setzen Sie die Standortdienste zurück

tccutil reset CoreLocationAgent 

Zugriff auf Kontakte / Adressbuch zurücksetzen:

tccutil reset AddressBook 

Setzen Sie den Zugriff auf Erinnerungen zurück

tccutil reset Reminders 

Setzen Sie den Zugriff auf Kalender zurück

tccutil reset Calendar 

Und das ist alles was dazu gehört. Übrigens brauchte kein Sudo.

Leider arbeitet ich nicht für mich. Ich erhalte eine Fehlermeldung zum Zurücksetzen der Datenbank. strangetimes vor 6 Jahren 0
@strangetimes: Ich hatte das total vergessen. Ich habe das in diesem Link erwähnte modifizierte Tccutil nicht ausprobiert, aber es scheint mir einen Versuch wert: https://github.com/jacobsalmela/tccutil Andreas vor 6 Jahren 0
@strangetimes: Ich habe vergessen zu erwähnen, dass der Grund, warum es nicht funktioniert, auf den Schutz der Systemintegrität zurückzuführen ist, laut github.com/jacobsalmela/tccutil Andreas vor 6 Jahren 0
Der Befehl "tccutil reset CoreLocationAgent" scheint nicht mehr zu funktionieren. Siehe [diese Ausgabe] (https://github.com/jacobsalmela/tccutil/issues/26). nix vor 6 Jahren 0
Es hat für mich funktioniert, die Kalender zu entfernen, aber ich kann keine neue Berechtigung anfordern. Dazu musste ich die Benutzer- / Bibliotheks- / Kalender- / Kalender-Cache-Datenbank entfernen und den Computer neu starten Cristi Băluță vor 5 Jahren 0
0
T. Gil

Neben den vorherigen Antworten ist dieses Problem erst nach der Korrektur des Dateieigentums für mich behoben worden:

# chown -R _locationd:_locationd /var/db/locationd/ # chmod 750 /var/db/locationd/ # chmod 644 /var/db/locationd/clients.plist 

Starten Sie dann den Computer neu.

0
Michael Krelin - hacker

Dies ist die alte und die Lösung, die ich vorschlage, unterscheidet sich technisch nicht von der Lösung in der Post und ist eine akzeptierte, aber es ist weniger umständlich und viel einfacher zu automatisieren (nützlich für das Debuggen). Mach einfach

/usr/libexec/PlistBuddy -c 'Delete <bundle-id>' /var/db/locationd/clients.plist killall -HUP locationd 

als Wurzel.