¿Qué es coreduetd?

17

Desde Yosemite y en cada sistema operativo posterior, OS X / macOS ejecuta coreduetd desde / usr / libexec / coreduetd con el paquete-id com.apple.coreduetd.osx en segundo plano.

  • ¿Qué está haciendo exactamente este proceso?
  • ¿En qué hardware se ejecuta esto (es decir, se admite su funcionalidad)?
  • ¿Se puede deshabilitar?
  • ¿Cómo se puede deshabilitar?
  • ¿Debería estar deshabilitado?
  • ¿Cuáles son los efectos secundarios (potenciales) de su desactivación (dependencias)?

Esta pregunta no debe leerse como un problema YX, sino como un intento de agregarla a la lista de preguntas canónicas.

LаngLаngС
fuente
Deberíamos hablar de esto en Ask Different Meta : también es una pregunta canónica para una que queremos cerrar como "demasiado amplia" y "demasiado wiki". No queremos alentar preguntas que carecen de una pregunta práctica que resolver y nosotros Ciertamente no quiero escribir un libro de "componentes internos del sistema macOS" un capítulo por vez y un demonio por vez. Me abstendré de cerrar a partir de ahora, pero hay problemas fundamentales al hacer esto sistemáticamente en la OMI.
bmike
¿alguna vez has instalado un dúo Apogee?
Carril

Respuestas:

14

No hay mucho en la web en cuanto a lo que coreduetdhace en una Mac que no sea "se usa para la transferencia entre iOS y macOS".

¿Qué está haciendo?

Realiza un seguimiento de los diversos estados de su sistema y aplicación, incluidos los estados en sus dispositivos Apple.

¿Se puede deshabilitar?

Técnicamente, sí, usando launchctl. Sin embargo, no recomiendo hacerlo.

¿Debería estar deshabilitado?

Pregunta completamente subjetiva. Solo usted puede decidir si este es el curso adecuado para usted. Nuevamente, te recomiendo que no lo hagas.

¿Cuáles son los efectos secundarios (potenciales) de su desactivación (dependencias)?

Potencialmente, lo siguiente puede verse afectado :

  • La transferencia entre iOS y macOS se vería afectada
  • sincronización de iCloud
  • Sincronización de correo con Office 365

Sin embargo, haciendo un poco de investigación, pude encontrar un proyecto de investigación de seguridad de iOS (en http://sans.org ) que examinó el coreduet.dbarchivo en iOS. Apliqué ese pensamiento al coreduet.dbarchivo en macOS. Esto es lo que encontré ...

Al hacer una copia del coreduet.dbarchivo, lo examiné en sqlite3 obteniendo primero una lista de todas las tablas

$ 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 hay una serie de eventos de los que realiza un seguimiento. Sin embargo, para ver lo que pudimos ver, abrí la tabla 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>

Esta base de datos en particular parece rastrear los eventos del sistema. Dado que estoy en un iMac, tendría sentido que no tenga cosas como "BatteryEvent" o "PlugInEvent", pero tendría "AppStateChangeEvents". "AirplaneMode" es un poco confuso ya que este es un iMac, pero generalmente mantengo mi WiFi apagado, excepto para las pruebas; en algún momento, este estado se agregó a la base de datos.

Yendo un poco más allá del CCDMAirplaneModeEvent, podemos ver que rastrea no solo cuándo, sino también dónde tuvo lugar el evento (aunque mi base de 0datos tiene datos para esos campos) y quién lo hizo.

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
Alano
fuente
2
Excelente, pero como lo señala: no lo toque ...
Solar Mike
En efecto. Muy rápido y ya muy bueno. ¿Y la "Sincronización de correo con Office 365" ya está afectada en un iMac local fijo? Eso es una sorpresa
LаngLаngС
1
Creo que estás en el camino equivocado aquí. Si busca en la aplicación de consola, los mensajes principales que se registran son manejo de energía. Mi presentimiento es que el marco es y siempre será un marco privado para que Apple no tenga que publicar ningún tipo de API para los desarrolladores y que sea accesible a través de la indirección y otras API más estables. Necesita rastrear el modo AirPlane y el estado del sistema para saber cuándo y cómo activar la CPU para ejecutar tareas programadas: administrar los presupuestos de energía en el hardware / CPU / GPU.
bmike
1
@bmike - No lo creo. Al examinar AppStateChangeEvents, se incluyen datos de ubicación que contienen datos no únicos. Teóricamente, debería ser lo mismo si solo se tratara de manejo de potencia. Sin embargo, estoy de acuerdo con usted, es un marco privado para Apple.
Allan