Não há muito na web sobre o que coreduetd
faz em um Mac além de "ele é usado para Handoff entre iOS e macOS".
O que isso está fazendo?
Ele monitora seus vários estados de sistema e aplicativo, incluindo estados em seus dispositivos Apple.
Pode ser desativado?
Tecnicamente, sim, usando launchctl
. No entanto, eu (altamente) não recomendo fazê-lo.
Deve ser desativado?
Pergunta completamente subjetiva. Somente você pode decidir se esse é o caminho certo para você. Mais uma vez, eu recomendo que você não.
Quais são os efeitos colaterais (potenciais) de sua desativação (dependências)?
Potencialmente, o seguinte pode ser afetado :
- A transferência entre iOS e macOS seria afetada
- sincronização do iCloud
- Sincronização de email com o Office 365
No entanto, pesquisando um pouco, consegui encontrar um projeto de pesquisa de segurança para iOS (em http://sans.org ) que examinava o coreduet.db
arquivo no iOS. Eu apliquei esse pensamento ao coreduet.db
arquivo no macOS. Aqui está o que eu encontrei ...
Ao fazer uma cópia do coreduet.db
arquivo, examinei-o no sqlite3, obtendo primeiro uma lista de todas as tabelas
$ 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>
Parece que há vários eventos que ele acompanha. No entanto, para ver o que poderíamos ver, abri a tabela 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>
Esse banco de dados específico parece rastrear eventos do sistema. Dado que estou em um iMac, faria sentido que eu não possua coisas como "BatteryEvent" ou "PlugInEvent", mas teria "AppStateChangeEvents". "AirplaneMode" é um pouco confuso, pois é um iMac, mas geralmente mantenho meu WiFi desligado, exceto para testes; em algum momento, esse estado foi adicionado ao banco de dados.
Indo um pouco mais longe no CCDMAirplaneModeEvent, podemos ver que ele rastreia não apenas quando, mas onde o evento ocorreu (embora meu banco de 0
dados possua dados para esses campos) e por quem.
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