Remover aplicativos de serviços de localização em segurança e privacidade no Mac OS X 10.8

20

Eu queria remover aplicativos dos serviços de localização nas configurações de segurança e privacidade do MaC OS X 10.8 Mountain Lion. (Os aplicativos ainda estavam listados, embora tenham sido desinstalados.) Encontrei o post Remover aplicativo dos Serviços de Localização em Segurança & Privacidade no Mac OS X 10.7 , e isso me levou na direção certa. Aqui está o equivalente do OS X 10.8.2 Mountain Lion que funcionou para mim. A principal diferença é a localização do arquivo clients.plist. Eu também queria fornecer um processo passo a passo.

ISENÇÃO DE RESPONSABILIDADE: Isso funcionou para mim. Certifique-se de ter um bom backup do seu sistema. Esse processo inclui fazer um backup do arquivo clients.plist, mas nunca é muito seguro.

1. Inicie o terminal e, em seguida, sudo para um shell raiz em sudo -s

2. Vá para / var / db / locationd em cd /var/db/locationd

3. Faça um backup do arquivo clients.plist em cp -p clients.plist clients.plist.save

4. Converter clients.plist para xml (formato editável)
plutil -convert xml1 clients.plist

5. Use o vi (vim) para editar o arquivo clients.plist e remover o aplicativo.
vi clients.plist

O arquivo provavelmente conterá muitas entradas de aplicativos. Aqui está o formato de uma entrada de aplicativo único (Safari, neste caso). A entrada inteira precisa ser excluída.

    <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. Converta o arquivo clients.plist de volta para binário
plutil -convert binary1 clients.plist

7. Reinicie o locationd em killall locationd

Se os aplicativos ainda estiverem lá, faça o processo novamente, exceto restart locationd usando kill -9 após determinar o PID da seguinte forma. O PID é o segundo campo na saída do ps.

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

Eu executei o processo duas vezes para remover um aplicativo de cada vez. A primeira vez, killall foi suficiente. Na segunda vez, não foi. Eu não sei porque. Ele agia como se o locationd estivesse mantendo um cache e recriando clients.plist. Digo isso porque as entradas foram adicionadas de volta a clients.plist depois de executar o killall - e até mesmo em uma reinicialização. Qualquer que seja a causa raiz, usar kill -9 resolveu o problema para mim.

Se as coisas correrem mal, copie de volta o arquivo original e reinicie o locationd.
cp -p clients.plist.save clients.plist
killall locationd (ou o método kill -9)

Espero que isso ajude. Felicidades!

    
por Scot S 31.12.2012 / 02:41

4 respostas

5

O editor de lista de propriedades do Xcode também pode ser usado para excluir entradas de aplicativos antigos, mas como o arquivo é difícil de acessar, as permissões precisam ser temporariamente abertas:

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

para que o diretório e o arquivo possam ser lidos e escritos por todos os usuários. Então, por conveniência, su para seu ID de login:

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

Isso pressupõe que o Xcode seja o aplicativo padrão para abrir arquivos * .plist, e você está familiarizado com o Editor de lista de propriedades. Sob a propriedade Root, existem 3 entradas do Dicionário padrão:

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

Aqueles não devem ser removidos. Para entradas que pertencem a aplicativos de longo prazo, você pode passar o mouse exatamente à esquerda da coluna Dicionário da linha do aplicativo correspondente, onde um cinza inverso '-' será exibido. Clicar nele removerá o item e todos os seus filhos. Se você preferir inspecionar a entrada primeiro, clicar no triângulo cinza (familiar aos usuários da lista de exibição do Finder) à esquerda da string da chave expandirá o Dicionário e exibirá seus elementos.

Depois de excluir ou desativar as chaves, guarde o arquivo e saia do Xcode. Então, de volta ao Terminal, faça:

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

acione a seta para cima duas vezes para chamar o comando chmod, ctrl-A para ir ao início da linha, cursor-right cerca de oito vezes, altere o valor '+' para '-', ou digite o seguinte como mostrado para restaurar as permissões para o que eram:

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

então HUP o daemon de localização:

 mini-nevie:~ root# killall -HUP locationd

uma verificação rápida da guia Privacidade do Privacy.PrefPane deve confirmar suas alterações.

Padrões de isenções de responsabilidade, contos de advertência de dor, repreensões, risadas e "Esta viagem é realmente necessária?" reflexões são especialmente aplicáveis.

    
por 13.04.2013 / 02:51
2

Usando o tccutil (utilitário de linha de comando OS X)

Acho que a maneira mais rápida e segura de fazer isso é pelo utilitário de linha de comando do OS X tccutil

  • Abra uma nova janela de terminal
  • Feche as janelas prefpane "Segurança e privacidade" abertas
  • Digite ou cole dos seguintes comandos destacados

Redefinir os serviços de localização

tccutil reset CoreLocationAgent

Redefinir o acesso aos contatos / catálogo de endereços:

tccutil reset AddressBook

Redefinir acesso a lembretes

tccutil reset Reminders

Redefinir o acesso a calendários

tccutil reset Calendar

E isso é tudo que existe para isso. Nenhum Sudo precisava, a propósito.

    
por 24.12.2016 / 22:49
0

Além das respostas anteriores, esse problema só desapareceu depois que eu corrigi a propriedade do arquivo:

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

Em seguida, reinicie o computador.

    
por 12.04.2018 / 09:27
0

Este é o antigo e a solução que proponho não é tecnicamente diferente da solução no post e aceita, mas é muito menos trabalhoso e muito mais fácil de automatizar (útil para depuração). Apenas faça

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

como root.

    
por 25.05.2018 / 17:22