W sieci nie ma zbyt wiele informacji na temat tego, co coreduetd
robi 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.db
plik na iOS. Zastosowałem to myślenie do coreduet.db
pliku na macOS. Oto, co znalazłem ...
Tworząc kopię coreduet.db
pliku, 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 0
dane 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