ฉันต้องการลบแอปพลิเคชันออกจากบริการระบุตำแหน่งในการตั้งค่าความปลอดภัยและความเป็นส่วนตัวบน MaC OS X 10.8 Mountain Lion (แอพยังคงอยู่ในรายการแม้ว่าพวกเขาจะถูกถอนการติดตั้ง) ฉันพบโพสต์ลบแอปพลิเคชันจากบริการตำแหน่งในความปลอดภัยและความเป็นส่วนตัวบน Mac OS X 10.7และนั่นทำให้ฉันไปในทิศทางที่ถูกต้อง นี่คือ OS X 10.8.2 Mountain Lion ที่เทียบเท่ากับที่ใช้งานได้สำหรับฉัน ความแตกต่างหลักคือที่ตั้งของไฟล์ clients.plist ฉันยังต้องการที่จะให้กระบวนการทีละขั้นตอน
การปฏิเสธความรับผิด: สิ่งนี้ได้ผลสำหรับฉัน ตรวจสอบให้แน่ใจว่าคุณมีระบบสำรองที่ดี กระบวนการนี้รวมถึงการสำรองข้อมูลของไฟล์ clients.plist แต่ไม่มีทางปลอดภัยเกินไป
1. เริ่มเทอร์มินัลจากนั้น sudo ไปที่รูทเชลล์
sudo -s
2. ไปที่ / var / db / locationd
cd /var/db/locationd
3. ทำการสำรองข้อมูลของไฟล์ clients.plist
cp -p clients.plist clients.plist.save
4. แปลง clients.plist เป็น xml (รูปแบบที่แก้ไขได้)
plutil -convert xml1 clients.plist
5. ใช้ vi (vim) เพื่อแก้ไขไฟล์ clients.plist และลบแอปพลิเคชันออก
vi clients.plist
ไฟล์ดังกล่าวอาจมีรายการแอปพลิเคชันจำนวนมาก นี่คือรูปแบบของรายการแอปพลิเคชันเดียว (Safari ในกรณีนี้) ต้องลบรายการทั้งหมด
<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. แปลงไฟล์ clients.plist กลับไปเป็นไบนารี
plutil -convert binary1 clients.plist
7. รีสตาร์ท locationd
killall locationd
หากแอปยังคงอยู่ที่นั่นให้ทำกระบวนการอีกครั้งยกเว้นรีสตาร์ท locationd โดยใช้ kill -9 หลังจากพิจารณา PID ดังต่อไปนี้ PID เป็นฟิลด์ที่สองในเอาต์พุต ps
ps -ef | grep locationd | grep -v grep
เอาท์พุท: 205 427 1 0 6:31PM ?? 0:00.07 /usr/libexec/locationd
kill -9 427
ฉันรันกระบวนการสองครั้งเพื่อลบแอปหนึ่งครั้ง ครั้งแรก killall เพียงพอแล้ว ครั้งที่สองมันไม่ได้ ฉันไม่รู้ว่าทำไม. มันทำหน้าที่เหมือน locationd ที่เก็บแคชและสร้าง clients.plist ใหม่ ฉันพูดแบบนี้เพราะรายการที่ถูกเพิ่มกลับไปยังไคลเอนต์กรุณาหลังจากรัน killall - และแม้ในการรีบูต ไม่ว่าจะเกิดจากสาเหตุใดการใช้ kill -9 แก้ปัญหาให้ฉัน
หากสิ่งต่าง ๆ ไม่ดีให้คัดลอกไฟล์ต้นฉบับและเริ่มตำแหน่งใหม่
cp -p clients.plist.save clients.plist
killall locationd
(หรือวิธีฆ่า -9)
ฉันหวังว่านี่จะช่วยได้. ไชโย!