coreduetd 란 무엇입니까?


17

Yosemite 이후의 모든 운영 체제에서 OS X / macOS는 백그라운드 에서 bundle-id com.apple.coreduetd.osx와 함께 / usr / libexec / coreduetd에서 coreduetd 를 실행 합니다.

  • 이 과정은 정확히 무엇을하고 있습니까?
  • 어떤 하드웨어에서이 기능이 실행됩니까 (예 : 기능이 지원됩니까)?
  • 비활성화 할 수 있습니까?
  • 어떻게 비활성화 할 수 있습니까?
  • 비활성화해야합니까?
  • 비활성화 (종속성)로 인한 (잠재적) 부작용은 무엇입니까?

이 질문은 YX 문제로 읽히지 말고 결국 정식 질문 목록에 추가하려는 시도 입니다.


Ask Different Meta 에서 이에 대해 이야기해야합니다. “너무 광범위하고 너무 위키”로 닫고 싶은 사람에게는 정식적인 질문이기도합니다. 실제적인 질문이없는 질문을 해결하고 장려하기를 원하지 않습니다. 한 번에 한 장씩, 한 번에 하나의 데몬으로“macOS 시스템 내부”서적을 작성하고 싶지는 않습니다. 지금부터는 닫지 않겠습니다. 그러나 체계적으로 IMO를 수행하는 데는 근본적인 문제가 있습니다.
bmike

Apogee Duet을 설치 한 적이 있습니까?
Lane

답변:


14

coreduetd에서는 "iOS와 macOS 간의 핸드 오프에 사용되는 것"이외의 Mac에서하는 일에 대해서는별로 없습니다 .

뭐하는거야?

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
훌륭하지만, 당신이 지적한대로 : 그것을 만지지 마십시오 ...
Solar Mike

과연. 매우 빠르고 이미 매우 좋습니다. "Office 365와의 메일 동기화"는 로컬 고정 iMac에서 이미 영향을 받습니까? 놀랍습니다.
LаngLаngС

1
당신이 여기 잘못된 길을 가고 있다고 생각합니다. 콘솔 앱을 검색하면 기록되는 기본 메시지가 전원 처리입니다. 필자의 직감은 프레임 워크가 항상 개인 프레임 워크이므로 Apple이 개발자에게 어떤 종류의 API도 게시 할 필요가 없으며 간접적 인 다른 안정적인 API를 통해 도달 할 수 있다는 것입니다. AirPlane 모드와 시스템 상태를 추적하여 예약 된 작업을 실행하기 위해 CPU를 깨우는시기와 방법을 알아야합니다 (하드웨어 / CPU / GPU에서 전력 예산 관리).
bmike

1
@bmike-나는 그렇게 생각하지 않습니다. AppStateChangeEvents를 검토하면 고유하지 않은 데이터가 포함 된 위치 데이터가 포함됩니다. 이론적으로 전원 처리 만해도 동일해야합니다. 그러나 나는 그것이 당신에게 Apple의 개인 프레임 워크라는 것에 동의합니다.
Allan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.