Rimuovere le applicazioni dai servizi di ubicazione in Sicurezza e privacy in Mac OS X 10.8

Ho voluto rimuovere le applicazioni dai servizi di localizzazione nelle impostazioni di protezione e privacy su MaC OS X 10.8 Mountain Lion. (Le applicazioni sono ancora elencate anche se sono state disinstallate.) Ho trovato il post Rimuovi applicazione da Servizi di localizzazione in Sicurezza e privacy in Mac OS X 10.7 e che mi ha fatto andare nella giusta direzione. Ecco l'equivalente OS X 10.8.2 Mountain Lion che ha funzionato per me. La differenza principale è la posizione del file clients.plist. Volevo anche provvedere un process passo dopo passo.

DISCLAIMER: Questo ha funzionato per me. Assicurarsi di avere un buon backup del sistema. Questo process include la creazione di un backup del file client.plist, ma non può mai essere troppo sicuro.

1. Avviare il terminal e quindi sudo in una shell di root
sudo -s

2. Vai a / var / db / locationd
cd /var/db/locationd

3. Effettuare un backup del file client.plist
cp -p clients.plist clients.plist.save

4. Convertire client.plist in xml (formato modificabile)
plutil -convert xml1 clients.plist

5. Utilizzare vi (vim) per modificare il file client.plist e rimuovere l'applicazione.
vi clients.plist

Il file probabilmente contiene molte voci di applicazione. Ecco il formato di una singola voce di applicazione (Safari in questo caso). L'intera voce deve essere eliminata.

  <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. Convertire il file client.plist nuovamente in binario
plutil -convert binary1 clients.plist

7. Riavviare locationd
killall locationd

Se le applicazioni sono ancora presenti, eseguire nuovamente il process, tranne riavviare locationd usando kill -9 dopo aver determinato il PID come segue. Il PID è il secondo field dell'output ps.

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

Ho eseguito il process due volte per rimuovere un'applicazione alla volta. La prima volta, killall era sufficiente. La seconda volta, non lo era. Non so perché. Ha agito come locationd è stato mantenere una cache e ribuild clients.plist. Dico questo perché le voci sono state aggiunte a clients.plist dopo aver eseguito killall – e anche su un riavvio. Qualunque sia la causa principale, usando kill -9 ha risolto il problema per me.

Se le cose vanno male, copiate il file originale e riavviate locationd.
cp -p clients.plist.save clients.plist
killall locationd (o il metodo kill -9)

Spero che aiuti. Saluti!

L'editor di elenco delle properties; di Xcode può anche essere utilizzato per eliminare le voci di vecchie applicazioni, ma dal momento che è difficile get il file, è necessario aprire temporaneamente le autorizzazioni:

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

così la directory e il file possono essere letti e scritti da tutti gli utenti. Quindi, per la comodità, su il tuo ID di login:

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

Questo presuppone che Xcode sia l'applicazione predefinita per l'apertura di file * .plist e si ha familiarità con l'Editor delle properties;. Sotto la properties; Root, ci sono 3 voci di dictionary predefinite:

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

Questi non dovrebbero essere rimossi. Per le voci appartenenti a applicazioni passate, è ansible spostarsi a sinistra della colonna del dictionary della row corrispondente dell'applicazione, in cui apparirà un grigio inverso "-". Facendo clic su di esso rimuoverà l'elemento e tutti i suoi figli. Se preferisci prima controllare l'iscrizione, cliccando sul triangolo grigio (familiari agli utenti di visualizzazione di elenco di Finder) a sinistra della string di parole espanderà il dictionary e visualizzerà gli elementi.

Una volta eliminati o disabilitati i tasti per la tua soddisfazione, salvate il file e chiudete Xcode. Poi, indietro nel Terminal, fa:

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

premere due volte la freccia su per ricall il command chmod, ctrl-A per andare all'inizio della linea, cursore-destra circa otto volte, cambiare il '+' a '-' oppure immettere quanto segue per ripristinare permessi a quello che erano:

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

quindi HUP il daemon di posizione:

  mini-nevie:~ root# killall -HUP locationd 

un controllo rapido della scheda Privacy di Security.PrefPane dovrebbe confermare le modifiche.

Disclaimers standard, racconti cauti di guai, rimproveri, cluckings, e "Questo viaggio è veramente necessario?" riflessioni sono particolarmente applicabili.

Utilizzo di tccutil (utilità della row di command di OS X)

Penso che il modo più veloce e più sicuro di farlo è quello dell'utilità di command di row di command OS X

  • Aprire una nuova window del terminal
  • Chiudere tutte le windows prefabbricate "Sicurezza e privacy" aperte
  • Digitare o incollare i seguenti comandi evidenziati

Reimposta i servizi di localizzazione

 tccutil reset CoreLocationAgent 

Ripristina l'accesso ai contatti / rubrica:

 tccutil reset AddressBook 

Ripristina l'accesso a Promemory

 tccutil reset Reminders 

Ripristina l'accesso ai calendari

 tccutil reset Calendar 

E questo è tutto a questo. A Sudo non c'era bisogno, a proposito.