Що таке coreduetd?


17

Оскільки Yosemite і в кожній наступній операційній системі OS X / macOS працює coreduetd від / usr / libexec / coreduetd з bundle-id com.apple.coreduetd.osx у фоновому режимі.

  • Що саме робить цей процес?
  • На якому апаратному забезпеченні це працює (тобто: чи підтримується його функціональність)?
  • Чи можна його відключити?
  • Як це можна відключити?
  • Чи слід його відключити?
  • Які (потенційні) побічні ефекти відключення (залежності)?

Це питання слід розглядати не як проблему YX, а спробу остаточно додати до списку канонічних питань.


Ми повинні говорити про це на Ask Different Meta - це також канонічне питання для того, кого ми хочемо закрити як «занадто широкий» і «занадто wiki» - ми не хочемо заохочувати питання, які не мають практичного питання для вирішення, і ми звичайно не хочу писати книгу "внутрішні системи macOS" одну главу раз і один демон на час. Я зараз утримаюсь від закриття - але є принципові проблеми із систематичним виконанням ІМО.
bmike

у вас колись був встановлений дует «Апогей»?
Провулок

Відповіді:


14

В Інтернеті не так багато, що coreduetdробити на Mac, окрім "він використовується для Handoff між iOS та macOS".

Що це робить?

Він відстежує різні стан вашої системи та програм, включаючи стани на ваших пристроях Apple.

Чи можна його відключити?

Технічно, так, використовуючи launchctl. Хоча я (настійно) не рекомендую цього робити.

Чи слід його відключити?

Повністю суб'єктивне питання. Тільки ви можете вирішити, чи це правильний курс для вас. Знову рекомендую вам цього не робити.

Які (потенційні) побічні ефекти відключення (залежності)?

Потенційно це може вплинути на таке :

  • Перешкода між iOS та macOS впливатиме
  • iCloud синхронізація
  • Синхронізація пошти з 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

2
Відмінно, але як ви зазначаєте: не чіпайте його ...
Сонячний Майк

Справді. Дуже швидко і вже дуже добре. А "Синхронізація пошти з Office 365" вже впливає на локальний стаціонарний iMac? Це несподіванка.
LаngLangС

1
Я думаю, ти тут на неправильному шляху. Якщо ви шукаєте консольний додаток, основними повідомленнями, які входять у систему, є обробка електроенергією. Моя думка полягає в тому, що фреймворк є і завжди буде приватним фреймворком, так що Apple не мусить публікувати розробникам будь-який API і що він буде доступний за допомогою непрямих та інших більш стабільних API. Потрібно відстежувати режим AirPlane та стан системи, щоб знати, коли та як розбудити процесор для виконання запланованих завдань - керувати бюджетами живлення на апаратному / CPU / GPU.
bmike

1
@bmike - я не думаю. Розглядаючи AppStateChangeEvents, є дані про місцезнаходження, які містять унікальні дані. Теоретично воно повинно бути таким же, якби це було лише енергетичним керуванням. Хоча, я згоден з вами, це приватна основа для Apple.
Алан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.