Skip to main content

Search for interesting internal preferences inside a connected iDevice

Project description

cfprefsmon

Overview

cfprefsmon streams CFPreferences activity so you can spot interesting keys and values on a macOS host or a connected iOS device.

Installation

python3 -m pip install -U cfprefsmon

Usage

 Usage: cfprefsmon [OPTIONS] COMMAND [ARGS]...

 Inspect CFPreferences activity on macOS hosts and iOS devices.

╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion          Install completion for the current shell.                                                           │
│ --show-completion             Show completion for the current shell, to copy it or customize the installation.                    │
│ --help                        Show this message and exit.                                                                         │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ host     Stream CFPreferences activity from the macOS host.                                                                       │
│ mobile   Stream CFPreferences activity from a connected iOS device.                                                               │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Examples

In this example, several preferences resolve to None, which can hint at uninitialized or internal-only settings.

➜  cfprefmon git:(master) ✗ cfprefsmon mobile
CFPreference[com.apple.springboard][kCFPreferencesAnyUser][SBDisableHomeButton] = 0   # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.springboard][kCFPreferencesAnyUser][SBStoreDemoAppLock] = 0   # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.springboard][kCFPreferencesAnyUser][ThermalLockoutEnabledBrickMode] = 0   # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.backboardd][kCFPreferencesAnyUser][BKForceMirroredOrientation] = None  # Process: /usr/libexec/backboardd
CFPreference[com.apple.backboardd][kCFPreferencesAnyUser][BKForceMirroredOrientation] = None  # Process: /usr/libexec/backboardd
CFPreference[com.apple.iokit.IOMobileGraphicsFamily][kCFPreferencesAnyUser][canvas_width] = None  # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.iokit.IOMobileGraphicsFamily][kCFPreferencesAnyUser][canvas_height] = None  # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.iokit.IOMobileGraphicsFamily][kCFPreferencesAnyUser][enable_ktrace] = None  # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.iokit.IOMobileGraphicsFamily][kCFPreferencesAnyUser][override_display_width] = None  # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.iokit.IOMobileGraphicsFamily][kCFPreferencesAnyUser][override_display_height] = None  # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.iokit.IOMobileGraphicsFamily][kCFPreferencesAnyUser][override_panel_width] = None  # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.iokit.IOMobileGraphicsFamily][kCFPreferencesAnyUser][override_panel_height] = None  # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.iokit.IOMobileGraphicsFamily][kCFPreferencesAnyUser][benchmark] = None  # Process: /System/Library/CoreServices/SpringBoard.app/SpringBoard
CFPreference[com.apple.coreservices.useractivityd][kCFPreferencesAnyUser][ActivityAdvertisingAllowed] = 1   # Process: /System/Library/PrivateFrameworks/UserActivity.framework/Agents/useractivityd
CFPreference[com.apple.coreservices.useractivityd][kCFPreferencesAnyUser][ActivityAdvertisingAllowed] = 1   # Process: /System/Library/PrivateFrameworks/UserActivity.framework/Agents/useractivityd
CFPreference[com.apple.coreservices.useractivityd][kCFPreferencesAnyUser][EnableHandoffInPowerSaverMode] = 1   # Process: /System/Library/PrivateFrameworks/UserActivity.framework/Agents/useractivityd
...

Filter to a single domain and specific users:

cfprefsmon mobile --domain 'com.apple.softwareupdateservicesd' --user 'kCFPreferencescurrentUser' --user 'mobile'

Only output entries when values change during monitoring:

cfprefsmon mobile --value-change

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cfprefsmon-2.0.0.tar.gz (44.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cfprefsmon-2.0.0-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

Details for the file cfprefsmon-2.0.0.tar.gz.

File metadata

  • Download URL: cfprefsmon-2.0.0.tar.gz
  • Upload date:
  • Size: 44.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cfprefsmon-2.0.0.tar.gz
Algorithm Hash digest
SHA256 f92057959e5afb51a67c30c868256fa4f6a90244a20a990bc7301da010a5ab59
MD5 37c446a55d871c841644f72d649afb12
BLAKE2b-256 b99453cbe6065879b52502b95cd7f209d4ceb3ce69d1542466aed8eb6d77dc97

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfprefsmon-2.0.0.tar.gz:

Publisher: python-publish.yml on doronz88/cfprefsmon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cfprefsmon-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: cfprefsmon-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 29.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cfprefsmon-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 56f92f6b9f1429fe262f54979327ef0502fb67f91f8d9288b683426ab00d455b
MD5 d45dc0f93e29918c2884ef9d482ec5dc
BLAKE2b-256 506f6d761593c91f7cd7ba9ea9f088d697804f62a708f0a3701eaa3547e231fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for cfprefsmon-2.0.0-py3-none-any.whl:

Publisher: python-publish.yml on doronz88/cfprefsmon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page