Was ist coreduetd?

17

Seit Yosemite und in jedem späteren Betriebssystem OS X / macOS wird coreduetd von / usr / libexec / coreduetd mit der Bundle-ID com.apple.coreduetd.osx im Hintergrund ausgeführt.

  • Was genau macht dieser Prozess?
  • Auf welcher Hardware läuft dies (dh: wird seine Funktionalität unterstützt)?
  • Kann es deaktiviert werden?
  • Wie kann es deaktiviert werden?
  • Sollte es deaktiviert sein?
  • Was sind die (potenziellen) Nebenwirkungen einer Deaktivierung (Abhängigkeiten)?

Diese Frage sollte nicht als YX-Problem verstanden werden, sondern als Versuch, sie schließlich zur Liste der kanonischen Fragen hinzuzufügen .

LаngLаngС
quelle
Wir sollten darüber auf Ask Different Meta sprechen - es ist auch eine kanonische Frage für eine, die wir als "zu breit" und "zu wiki" schließen möchten - wir möchten keine Fragen anregen, denen eine praktische Frage fehlt, und wir Ich möchte auf keinen Fall ein Kapitel über "MacOS-System-Interna" schreiben, sondern nur ein Kapitel und einen Dämon. Ich werde ab sofort nicht mehr schließen - aber es gibt grundlegende Probleme, dies systematisch zu tun, IMO.
bmike
Hattest du jemals ein Apogee Duet installiert?
Lane

Antworten:

14

Im Web gibt es nicht viel darüber, was coreduetdauf einem Mac funktioniert, außer "es wird für die Übergabe zwischen iOS und macOS verwendet".

Was macht es?

Es verfolgt Ihre verschiedenen System- und Anwendungsstatus, einschließlich der Status auf Ihren Apple-Geräten.

Kann es deaktiviert werden?

Technisch ja ja mit launchctl. Ich empfehle dies jedoch (sehr) nicht.

Sollte es deaktiviert sein?

Völlig subjektive Frage. Nur Sie können entscheiden, ob dies der richtige Kurs für Sie ist. Auch hier empfehle ich, dass Sie nicht.

Was sind die (potenziellen) Nebenwirkungen einer Deaktivierung (Abhängigkeiten)?

Möglicherweise kann Folgendes betroffen sein :

  • Die Übergabe zwischen iOS und macOS wäre betroffen
  • iCloud-Synchronisierung
  • Mail-Synchronisierung mit Office 365

Ich konnte jedoch ein wenig nachforschen und ein iOS-Sicherheitsforschungsprojekt (auf http://sans.org ) finden, das die coreduet.dbDatei unter iOS untersuchte. Ich habe dieses Denken auf die coreduet.dbDatei unter macOS angewendet . Folgendes habe ich gefunden ...

coreduet.dbIch habe eine Kopie der Datei erstellt und sie in sqlite3 untersucht, indem ich zuerst eine Liste aller Tabellen erhalten habe

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

Es scheint, dass es eine Reihe von Ereignissen gibt, die verfolgt werden. Um jedoch zu sehen, was wir sehen konnten, habe ich die Tabelle Z_PRIMARYKEY geöffnet:

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>

Diese bestimmte Datenbank scheint Systemereignisse zu verfolgen. Da ich mich auf einem iMac befinde, wäre es sinnvoll, dass ich keine Dinge wie "BatteryEvent" oder "PlugInEvent" habe, sondern "AppStateChangeEvents". "AirplaneMode" ist etwas verwirrend, da es sich um einen iMac handelt, aber ich halte mein WLAN im Allgemeinen außer zum Testen ausgeschaltet. Irgendwann wurde dieser Status zur Datenbank hinzugefügt.

Wenn wir etwas weiter in das CCDMAirplaneModeEvent gehen, können wir sehen, dass es nicht nur verfolgt, wann, sondern wo das Ereignis stattgefunden hat (obwohl meine Datenbank 0Daten für diese Felder enthält) und von wem.

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
quelle
2
Ausgezeichnet, aber wie Sie betonen: Berühren Sie es nicht ...
Solar Mike
Tatsächlich. Sehr schnell und schon sehr gut. Und "Mail-Synchronisierung mit Office 365" ist bereits auf einem lokalen, stationären iMac betroffen? Das ist eine Überraschung.
LаngLаngС
1
Ich denke, Sie sind hier auf dem falschen Weg. Wenn Sie die Konsolen-App durchsuchen, werden hauptsächlich die Nachrichten protokolliert. Meine Vermutung ist, dass das Framework ein privates Framework ist und immer sein wird, damit Apple keine API für Entwickler veröffentlichen muss und es über Indirektion und andere stabilere APIs erreichbar ist. Es muss den AirPlane-Modus und den Systemstatus verfolgen, um zu wissen, wann und wie die CPU für die Ausführung geplanter Aufgaben aktiviert werden muss. Verwalten Sie die Strombudgets auf der Hardware / CPU / GPU.
bmike
1
@bmike - Das glaube ich nicht. Bei der Untersuchung der AppStateChangeEvents sind Standortdaten enthalten, die nicht eindeutige Daten enthalten. Theoretisch sollte es dasselbe sein, wenn es sich nur um Power-Handling handelt. Ich stimme Ihnen jedoch zu, dass es sich um ein privates Framework für Apple handelt.
Allan