Mac 的 syspolicyd 使用率高,先找觸發的 App
剛開啟下載的 App,syspolicyd 就排到了 CPU 列表前面,可以先回頭看剛才開了什麼,Apple 的 Gatekeeper 疑難排解說明記錄了 syspolicyd 參與系統政策評估和公證檢查的情況,但單看 CPU 很高,還不能確定它在檢查哪個 App,也不能斷定系統出了問題。
syspolicyd 在檢查什麼
Gatekeeper會協助核對 App Store 以外軟體的開發者身分,Apple 的程式碼簽署指南說明,App 首次啟動時會接受簽章評估,巢狀程式碼也在檢查範圍內,syspolicyd 參與的是這些安全檢查,不是在替 App 處理日常功能。
剛下載的 App 第一次開啟,是值得核對的時間點,如果剛更新了 App、開啟大型 App 套件或多個下載的安裝程式,或者在反覆建置和執行開發版本,就記下 CPU 上升時開啟或替換了哪個套件,這些是排查線索,不代表每次下載和建置都會觸發同樣的評估,也不能據此認定檢查一定更慢。
想查整個程序列表和歸屬,可以看Mac 程序說明,這裡重點看反覆評估某個 App 的情況,不再逐一介紹背景程序。
先留一段沒有新操作的觀察時間
在活動監視器的 CPU 列表看 syspolicyd,記下使用率開始上升和回落的時間,Apple 的活動監視器指南介紹了程序搜尋、依欄位排序和程序資訊視窗。
- 記下使用率上升前的 App 名稱、版本和操作。
- 讓已經開始的安裝完成,期間不再開啟新的 App。
- 暫停自己反覆建置和啟動的操作,或排隊開啟 App 的工作。
- 連續看幾次 CPU 讀數,再單獨試一個已知 App。
停止新操作後使用率回落,是一條有用的線索,但還不能確定之前哪個 App 觸發了檢查,這個方法沒有固定等待時間,比起一次讀數變低,持續回到沒有操作時的水準更有參考價值。
區分首次檢查和能重複出現的問題
每次只變一個條件,前後才容易比較。
| 觀察到的情況 | 能說明什麼 | 下一步 |
|---|---|---|
| 停止開啟新 App 後使用率下降 | 這段時間裡活動減弱了 | 恢復正常使用,留意是否重現 |
| 每次開啟同一個 App 都伴隨使用率上升 | 有能重複的關聯,還不是原因 | 記下版本,檢查這份 App |
| 沒找到觸發操作,使用率仍持續很高 | 首次啟動還解釋不了全部情況 | 保留觀察紀錄,聯絡 Apple 支援 |
如果涉及反覆建置,等沒有操作時的比較完成後,再恢復一次建置並記下結果,使用率重新上升就停止這次實驗,不要同時改建置方式、安裝套件來源和安全設定,否則很難判斷哪個變化起了作用。
檢查反覆觸發的那份 App
Apple 的疑難排解說明把簽章損壞和公證問題分開處理,如果同一份 App 反覆打不開,先保留自己的文件,再向開發者取得新的安裝程式,無法開啟的提示和 CPU 上升要分開記錄。
開發者或支援人員需要進一步核對時,Apple 提供了下面的簽章驗證方法,把範例路徑換成要查的那份 App,保留引號。
codesign -v -vvv --strict --deep "/Applications/Example.app"
這條指令檢查程式碼,不會改寫簽章,失敗的結果需要開發者判斷,通過也不代表公證一定正常,更不能解釋 CPU 使用率,把結果、App 版本、macOS 版本和重現時間一起交給開發者,觀察電腦能否恢復平穩時,不要反覆執行驗證。
保留 Gatekeeper 檢查
關閉評估會改變安全邊界,並沒有修好觸發檢查的 App,Apple 的簽署說明解釋了開發者身分和公證的作用,不要為了壓低 CPU 使用率移除隔離屬性,也不要改系統政策資料庫。
如果電腦慢不只發生在這個程序上,可以接著看Mac 為什麼變慢,先分清 CPU 壓力和其他原因,再決定要不要移除 App 或資料。
Mole 能幫上什麼
Mole Mac 的狀態頁會顯示程序的 CPU 和記憶體使用量,按 % CPU 欄可以排序,方便查看忙碌的程序,Mole 不修改 Gatekeeper 政策,用這裡觀察使用率變化就好,不要把排在前面當成結束 syspolicyd 的理由。
常見問題
syspolicyd 使用率高就表示它是惡意軟體嗎?
名稱本身既不能證明可信,也不能證明惡意,先核對程序身分和使用率上升前的操作,再判斷原因。
能關閉 Gatekeeper 來降低 CPU 使用率嗎?
保留安全檢查,去查觸發它的 App 或能重複的操作,找不到觸發條件時,把觀察紀錄交給 Apple 支援,不改安全政策。
為什麼同一個 App 還會觸發?
反覆出現就值得檢查這份 App 和它的更新、建置流程,但僅憑使用率上升,不能斷定簽章損壞、公證失敗或 macOS 有缺陷。