diff --git a/codex-rs/config/src/loader/macos.rs b/codex-rs/config/src/loader/macos.rs
index 53c8a6d20a..1dd279951c 100644
--- a/codex-rs/config/src/loader/macos.rs
+++ b/codex-rs/config/src/loader/macos.rs
@@ -1,3 +1,8 @@
+//! Loads administrator configuration only from forced macOS preferences.
+//!
+//! Ordinary user defaults must never become trusted managed configuration layers.
+//! Forced values must be strings containing base64-encoded TOML.
+
use crate::RequirementsLayerEntry;
use crate::config_requirements::RequirementSource;
use crate::config_toml::ConfigToml;
@@ -8,6 +13,8 @@ use crate::strict_config::config_error_from_ignored_toml_value_fields_for_source
use base64::Engine;
use base64::prelude::BASE64_STANDARD;
use codex_utils_absolute_path::AbsolutePathBufGuard;
+use core_foundation::base::Boolean;
+use core_foundation::base::CFType;
use core_foundation::base::TCFType;
use core_foundation::string::CFString;
use core_foundation::string::CFStringRef;
@@ -21,6 +28,12 @@ const MANAGED_PREFERENCES_APPLICATION_ID: &str = "com.openai.codex";
const MANAGED_PREFERENCES_CONFIG_KEY: &str = "config_toml_base64";
const MANAGED_PREFERENCES_REQUIREMENTS_KEY: &str = "requirements_toml_base64";
+#[link(name = "CoreFoundation", kind = "framework")]
+unsafe extern "C" {
+ fn CFPreferencesCopyAppValue(key: CFStringRef, application_id: CFStringRef) -> *mut c_void;
+ fn CFPreferencesAppValueIsForced(key: CFStringRef, application_id: CFStringRef) -> Boolean;
+}
+
#[derive(Debug, Clone)]
pub(super) struct ManagedAdminConfigLayer {
pub config: TomlValue,
@@ -121,27 +134,73 @@ fn load_managed_admin_requirements() -> io::Result