什么是coreduetd?


17

从优胜美地开始,在以后的每个操作系统中,OS X / macOS 从/ usr / libexec / coreduetd 运行coreduetd,在后台使用bundle-id com.apple.coreduetd.osx。

  • 这个过程到底在做什么?
  • 此程序在哪个硬件上运行(即:是否支持其功能)?
  • 可以禁用吗?
  • 如何禁用它?
  • 应该禁用吗?
  • 禁用(依赖项)有哪些(潜在)副作用?

该问题不应被理解为YX问题,而应尝试将其最终添加到规范问题列表中。


我们应该在Ask Different Meta上谈论这个问题-这也是我们想以“太宽泛”和“太维基化”结束的一个典型问题-我们不想鼓励那些缺乏实际问题需要解决的问题,我们当然,不想一次写一本“ macOS系统内部知识”书,一次写一本守护程序。我将避免从现在开始关闭-但是系统地执行IMO存在一些基本问题。
bmike

您是否安装了Apogee Duet?

Answers:


14

coreduetd除了“用于iOS和macOS之间的切换”之外,网络上关于Mac 的功能并不多。

到底在做什么

它会跟踪您的各种系统和应用程序状态,包括Apple设备中的状态。

可以禁用吗?

从技术上讲,可以使用launchctl。虽然,我(强烈)不建议这样做。

应该禁用吗?

完全主观的问题。只有您可以决定这是否适合您。同样,我建议您不要这样做。

禁用(依赖项)有哪些(潜在)副作用?

可能会受到以下影响

  • iOS和macOS之间的切换会受到影响
  • iCloud同步
  • 与Office 365进行邮件同步

但是,进行了一些探索之后,我能够找到一个iOS安全研究项目(位于http://sans.org),该项目检查了coreduet.dbiOS上的文件。我将这种想法应用于coreduet.dbmacOS 上的文件。这是我发现的...

制作coreduet.db文件副本后,我首先通过获取所有表的列表在sqlite3中对其进行了检查

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

似乎有许多事件可以跟踪。但是,要查看我们可以看到的内容,我打开了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>

这个特定的数据库似乎在跟踪系统事件。考虑到我使用的是iMac,我没有“ BatteryEvent”或“ PlugInEvent”之类的东西,但我却拥有“ AppStateChangeEvents”是很有意义的。“ AirplaneMode”有点混乱,因为这是一台iMac,但是除了测试外,我通常会关闭WiFi。在某些时候,此状态已添加到数据库中。

进一步说有点进入CCDMAirplaneModeEvent,我们可以看到,它跟踪不只是当,但其中的事件发生(虽然我的数据库中有0这些字段的数据),以及由谁来。

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

2
太好了,但是正如您指出的那样:请不要触摸……
太阳迈克

确实。非常快,已经非常好。并且“与Office 365的邮件同步”已经在本地固定iMac上受到影响了吗?真是令人惊讶
LаngLаngС

1
我认为您在这里走错了路。如果您搜索控制台应用程序,则记录的主要消息是电源处理。我的直觉是,该框架一直并将始终是私有框架,因此Apple不必向开发人员发布任何类型的API,并且可以通过间接和其他更稳定的API来访问它。它需要跟踪AirPlane模式和系统状态,以了解何时以及如何唤醒CPU来运行计划的任务-管理硬件/ CPU / GPU上的电源预算。
bmike

1
@bmike-我不这么认为。检查AppStateChangeEvents,其中包含位置数据,其中包含非唯一数据。从理论上讲,如果只是功率处理,则应该相同。虽然,我同意你的看法,但这是苹果公司的私有框架。
艾伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.