Apa itu coreduetd?

17

Sejak Yosemite dan di setiap sistem operasi selanjutnya OS X / macOS menjalankan coreduetd dari / usr / libexec / coreduetd dengan bundle-id com.apple.coreduetd.osx di latar belakang.

  • Apa sebenarnya proses ini?
  • Di perangkat keras mana menjalankan ini (yaitu: apakah fungsinya didukung)?
  • Bisakah ini dinonaktifkan?
  • Bagaimana bisa dinonaktifkan?
  • Haruskah ini dinonaktifkan?
  • Apa efek samping (potensial) dari itu yang dinonaktifkan (dependensi)?

Pertanyaan ini seharusnya tidak dibaca sebagai YX-Problem tetapi upaya untuk akhirnya menambah daftar pertanyaan kanonik.

LаngLаngС
sumber
Kita harus membicarakan hal ini di Ask Different Meta - ini juga merupakan pertanyaan kanonik untuk pertanyaan yang ingin kita tutup sebagai “terlalu luas” dan “terlalu wiki” - kami tidak ingin mendorong pertanyaan yang kekurangan pertanyaan praktis untuk diselesaikan dan kami tentu saja tidak ingin menulis "sistem internal macOS" buku satu bab satu kali dan satu daemon waktu. Saya akan menahan diri untuk tidak menutup dari sekarang - tetapi ada masalah mendasar dengan melakukan IMO ini secara sistematis.
bmike
apakah Anda pernah memasang Apogee Duet?
Lane

Jawaban:

14

Tidak banyak di web tentang apa yang coreduetddilakukan pada Mac selain "digunakan untuk Handoff antara iOS dan macOS."

Apa yang sedang dilakukannya?

Ini melacak berbagai status sistem dan aplikasi Anda termasuk status di seluruh perangkat Apple Anda.

Bisakah ini dinonaktifkan?

Secara teknis, ya menggunakan launchctl. Padahal, saya (sangat) tidak merekomendasikan melakukannya.

Haruskah ini dinonaktifkan?

Pertanyaan yang sepenuhnya subjektif. Hanya Anda yang bisa memutuskan apakah ini jalan yang tepat untuk Anda. Sekali lagi, saya sarankan Anda tidak melakukannya.

Apa efek samping (potensial) dari itu yang dinonaktifkan (dependensi)?

Secara potensial, hal-hal berikut mungkin terpengaruh :

  • Handoff antara iOS dan macOS akan terpengaruh
  • Sinkronisasi iCloud
  • Sinkronisasi email dengan Office 365

Namun melakukan sedikit sleuthing, saya dapat menemukan proyek penelitian keamanan iOS (di http://sans.org ) yang memeriksa coreduet.dbfile di iOS. Saya menerapkan pemikiran itu ke coreduet.dbfile di macOS. Inilah yang saya temukan ...

Membuat salinan coreduet.dbfile, saya memeriksanya di sqlite3 dengan terlebih dahulu mendapatkan daftar semua 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>

Tampaknya ada sejumlah acara yang dilacaknya. Namun, untuk melihat apa yang bisa kita lihat, saya membuka 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>

Database khusus ini muncul untuk melacak peristiwa sistem. Mengingat saya menggunakan iMac, masuk akal jika saya tidak memiliki hal-hal seperti "BatteryEvent" atau "PlugInEvent", tetapi saya akan memiliki "AppStateChangeEvents". "AirplaneMode" agak membingungkan karena ini adalah iMac, tapi saya biasanya mematikan WiFi kecuali untuk pengujian; di beberapa titik, keadaan ini ditambahkan ke database.

Pergi sedikit lebih jauh ke dalam CCDMAirplaneModeEvent, kita dapat melihat bahwa itu tidak hanya melacak kapan, tetapi di mana peristiwa itu terjadi (meskipun database saya memiliki 0data untuk bidang tersebut) dan oleh siapa.

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
Allan
sumber
2
Luar biasa, tetapi seperti yang Anda tunjukkan: jangan menyentuhnya ...
Solar Mike
Memang. Sangat cepat dan sudah sangat bagus. Dan "Sinkronisasi email dengan Office 365" sudah terpengaruh pada iMac lokal dan stasioner? Itu mengejutkan.
LаngLаngС
1
Saya pikir Anda berada di jalur yang salah di sini. Jika Anda mencari aplikasi konsol, pesan utama yang dicatat adalah penanganan daya. Firasat saya adalah bahwa kerangka kerja ini dan akan selalu menjadi kerangka kerja pribadi sehingga Apple tidak harus menerbitkan segala jenis API kepada pengembang dan bahwa itu akan dapat dicapai melalui tipuan dan API lainnya yang lebih stabil. Perlu melacak mode AirPlane dan status sistem untuk mengetahui kapan dan bagaimana membangunkan CPU untuk menjalankan tugas yang dijadwalkan - kelola anggaran daya pada perangkat keras / CPU / GPU.
bmike
1
@ sepeda - saya pikir tidak. Meneliti AppStateChangeEvents, ada data lokasi yang berisi data yang tidak unik. Secara teoritis, itu harus sama jika itu hanya penanganan daya. Padahal, saya setuju dengan Anda itu adalah kerangka kerja pribadi untuk Apple.
Allan