Qu'est-ce que Coreduetd?

17

Depuis Yosemite et dans tous les systèmes d'exploitation ultérieurs, OS X / macOS exécute coreduetd à partir de / usr / libexec / coreduetd avec le bundle-id com.apple.coreduetd.osx en arrière-plan.

  • Que fait exactement ce processus?
  • Sur quel matériel cela fonctionne-t-il (c'est-à-dire: sa fonctionnalité est-elle prise en charge)?
  • Peut-il être désactivé?
  • Comment peut-il être désactivé?
  • Doit-il être désactivé?
  • Quels sont les effets secondaires (potentiels) de sa désactivation (dépendances)?

Cette question ne doit pas être lue comme un problème YX mais comme une tentative d'ajouter éventuellement à la liste des questions canoniques.

LаngLаngС
la source
Nous devrions en parler sur Ask Different Meta - c'est aussi une question canonique pour celle que nous voulons fermer comme «trop large» et «trop wiki» - nous ne voulons pas encourager les questions qui manquent d'une question pratique à résoudre et nous vous ne voulez certainement pas écrire un livre «macOS system internals» un chapitre à la fois et un démon à la fois. Je m'abstiendrai de fermer à partir de maintenant - mais il y a des problèmes fondamentaux à le faire systématiquement à l'OMI.
bmike
avez-vous déjà installé un Apogee Duet?
Lane

Réponses:

14

Il n'y a pas grand-chose sur le Web quant à ce qui coreduetdfonctionne sur un Mac autre que "il est utilisé pour le transfert entre iOS et macOS".

Qu'est-ce que ça fait?

Il assure le suivi de vos différents états du système et des applications, y compris les états sur vos appareils Apple.

Peut-il être désactivé?

Techniquement, oui en utilisant launchctl. Cependant, je (fortement) ne recommande pas de le faire.

Doit-il être désactivé?

Question complètement subjective. Vous seul pouvez décider si c'est le bon cours pour vous. Encore une fois, je vous recommande de ne pas le faire.

Quels sont les effets secondaires (potentiels) de sa désactivation (dépendances)?

Potentiellement, les éléments suivants peuvent être affectés :

  • Le transfert entre iOS et macOS serait affecté
  • Synchronisation iCloud
  • Synchronisation des messages avec Office 365

Cependant, en faisant un peu de recherche, j'ai pu trouver un projet de recherche sur la sécurité iOS (sur http://sans.org ) qui a examiné le coreduet.dbfichier sur iOS. J'ai appliqué cette réflexion au coreduet.dbfichier sur macOS. Voici ce que j'ai trouvé ...

En faisant une copie du coreduet.dbfichier, je l'ai examiné dans sqlite3 en obtenant d'abord une liste de toutes les tables

$ 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>

Il semble qu'il y ait un certain nombre d'événements dont il assure le suivi. Cependant, pour voir ce que nous avons pu voir, j'ai ouvert la table 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>

Cette base de données particulière semble suivre les événements du système. Étant donné que je suis sur un iMac, il serait logique que je n'ai pas de choses comme "BatteryEvent" ou "PlugInEvent", mais j'aurais "AppStateChangeEvents". "AirplaneMode" est un peu déroutant car il s'agit d'un iMac, mais je garde généralement mon WiFi éteint, sauf pour les tests; à un moment donné, cet état a été ajouté à la base de données.

En allant un peu plus loin dans CCDMAirplaneModeEvent, nous pouvons voir qu'il suit non seulement quand, mais l'événement a eu lieu (bien que ma base de données ait des 0données pour ces champs) et par qui.

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
Allan
la source
2
Excellent, mais comme vous le faites remarquer: ne le touchez pas ...
Solar Mike
En effet. Très rapide et déjà très bon. Et la «synchronisation des messages avec Office 365» est déjà affectée sur un iMac local et stationnaire? Voilà une surprise.
LаngLаngС
1
Je pense que vous êtes sur la mauvaise voie ici. Si vous recherchez l'application console, les principaux messages enregistrés sont la gestion de l'alimentation. Mon intuition est que le cadre est et sera toujours un cadre privé afin qu'Apple n'ait pas à publier aucune sorte d'API aux développeurs et qu'il sera accessible via l'indirection et d'autres API plus stables. Il doit suivre le mode AirPlane et l'état du système pour savoir quand et comment réveiller le CPU pour exécuter les tâches planifiées - gérer les budgets d'alimentation sur le matériel / CPU / GPU.
bmike
1
@bmike - Je ne pense pas. En examinant les AppStateChangeEvents, il y a des données de localisation incluses qui contiennent des données non uniques. Théoriquement, il devrait en être de même s'il ne s'agissait que de puissance. Cependant, je suis d'accord avec vous, c'est un cadre privé pour Apple.
Allan