В Интернете не так много о том, что coreduetd
делает на Mac, кроме «он используется для передачи обслуживания между iOS и macOS».
Что это делает?
Он отслеживает различные состояния системы и приложений, в том числе состояния на устройствах Apple.
Это можно отключить?
Технически, да, используя launchctl
. Хотя я (очень) не рекомендую этого делать.
Должен ли он быть отключен?
Полностью субъективный вопрос. Только вы можете решить, подходит ли вам этот курс. Опять же, я рекомендую вам этого не делать.
Каковы (потенциальные) побочные эффекты его отключения (зависимости)?
Потенциально может быть затронуто следующее :
- Это повлияет на передачу обслуживания между iOS и macOS
- iCloud Sync
- Синхронизация почты с Office 365
Однако, немного потрудившись, я смог найти проект исследования безопасности iOS (на http://sans.org ), который исследовал coreduet.db
файл на iOS. Я применил это мышление к coreduet.db
файлу в macOS. Вот что я нашел ...
Делая копию coreduet.db
файла, я изучил ее в sqlite3, сначала получив список всех таблиц.
$ sudo cp /var/db/CoreDuet/coreduet.db ~/
$ sudo sqlite3 coreduet.db
sqlite> .tables
ZCDDMAIRPLANEMODEEVENT ZCDDMFORECASTINTEGER ZCDDMSTATISTICINTEGER
ZCDDMAPPNAMEMAPPER ZCDDMFORECASTREAL ZCDDMSTATISTICREAL
ZCDDMAPPSTATECHANGEEVENT ZCDDMFORECASTSCORE ZCDDMSTATISTICSTRING
ZCDDMATTRIBUTENAMEMAPPER ZCDDMFORECASTSTRING ZCDDMSTRINGATTRIBUTE
ZCDDMBACKLIGHTEVENT ZCDDMINTEGERATTRIBUTE ZCDDMTHERMALEVENT
ZCDDMBATTERYEVENT ZCDDMPLUGINEVENT ZCDDMWAKEDNESSEVENT
ZCDDMBOOKKEEPING ZCDDMPOOL Z_METADATA
ZCDDMBOOTORSHUTDOWNEVENT ZCDDMPOOLNAMEMAPPER Z_MODELCACHE
ZCDDMDEVICEEVENT ZCDDMREALATTRIBUTE Z_PRIMARYKEY
ZCDDMDEVICEMAPPER ZCDDMSCREENLOCKEVENT
ZCDDMFORECAST ZCDDMSLEEPORWAKEEVENT
sqlite>
Похоже, что есть ряд событий, которые он отслеживает. Однако, чтобы увидеть то, что мы могли видеть, я открыл таблицу Z_PRIMARYKEY:
sqlite> SELECT * FROM Z_PRIMARYKEY;
1|CDDMAirplaneModeEvent|0|81
2|CDDMAppNameMapper|0|218
3|CDDMAppStateChangeEvent|0|185302
4|CDDMAttributeNameMapper|0|101
5|CDDMBacklightEvent|0|0
6|CDDMBatteryEvent|0|0
7|CDDMBookkeeping|0|1
8|CDDMBootOrShutdownEvent|0|0
9|CDDMDeviceEvent|0|0
10|CDDMDeviceMapper|0|0
11|CDDMForecast|0|0
12|CDDMForecastInteger|0|0
13|CDDMForecastReal|0|0
14|CDDMForecastScore|0|0
15|CDDMForecastString|0|0
16|CDDMIntegerAttribute|0|0
17|CDDMPluginEvent|0|0
18|CDDMPool|0|79
19|CDDMPoolNameMapper|0|66
20|CDDMRealAttribute|0|0
21|CDDMScreenLockEvent|0|0
22|CDDMSleepOrWakeEvent|0|17
23|CDDMStatisticInteger|0|0
24|CDDMStatisticReal|0|0
25|CDDMStatisticString|0|0
26|CDDMStringAttribute|0|7293
27|CDDMThermalEvent|0|0
28|CDDMWakednessEvent|0|0
sqlite>
Эта конкретная база данных отслеживает системные события. Учитывая, что я нахожусь на iMac, имело бы смысл, что у меня нет таких вещей, как «BatteryEvent» или «PlugInEvent», но у меня будет «AppStateChangeEvents». «AirplaneMode» немного сбивает с толку, так как это iMac, но я вообще отключаю WiFi, за исключением тестирования; в какой-то момент это состояние было добавлено в базу данных.
Идя немного дальше в CCDMAirplaneModeEvent, мы видим, что он отслеживает не только когда, но и где произошло событие (хотя в моей базе данных есть 0
данные для этих полей) и кем.
select * FROM ZCDDMAIRPLANEMODEEVENT;
Z_PK Z_ENT Z_OPT ZAIRPLANEMODEON ZANONYMIZEDBEACON ZANONYMIZEDLOCATION ZLOCALDAYSSINCESUNDAY ZLOCALTIME ZLOCALTIMEQUARTERHOURSLOT ZNETWORKQUALITY ZUSERID ZCREATIONDATE
---------- ---------- ---------- --------------- ----------------- ------------------- --------------------- ---------- ------------------------- --------------- ---------- -------------
81 1 1 0 0 0 0 80704 0 0 0 523938304