Co to jest Coreduetd?

17

Od Yosemite i w każdym późniejszym systemie operacyjnym OS X / macOS uruchamia coreduetd z / usr / libexec / coreduetd z pakietem id com.apple.coreduetd.osx w tle.

  • Co dokładnie robi ten proces?
  • Na jakim sprzęcie to działa (tj .: czy obsługiwana jest jego funkcjonalność)?
  • Czy można to wyłączyć?
  • Jak można to wyłączyć?
  • Czy należy to wyłączyć?
  • Jakie są (potencjalne) skutki uboczne wyłączenia (zależności)?

To pytanie nie powinno być interpretowane jako problem YX, ale próba ostatecznego dodania do listy pytań kanonicznych.

LаngLаngС
źródło
Powinniśmy o tym porozmawiać na Ask Different Meta - jest to również pytanie kanoniczne, które chcemy zamknąć jako „zbyt szerokie” i „zbyt wiki” - nie chcemy zachęcać do rozwiązywania pytań, które nie mają praktycznego pytania, a my z pewnością nie chcę pisać „wewnętrznych elementów systemu macOS”, książki jeden rozdział za jednym razem i jeden demon za jednym razem. Powstrzymam się od zamykania od teraz - ale istnieją podstawowe problemy z robieniem tego systematycznie IMO.
bmike
czy kiedykolwiek miałeś zainstalowany Apogee Duet?
Lane

Odpowiedzi:

14

W sieci nie ma zbyt wiele informacji na temat tego, co coreduetdrobi na komputerze Mac, oprócz „służy do przełączania między iOS i macOS”.

Co to robi?

Śledzi różne stany systemu i aplikacji, w tym stany na urządzeniach Apple.

Czy można to wyłączyć?

Technicznie tak, używając launchctl. Chociaż (wysoce) nie polecam tego robić.

Czy należy to wyłączyć?

Pytanie całkowicie subiektywne. Tylko Ty możesz zdecydować, czy jest to właściwy kurs dla Ciebie. Ponownie polecam, żebyś tego nie robił.

Jakie są (potencjalne) skutki uboczne wyłączenia (zależności)?

Potencjalnie może to mieć wpływ na :

  • Wpłynie to na przekazanie między iOS i macOS
  • Synchronizacja iCloud
  • Synchronizacja poczty z Office 365

Jednak robiąc małe zamieszanie, udało mi się znaleźć projekt badawczy bezpieczeństwa iOS (na http://sans.org ), który zbadał ten coreduet.dbplik na iOS. Zastosowałem to myślenie do coreduet.dbpliku na macOS. Oto, co znalazłem ...

Tworząc kopię coreduet.dbpliku, sprawdziłem ją w sqlite3, najpierw uzyskując listę wszystkich tabel

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

Wygląda na to, że śledzi wiele zdarzeń. Jednak aby zobaczyć, co możemy zobaczyć, otworzyłem tabelę 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>

Ta konkretna baza danych wydaje się śledzić zdarzenia systemowe. Biorąc pod uwagę, że jestem na komputerze iMac, miałoby sens, że nie mam takich rzeczy jak „BatteryEvent” lub „PlugInEvent”, ale miałbym „AppStateChangeEvents”. „AirplaneMode” jest nieco mylące, ponieważ jest to iMac, ale generalnie wyłączam WiFi z wyjątkiem testowania; w pewnym momencie stan ten został dodany do bazy danych.

Idąc nieco dalej do CCDMAirplaneModeEvent, możemy zobaczyć, że śledzi nie tylko kiedy, ale gdzie miało miejsce zdarzenie (chociaż moja baza danych zawiera 0dane dla tych pól) i przez kogo.

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
źródło
2
Doskonale, ale jak zauważyłeś: nie dotykaj go ...
Solar Mike
W rzeczy samej. Bardzo szybko i już bardzo dobrze. A czy „Synchronizacja poczty z Office 365” ma już wpływ na lokalnego, stacjonarnego iMaca? To niespodzianka.
LаngLаngС
1
Myślę, że jesteś na złej drodze. Jeśli przeszukujesz aplikację konsolową, główne logowane komunikaty to obsługa zasilania. Mam przeczucie, że platforma jest i zawsze będzie platformą prywatną, dzięki czemu Apple nie będzie musiała publikować żadnego API dla programistów i że będzie osiągalna poprzez pośrednie i inne bardziej stabilne API. Musi śledzić tryb AirPlane i stan systemu, aby wiedzieć, kiedy i jak obudzić CPU, aby uruchomić zaplanowane zadania - zarządzać budżetami energetycznymi na sprzęcie / CPU / GPU.
bmike
1
@bike - nie wydaje mi się. Analizując AppStateChangeEvents, uwzględniono dane lokalizacji, które zawierają nieunikalne dane. Teoretycznie powinno być tak samo, gdyby chodziło tylko o obsługę mocy. Chociaż zgadzam się z Tobą, to prywatna platforma dla Apple.
Allan