coreduetdとは何ですか?


17

Yosemite以降のすべてのオペレーティングシステムでは、OS X / macOS は、バックグラウンドでbundle-id com.apple.coreduetd.osxを使用して/ usr / libexec / coreduetdからcoreduetdを実行します。

  • このプロセスは正確に何をしていますか?
  • これはどのハードウェアで実行されますか(つまり、その機能はサポートされていますか)?
  • 無効にできますか?
  • どうすれば無効にできますか?
  • 無効にする必要がありますか?
  • 無効にされた場合の(潜在的な)副作用(依存関係)とは何ですか?

この質問はYX-問題として読まれるべきではありませんが、最終的には標準的な質問のリストに追加する試みです。


これについてはAsk Ask Metaで話す必要があります。これは、「広すぎる」および「wikiすぎる」としてクローズしたい人にとっての標準的な質問でもあります。確かに、「macOSシステム内部」の本を一度に1章、デーモンを1冊ずつ書きたくはありません。これから締めくくるのは控えますが、これを体系的にIMOで行うことには根本的な問題があります。
bmike

Apogee Duetをインストールしたことはありますか?
レーン

回答:


14

coreduetd「iOSとmacOSの間のハンドオフに使用される」以外、Macで何ができるかについては、Web上ではあまりありません。

何してるの?

Appleデバイス全体の状態を含む、さまざまなシステムとアプリケーションの状態を追跡します。

無効にできますか?

技術的には、はいを使用していlaunchctlます。しかし、私は(非常に)そうすることをお勧めしません。

無効にする必要がありますか?

完全に主観的な質問。これがあなたにとって正しいコースであるかどうかを判断できるのはあなただけです。繰り返しますが、しないことをお勧めします。

無効にされた場合の(潜在的な)副作用(依存関係)とは何ですか?

潜在的に、以下が影響を受ける可能性があります

  • iOSとmacOS間のハンドオフが影響を受けます
  • iCloud同期
  • Office 365とのメール同期

しかし、少し調べてみると、iOS上のファイルを調べるiOSセキュリティ調査プロジェクトhttp://sans.org)を見つけることができましたcoreduet.db。その考え方を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ですでに影響を受けていますか?それは驚きです。
ロングラング

1
ここで間違った方向に進んでいると思います。コンソールアプリを検索する場合、ログに記録される主なメッセージは電力処理です。フレームワークはプライベートフレームワークであり、常にプライベートフレームワークであるため、Appleは開発者に何らかのAPIを公開する必要がなく、インダイレクションやその他のより安定したAPIを介して到達可能です。AirPlaneモードとシステム状態を追跡して、スケジュールされたタスクを実行するためにCPUを起動するタイミングと方法を知る必要があります-ハードウェア/ CPU / GPUの電力バジェットを管理します。
bmike

1
@bmike-そうは思いません。AppStateChangeEventsを調べると、一意でないデータを含む位置データが含まれています。理論的には、電力処理だけであれば同じであるはずです。ただし、Appleのプライベートフレームワークであることに同意します。
アラン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.