Xóa dịch vụ trên OS X


15

Tôi đang tìm cách xóa hoàn toàn một số dịch vụ hoặc ít nhất là khỏi danh sách trong ngăn tùy chọn Bàn phím. Tôi đã thử:

  1. Dịch vụ chà sàn . Nó chỉ xóa các dịch vụ khỏi menu - điều mà bạn có thể thực hiện từ System Preferences kể từ 10.6.
  2. Loại bỏ các tập tin trong ~/Library/Services//Library/Services/. Chỉ là hầu hết các ứng dụng của bên thứ ba không đặt dịch vụ của họ ở đó.
  3. defaults delete /Applications/SomeApp.app/Contents/Info NSServices. Nó không xóa các dịch vụ khỏi danh sách trong System Preferences. Nhưng nó cũng làm mất hiệu lực chữ ký mã của gói và các thay đổi có thể được hoàn nguyên bằng các bản cập nhật.

Tôi đoán bạn chỉ cần giải quyết cho lựa chọn cuối cùng và gán chữ ký mới codesignkhi cần. Nhưng có cách nào dễ dàng hơn?


Ah, vẻ đẹp của OS X làm phức tạp mọi thứ nên đơn giản.
cregox

Phiên bản OS X nào bạn đang chạy? Các phần bên trong của OS X có xu hướng thay đổi khá mạnh mẽ giữa các phiên bản chính.
Majenko

5
@Cawas: xóa dịch vụ rất đơn giản: bạn vào danh sách trong Tùy chọn hệ thống và bỏ chọn chúng. Những gì Lri muốn làm, vì một số lý do, là loại bỏ chúng và làm cho chúng không thể khôi phục. Tại sao nó phải dễ dàng để phá vỡ công cụ?
LaC

@LaC có lẽ là vấn đề của hương vị trong trường hợp này. Trong trường hợp của tôi, tôi muốn Expose cũ tốt. nhưng hãy để tôi đảo ngược câu hỏi của bạn: thật đơn giản để thêm dịch vụ vào danh sách đó - tại sao không nên đơn giản để xóa hoàn toàn và giữ sạch sẽ nếu quản trị viên mong muốn?
cregox

AFAICT, nó chỉ đơn giản như vậy. Bạn thêm một dịch vụ bằng cách đưa nó vào Thư viện / Dịch vụ hoặc cài đặt một ứng dụng cung cấp nó. Bạn xóa dịch vụ bằng cách xóa dịch vụ đó khỏi Thư viện / Dịch vụ hoặc xóa ứng dụng cung cấp dịch vụ đó.
LaC

Câu trả lời:


3
#!/bin/sh

applist="Path Finder
Skim
TextWrangler"
IFS=$'\n'

for appname in $applist; do
    apppath=$(mdfind -onlyin /Applications/ -onlyin ~/Applications/ \
    -onlyin /Developer/Applications/ -onlyin /System/Library/CoreServices/ \
    'kMDItemKind == Application' | grep -i "/$appname.app$" | head -1)
    echo $apppath
    date=$(date '+%y%m%d%-H%M%S')
    cp "$apppath/Contents/Info.plist" "$apppath/Contents/Info-$date.plist"
    defaults delete "$apppath/Contents/Info" NSServices
    codesign -f -s - "$apppath"
done

Bất kỳ loại chứng chỉ cụ thể trong bước 2?
Daniel Beck
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.