diff --git a/system_api/LICENSE b/system_api/LICENSE
new file mode 100644
index 0000000..d6ec73d
--- /dev/null
+++ b/system_api/LICENSE
@@ -0,0 +1,27 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//    * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//    * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//    * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/system_api/MODULE_LICENSE_BSD b/system_api/MODULE_LICENSE_BSD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/system_api/MODULE_LICENSE_BSD
diff --git a/system_api/OWNERS b/system_api/OWNERS
new file mode 100644
index 0000000..126836f
--- /dev/null
+++ b/system_api/OWNERS
@@ -0,0 +1,7 @@
+set noparent
+
+# Please get a review from someone who's knowledgeable (per commit history)
+# about the component whose constants you're changing.
+derat@chromium.org
+pstew@chromium.org
+wad@chromium.org
diff --git a/system_api/README b/system_api/README
new file mode 100644
index 0000000..0347fe7
--- /dev/null
+++ b/system_api/README
@@ -0,0 +1,19 @@
+This repository (system_api.git) contains constants and definitions like
+D-Bus service names that are shared between Chromium and Chromium OS.
+
+This repository is only for things like headers and .proto files.
+No implementation should be added.
+
+When writting a .proto file make sure to use:
+"option optimize_for = LITE_RUNTIME;"
+
+This will force usage of a lite protobuf instead of a full/heavy weight
+protobuf. The browser only links against the light version, so you will get
+cryptic link errors about missing parts of Message if you define a protobuf here
+and then try to use it in Chrome. Currently CrOS links against the full
+protobuffer library, but that might change in the future.
+
+When declaring a protobuf, avoid use of required unless it is exactly what you
+mean. "Required is Forever" and very rarely should actually be used. Consult
+http://code.google.com/apis/protocolbuffers/docs/cpptutorial.html for a detailed
+of this issue.
\ No newline at end of file
diff --git a/system_api/codereview.settings b/system_api/codereview.settings
new file mode 100644
index 0000000..d7c8d39
--- /dev/null
+++ b/system_api/codereview.settings
@@ -0,0 +1,4 @@
+# This file is used by gcl to get repository specific information.
+GERRIT_HOST: chromium-review.googlesource.com
+GERRIT_PORT: 29418
+CODE_REVIEW_SERVER: chromium-review.googlesource.com
diff --git a/system_api/constants/cryptohome.h b/system_api/constants/cryptohome.h
new file mode 100644
index 0000000..8238aa9
--- /dev/null
+++ b/system_api/constants/cryptohome.h
@@ -0,0 +1,17 @@
+// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONSTANTS_CRYPTOHOME_H_
+#define CONSTANTS_CRYPTOHOME_H_
+
+#include <stdint.h>
+
+namespace cryptohome {
+
+// Cleanup is trigerred if the amount of free disk space goes below this value.
+const int64_t kMinFreeSpaceInBytes = 512 * 1LL << 20;
+
+}  // namespace cryptohome
+
+#endif  // CONSTANTS_CRYPTOHOME_H_
diff --git a/system_api/dbus/apmanager/dbus-constants.h b/system_api/dbus/apmanager/dbus-constants.h
new file mode 100644
index 0000000..96d180d
--- /dev/null
+++ b/system_api/dbus/apmanager/dbus-constants.h
@@ -0,0 +1,62 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_APMANAGER_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_APMANAGER_DBUS_CONSTANTS_H_
+
+namespace apmanager {
+const char kServiceName[] = "org.chromium.apmanager";
+const char kManagerInterface[] = "org.chromium.apmanager.Manager";
+const char kManagerPath[] = "/manager";
+const char kManagerError[] = "org.chromium.apmanager.Manager.Error";
+const char kServiceInterface[] = "org.chromium.apmanager.Service";
+const char kServiceError[] = "org.chromium.apmanager.Service.Error";
+const char kConfigInterface[] = "org.chromium.apmanager.Config";
+const char kConfigError[] = "org.chromium.apmanager.Config.Error";
+const char kClientInterface[] = "org.chromium.apmanager.Client";
+const char kDeviceInterface[] = "org.chromium.apmanager.Device";
+
+// Manager Methods.
+const char kCreateServiceMethod[] = "CreateService";
+const char kRemoveServiceMethod[] = "RemoveService";
+
+// Config Properties.
+const char kConfigSSIDProperty[] = "Ssid";
+const char kConfigInterfaceNameProperty[] = "InterfaceName";
+const char kConfigSecurityModeProperty[] = "SecurityMode";
+const char kConfigPassphraseProperty[] = "Passphrase";
+const char kConfigHwModeProperty[] = "HwMode";
+const char kConfigOperationModeProperty[] = "OperationMode";
+const char kConfigChannelProperty[] = "Channel";
+const char kConfigHiddenNetworkProperty[] = "HiddenNetwork";
+const char kConfigBridgeInterfaceProperty[] = "BridgeInterface";
+const char kConfigServerAddressIndexProperty[] = "ServerAddressIndex";
+
+// Security modes.
+const char kSecurityModeNone[] = "none";
+const char kSecurityModeRSN[] = "rsn";
+
+// Hardware modes.
+const char kHwMode80211a[] = "802.11a";
+const char kHwMode80211b[] = "802.11b";
+const char kHwMode80211g[] = "802.11g";
+const char kHwMode80211n[] = "802.11n";
+const char kHwMode80211ac[] = "802.11ac";
+
+// Operation modes.
+const char kOperationModeServer[] = "server";
+const char kOperationModeBridge[] = "bridge";
+
+// D-Bus error codes.
+const char kErrorInternalError[] =
+    "org.chromium.apmanager.Error.InternalError";
+const char kErrorInvalidArguments[] =
+    "org.chromium.apmanager.Error.InvalidArguments";
+const char kErrorInvalidConfiguration[] =
+    "org.chromium.apmanager.Error.InvalidConfiguration";
+const char kErrorSuccess[] = "org.chromium.apmanager.Error.Success";
+
+}  // namespace apmanager
+
+#endif  // SYSTEM_API_DBUS_APMANAGER_DBUS_CONSTANTS_H_
diff --git a/system_api/dbus/cros-disks/dbus-constants.h b/system_api/dbus/cros-disks/dbus-constants.h
new file mode 100644
index 0000000..c58af38
--- /dev/null
+++ b/system_api/dbus/cros-disks/dbus-constants.h
@@ -0,0 +1,119 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_CROS_DISKS_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_CROS_DISKS_DBUS_CONSTANTS_H_
+
+namespace cros_disks {
+const char kCrosDisksInterface[] = "org.chromium.CrosDisks";
+const char kCrosDisksServicePath[] = "/org/chromium/CrosDisks";
+const char kCrosDisksServiceName[] = "org.chromium.CrosDisks";
+const char kCrosDisksServiceError[] = "org.chromium.CrosDisks.Error";
+
+// Methods.
+const char kEnumerateAutoMountableDevices[] = "EnumerateAutoMountableDevices";
+const char kEnumerateMountEntries[] = "EnumerateMountEntries";
+const char kFormat[] = "Format";
+const char kGetDeviceProperties[] = "GetDeviceProperties";
+const char kMount[] = "Mount";
+const char kUnmount[] = "Unmount";
+
+// Signals.
+const char kDeviceAdded[] = "DeviceAdded";
+const char kDeviceScanned[] = "DeviceScanned";
+const char kDeviceRemoved[] = "DeviceRemoved";
+const char kDiskAdded[] = "DiskAdded";
+const char kDiskChanged[] = "DiskChanged";
+const char kDiskRemoved[] = "DiskRemoved";
+const char kFormatCompleted[] = "FormatCompleted";
+const char kMountCompleted[] = "MountCompleted";
+
+// Properties.
+// TODO(benchan): Rename 'DeviceIs*' property to 'DiskIs*' as the latter is more
+// accurate.
+const char kDeviceFile[] = "DeviceFile";
+const char kDeviceIsDrive[] = "DeviceIsDrive";
+const char kDeviceIsMediaAvailable[] = "DeviceIsMediaAvailable";
+const char kDeviceIsMounted[] = "DeviceIsMounted";
+const char kDeviceIsOnBootDevice[] = "DeviceIsOnBootDevice";
+const char kDeviceIsOnRemovableDevice[] = "DeviceIsOnRemovableDevice";
+const char kDeviceIsReadOnly[] = "DeviceIsReadOnly";
+const char kDeviceIsVirtual[] = "DeviceIsVirtual";
+const char kDeviceMediaType[] = "DeviceMediaType";
+const char kDeviceMountPaths[] = "DeviceMountPaths";
+const char kDevicePresentationHide[] = "DevicePresentationHide";
+const char kDeviceSize[] = "DeviceSize";
+const char kDriveIsRotational[] = "DriveIsRotational";
+const char kDriveModel[] = "DriveModel";
+const char kExperimentalFeaturesEnabled[] = "ExperimentalFeaturesEnabled";
+const char kIdLabel[] = "IdLabel";
+const char kIdUuid[] = "IdUuid";
+const char kVendorId[] = "VendorId";
+const char kVendorName[] = "VendorName";
+const char kProductId[] = "ProductId";
+const char kProductName[] = "ProductName";
+const char kNativePath[] = "NativePath";
+
+// Enum values.
+// DeviceMediaType enum values are reported through UMA.
+// All values but DEVICE_MEDIA_NUM_VALUES should not be changed or removed.
+// Additional values can be added but DEVICE_MEDIA_NUM_VALUES should always
+// be the last value in the enum.
+enum DeviceMediaType {
+  DEVICE_MEDIA_UNKNOWN = 0,
+  DEVICE_MEDIA_USB = 1,
+  DEVICE_MEDIA_SD = 2,
+  DEVICE_MEDIA_OPTICAL_DISC = 3,
+  DEVICE_MEDIA_MOBILE = 4,
+  DEVICE_MEDIA_DVD = 5,
+  DEVICE_MEDIA_NUM_VALUES,
+};
+
+enum FormatErrorType {
+  FORMAT_ERROR_NONE = 0,
+  FORMAT_ERROR_UNKNOWN = 1,
+  FORMAT_ERROR_INTERNAL = 2,
+  FORMAT_ERROR_INVALID_DEVICE_PATH = 3,
+  FORMAT_ERROR_DEVICE_BEING_FORMATTED = 4,
+  FORMAT_ERROR_UNSUPPORTED_FILESYSTEM = 5,
+  FORMAT_ERROR_FORMAT_PROGRAM_NOT_FOUND = 6,
+  FORMAT_ERROR_FORMAT_PROGRAM_FAILED = 7,
+  FORMAT_ERROR_DEVICE_NOT_ALLOWED = 8,
+};
+
+// TODO(benchan): After both Chrome and cros-disks use these enum values,
+// make these error values contiguous so that they can be directly reported
+// via UMA.
+enum MountErrorType {
+  MOUNT_ERROR_NONE = 0,
+  MOUNT_ERROR_UNKNOWN = 1,
+  MOUNT_ERROR_INTERNAL = 2,
+  MOUNT_ERROR_INVALID_ARGUMENT = 3,
+  MOUNT_ERROR_INVALID_PATH = 4,
+  MOUNT_ERROR_PATH_ALREADY_MOUNTED = 5,
+  MOUNT_ERROR_PATH_NOT_MOUNTED = 6,
+  MOUNT_ERROR_DIRECTORY_CREATION_FAILED = 7,
+  MOUNT_ERROR_INVALID_MOUNT_OPTIONS = 8,
+  MOUNT_ERROR_INVALID_UNMOUNT_OPTIONS = 9,
+  MOUNT_ERROR_INSUFFICIENT_PERMISSIONS = 10,
+  MOUNT_ERROR_MOUNT_PROGRAM_NOT_FOUND = 11,
+  MOUNT_ERROR_MOUNT_PROGRAM_FAILED = 12,
+  MOUNT_ERROR_INVALID_DEVICE_PATH = 100,
+  MOUNT_ERROR_UNKNOWN_FILESYSTEM = 101,
+  MOUNT_ERROR_UNSUPPORTED_FILESYSTEM = 102,
+  MOUNT_ERROR_INVALID_ARCHIVE = 201,
+  MOUNT_ERROR_UNSUPPORTED_ARCHIVE = 202,
+};
+
+// MountSourceType enum values are solely used by Chrome/CrosDisks in
+// the MountCompleted signal, and currently not reported through UMA.
+enum MountSourceType {
+  MOUNT_SOURCE_INVALID = 0,
+  MOUNT_SOURCE_REMOVABLE_DEVICE = 1,
+  MOUNT_SOURCE_ARCHIVE = 2,
+  MOUNT_SOURCE_NETWORK_STORAGE = 3,
+};
+}  // namespace cros_disks
+
+#endif  // SYSTEM_API_DBUS_CROS_DISKS_DBUS_CONSTANTS_H_
diff --git a/system_api/dbus/cryptohome/dbus-constants.h b/system_api/dbus/cryptohome/dbus-constants.h
new file mode 100644
index 0000000..fcaa99b
--- /dev/null
+++ b/system_api/dbus/cryptohome/dbus-constants.h
@@ -0,0 +1,146 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_CRYPTOHOME_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_CRYPTOHOME_DBUS_CONSTANTS_H_
+
+namespace cryptohome {
+const char kCryptohomeInterface[] = "org.chromium.CryptohomeInterface";
+const char kCryptohomeServicePath[] = "/org/chromium/Cryptohome";
+const char kCryptohomeServiceName[] = "org.chromium.Cryptohome";
+// Methods
+const char kCryptohomeAsyncAddKey[] = "AsyncAddKey";
+const char kCryptohomeCheckKey[] = "CheckKey";
+const char kCryptohomeMigrateKey[] = "MigrateKey";
+const char kCryptohomeRemove[] = "Remove";
+const char kCryptohomeGetSystemSalt[] = "GetSystemSalt";
+const char kCryptohomeGetSanitizedUsername[] = "GetSanitizedUsername";
+const char kCryptohomeIsMounted[] = "IsMounted";
+const char kCryptohomeMount[] = "Mount";
+const char kCryptohomeMountGuest[] = "MountGuest";
+const char kCryptohomeMountPublic[] = "MountPublic";
+const char kCryptohomeUnmount[] = "Unmount";
+const char kCryptohomeTpmIsReady[] = "TpmIsReady";
+const char kCryptohomeTpmIsEnabled[] = "TpmIsEnabled";
+const char kCryptohomeTpmIsOwned[] = "TpmIsOwned";
+const char kCryptohomeTpmIsBeingOwned[] = "TpmIsBeingOwned";
+const char kCryptohomeTpmGetPassword[] = "TpmGetPassword";
+const char kCryptohomeTpmCanAttemptOwnership[] = "TpmCanAttemptOwnership";
+const char kCryptohomeTpmClearStoredPassword[] = "TpmClearStoredPassword";
+const char kCryptohomePkcs11GetTpmTokenInfo[] = "Pkcs11GetTpmTokenInfo";
+const char kCryptohomePkcs11GetTpmTokenInfoForUser[] =
+    "Pkcs11GetTpmTokenInfoForUser";
+const char kCryptohomePkcs11IsTpmTokenReady[] = "Pkcs11IsTpmTokenReady";
+const char kCryptohomePkcs11IsTpmTokenReadyForUser[] =
+    "Pkcs11IsTpmTokenReadyForUser";
+const char kCryptohomeAsyncCheckKey[] = "AsyncCheckKey";
+const char kCryptohomeAsyncMigrateKey[] = "AsyncMigrateKey";
+const char kCryptohomeAsyncMount[] = "AsyncMount";
+const char kCryptohomeAsyncMountGuest[] = "AsyncMountGuest";
+const char kCryptohomeAsyncMountPublic[] = "AsyncMountPublic";
+const char kCryptohomeAsyncRemove[] = "AsyncRemove";
+const char kCryptohomeGetStatusString[] = "GetStatusString";
+const char kCryptohomeRemoveTrackedSubdirectories[] =
+    "RemoveTrackedSubdirectories";
+const char kCryptohomeAsyncRemoveTrackedSubdirectories[] =
+    "AsyncRemoveTrackedSubdirectories";
+const char kCryptohomeDoAutomaticFreeDiskSpaceControl[] =
+    "DoAutomaticFreeDiskSpaceControl";
+const char kCryptohomeAsyncDoAutomaticFreeDiskSpaceControl[] =
+    "AsyncDoAutomaticFreeDiskSpaceControl";
+const char kCryptohomeAsyncDoesUsersExist[] = "AsyncDoesUsersExist";
+const char kCryptohomeInstallAttributesGet[] = "InstallAttributesGet";
+const char kCryptohomeInstallAttributesSet[] = "InstallAttributesSet";
+const char kCryptohomeInstallAttributesCount[] = "InstallAttributesCount";
+const char kCryptohomeInstallAttributesFinalize[] =
+    "InstallAttributesFinalize";
+const char kCryptohomeInstallAttributesIsReady[] = "InstallAttributesIsReady";
+const char kCryptohomeInstallAttributesIsSecure[] =
+    "InstallAttributesIsSecure";
+const char kCryptohomeInstallAttributesIsInvalid[] =
+    "InstallAttributesIsInvalid";
+const char kCryptohomeInstallAttributesIsFirstInstall[] =
+    "InstallAttributesIsFirstInstall";
+const char kCryptohomeStoreEnrollmentState[] =
+    "StoreEnrollmentState";
+const char kCryptohomeLoadEnrollmentState[] =
+    "LoadEnrollmentState";
+const char kCryptohomeTpmIsAttestationPrepared[] = "TpmIsAttestationPrepared";
+const char kCryptohomeTpmIsAttestationEnrolled[] = "TpmIsAttestationEnrolled";
+const char kCryptohomeAsyncTpmAttestationCreateEnrollRequest[] =
+    "AsyncTpmAttestationCreateEnrollRequest";
+const char kCryptohomeAsyncTpmAttestationCreateEnrollRequestNew[] =
+    "AsyncTpmAttestationCreateEnrollRequestNew";
+const char kCryptohomeAsyncTpmAttestationEnroll[] = "AsyncTpmAttestationEnroll";
+const char kCryptohomeAsyncTpmAttestationEnrollNew[] =
+    "AsyncTpmAttestationEnrollNew";
+const char kCryptohomeAsyncTpmAttestationCreateCertRequest[] =
+    "AsyncTpmAttestationCreateCertRequest";
+const char kCryptohomeAsyncTpmAttestationCreateCertRequestByProfile[] =
+    "AsyncTpmAttestationCreateCertRequestByProfile";
+const char kCryptohomeAsyncTpmAttestationFinishCertRequest[] =
+    "AsyncTpmAttestationFinishCertRequest";
+const char kCryptohomeTpmAttestationDoesKeyExist[] =
+    "TpmAttestationDoesKeyExist";
+const char kCryptohomeTpmAttestationGetCertificate[] =
+    "TpmAttestationGetCertificate";
+const char kCryptohomeTpmAttestationGetPublicKey[] =
+    "TpmAttestationGetPublicKey";
+const char kCryptohomeTpmAttestationRegisterKey[] = "TpmAttestationRegisterKey";
+const char kCryptohomeTpmAttestationSignEnterpriseChallenge[] =
+    "TpmAttestationSignEnterpriseChallenge";
+const char kCryptohomeTpmAttestationSignSimpleChallenge[] =
+    "TpmAttestationSignSimpleChallenge";
+const char kCryptohomeTpmAttestationGetKeyPayload[] =
+    "TpmAttestationGetKeyPayload";
+const char kCryptohomeTpmAttestationSetKeyPayload[] =
+    "TpmAttestationSetKeyPayload";
+const char kCryptohomeTpmAttestationDeleteKeys[] =
+    "TpmAttestationDeleteKeys";
+const char kCryptohomeGetKeyDataEx[] = "GetKeyDataEx";
+const char kCryptohomeCheckKeyEx[] = "CheckKeyEx";
+const char kCryptohomeMountEx[] = "MountEx";
+const char kCryptohomeAddKeyEx[] = "AddKeyEx";
+const char kCryptohomeUpdateKeyEx[] = "UpdateKeyEx";
+const char kCryptohomeRemoveKeyEx[] = "RemoveKeyEx";
+const char kCryptohomeSignBootLockbox[] = "SignBootLockbox";
+const char kCryptohomeVerifyBootLockbox[] = "VerifyBootLockbox";
+const char kCryptohomeFinalizeBootLockbox[] = "FinalizeBootLockbox";
+const char kCryptohomeGetBootAttribute[] = "GetBootAttribute";
+const char kCryptohomeSetBootAttribute[] = "SetBootAttribute";
+const char kCryptohomeFlushAndSignBootAttributes[] =
+    "FlushAndSignBootAttributes";
+const char kCryptohomeGetLoginStatus[] = "GetLoginStatus";
+const char kCryptohomeGetTpmStatus[] = "GetTpmStatus";
+const char kCryptohomeGetEndorsementInfo[] = "GetEndorsementInfo";
+const char kCryptohomeRenameCryptohome[] = "RenameCryptohome";
+const char kCryptohomeGetAccountDiskUsage[] = "GetAccountDiskUsage";
+const char kCryptohomeGetFirmwareManagementParameters[] =
+    "GetFirmwareManagementParameters";
+const char kCryptohomeSetFirmwareManagementParameters[] =
+    "SetFirmwareManagementParameters";
+const char kCryptohomeRemoveFirmwareManagementParameters[] =
+    "RemoveFirmwareManagementParameters";
+
+// Signals
+const char kSignalAsyncCallStatus[] = "AsyncCallStatus";
+const char kSignalAsyncCallStatusWithData[] = "AsyncCallStatusWithData";
+const char kSignalTpmInitStatus[] = "TpmInitStatus";
+const char kSignalCleanupUsersRemoved[] = "CleanupUsersRemoved";
+const char kSignalLowDiskSpace[] = "LowDiskSpace";
+// Error code
+enum MountError {
+  MOUNT_ERROR_NONE = 0,
+  MOUNT_ERROR_FATAL = 1 << 0,
+  MOUNT_ERROR_KEY_FAILURE = 1 << 1,
+  MOUNT_ERROR_MOUNT_POINT_BUSY = 1 << 2,
+  MOUNT_ERROR_TPM_COMM_ERROR = 1 << 3,
+  MOUNT_ERROR_TPM_DEFEND_LOCK = 1 << 4,
+  MOUNT_ERROR_USER_DOES_NOT_EXIST = 1 << 5,
+  MOUNT_ERROR_TPM_NEEDS_REBOOT = 1 << 6,
+  MOUNT_ERROR_RECREATED = 1 << 31,
+};
+}  // namespace cryptohome
+
+#endif  // SYSTEM_API_DBUS_CRYPTOHOME_DBUS_CONSTANTS_H_
diff --git a/system_api/dbus/cryptohome/key.proto b/system_api/dbus/cryptohome/key.proto
new file mode 100644
index 0000000..fb95b48
--- /dev/null
+++ b/system_api/dbus/cryptohome/key.proto
@@ -0,0 +1,97 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Provides wire-type for cryptohome Key objects.  It does not
+// represent the entirety of the bookkeeping data needed by Cryptohome.
+//
+// Anything in this file may be persisted on disk.  Update carefully!
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package cryptohome;
+
+message KeyAuthorizationSecretUsage {
+  optional bool encrypt = 1;
+  optional bool sign = 2;
+}
+
+message KeyAuthorizationSecret {
+  optional KeyAuthorizationSecretUsage usage = 1;
+  optional bytes symmetric_key = 2;
+  optional bytes public_key = 3;
+  // Indicates if the symmetric_key is wrapped.
+  optional bool wrapped = 4 [default=false];
+}
+
+message KeyAuthorizationData {
+  enum KeyAuthorizationType {
+    KEY_AUTHORIZATION_TYPE_HMACSHA256 = 0;
+    KEY_AUTHORIZATION_TYPE_AES256CBC_HMACSHA256 = 1;
+  }
+  optional KeyAuthorizationType type = 1;
+  repeated KeyAuthorizationSecret secrets = 2;
+}
+
+// Software-enforced privileges.
+message KeyPrivileges {
+  // Allows the key to mount the cryptohome.
+  optional bool mount = 1 [default=true];
+  // Allows new keys to be added.
+  optional bool add = 2 [default=true];
+  // Allows other existing keys to be removed.
+  optional bool remove = 3 [default=true];
+  // Allows the key to update itself.
+  optional bool update = 4 [default=true];
+  // Allows a key to update itself iff the requested change
+  // is authorized as per KeyAuthorizationData.
+  optional bool authorized_update = 5 [default=false];
+}
+
+// Public metadata stored on behalf of the KeyProvider.
+message KeyProviderData {
+  message Entry {
+    optional string name = 1;
+    optional int64 number = 2;
+    optional bytes bytes = 3;
+  }
+  repeated Entry entry = 1;
+}
+
+message KeyData {
+  // The KeyType should specify the handling needed by Cryptohome
+  // and not a provider KeyType.
+  enum KeyType {
+    KEY_TYPE_PASSWORD = 0;
+  }
+  optional KeyType type = 1;
+  // All keys must be labeled when persisted to disk, but when KeyData
+  // is used in an UpdateKeyRequest, only defined fields are necessary
+  // (so that the caller doesn't need the full KeyData first).
+  optional string label = 2;
+  // If undefined, use the default settings.
+  optional KeyPrivileges privileges = 3;
+  optional int64 revision = 4;
+  // At present, only support for one authorization mechanism is implemented.
+  repeated KeyAuthorizationData authorization_data = 5;
+  // Data stored for use by the provider of the key, often for pre-processing
+  // of passwords or custom provider key typing.
+  // This will be size-limited by serialized size (e.g., 4096 bytes).
+  optional KeyProviderData provider_data = 6;
+}
+
+// Key is not presently persisted to disk, but it acts as the single authority
+// for what comprises a key.
+message Key {
+  // In most cases, |data| is required.  When used in an UpdateKeyRequest, it
+  // is only required if KeyData is changing.  If only the |secret| is changing,
+  // this field may be left unset.
+  optional KeyData data = 1;
+  // |secret| is required for many requests, like AddKeyRequest, but not all.
+  // An UpdateKeyRequest only requires the changes to the Key that was
+  // was authorized in the AuthorizationRequest. Making |secret| required would
+  // logically force a key rotation even if the values were the same.
+  optional bytes secret = 2;
+}
diff --git a/system_api/dbus/cryptohome/rpc.proto b/system_api/dbus/cryptohome/rpc.proto
new file mode 100644
index 0000000..84fb203
--- /dev/null
+++ b/system_api/dbus/cryptohome/rpc.proto
@@ -0,0 +1,325 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// The messages in this file comprise the DBus/Proto interface for
+// Cryptohome where there is an AccountIdentifer argument, an
+// AuthorizationRequest (if needed for the call), and the call's
+// parameters as <Call>Request.
+//
+// 'optional' annotations are used heavily in the RPC definition
+// because the RPC endpoints most properly sanity check the contents
+// for application-specific logic, and the more optional-with-default
+// parameters exist, the less data is actually transferred on the wire
+// in "default" situations.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package cryptohome;
+
+import "key.proto";
+
+// Error codes do not need to be sequential per-call.
+// Prefixes by Request/Reply type should be used to help
+// callers know if specialized errors apply.
+enum CryptohomeErrorCode {
+  // 0 is the default value of BaseReply::error. It
+  // should never be used.
+  CRYPTOHOME_ERROR_NOT_SET = 0;
+
+  CRYPTOHOME_ERROR_ACCOUNT_NOT_FOUND = 1;
+  CRYPTOHOME_ERROR_AUTHORIZATION_KEY_NOT_FOUND = 2;
+  CRYPTOHOME_ERROR_AUTHORIZATION_KEY_FAILED = 3;
+  CRYPTOHOME_ERROR_NOT_IMPLEMENTED = 4;
+  CRYPTOHOME_ERROR_MOUNT_FATAL = 5;
+  CRYPTOHOME_ERROR_MOUNT_MOUNT_POINT_BUSY = 6;
+  CRYPTOHOME_ERROR_TPM_COMM_ERROR = 7;
+  CRYPTOHOME_ERROR_TPM_DEFEND_LOCK = 8;
+  CRYPTOHOME_ERROR_TPM_NEEDS_REBOOT = 9;
+  CRYPTOHOME_ERROR_AUTHORIZATION_KEY_DENIED = 10;
+  CRYPTOHOME_ERROR_KEY_QUOTA_EXCEEDED = 11;
+  CRYPTOHOME_ERROR_KEY_LABEL_EXISTS = 12;
+  CRYPTOHOME_ERROR_BACKING_STORE_FAILURE = 13;
+  CRYPTOHOME_ERROR_UPDATE_SIGNATURE_INVALID = 14;
+  CRYPTOHOME_ERROR_KEY_NOT_FOUND = 15;
+  CRYPTOHOME_ERROR_LOCKBOX_SIGNATURE_INVALID = 16;
+  CRYPTOHOME_ERROR_LOCKBOX_CANNOT_SIGN = 17;
+  CRYPTOHOME_ERROR_BOOT_ATTRIBUTE_NOT_FOUND = 18;
+  CRYPTOHOME_ERROR_BOOT_ATTRIBUTES_CANNOT_SIGN = 19;
+  CRYPTOHOME_ERROR_TPM_EK_NOT_AVAILABLE = 20;
+  CRYPTOHOME_ERROR_ATTESTATION_NOT_READY = 21;
+  CRYPTOHOME_ERROR_CANNOT_CONNECT_TO_CA = 22;
+  CRYPTOHOME_ERROR_CA_REFUSED_ENROLLMENT = 23;
+  CRYPTOHOME_ERROR_CA_REFUSED_CERTIFICATE = 24;
+  CRYPTOHOME_ERROR_INTERNAL_ATTESTATION_ERROR = 25;
+  CRYPTOHOME_ERROR_FIRMWARE_MANAGEMENT_PARAMETERS_INVALID = 26;
+  CRYPTOHOME_ERROR_FIRMWARE_MANAGEMENT_PARAMETERS_CANNOT_STORE = 27;
+  CRYPTOHOME_ERROR_FIRMWARE_MANAGEMENT_PARAMETERS_CANNOT_REMOVE = 28;
+}
+
+message AccountIdentifier {
+  // |email| is deprecated. Don't use it.
+  optional string email = 1;
+
+  optional string account_id = 2;
+}
+
+message AuthorizationRequest {
+  // |key| must supply at least a |key.secret()|.  If no |key.data()| or
+  // |key.data().label()| is supplied, the |key.secret()| will be tested
+  // against all compatible |key.data().type()| keys, where
+  // KEY_TYPE_PASSWORD is the default type.  If
+  // |key.data().label()| is supplied, then the |key.secret()| will only be
+  // tested against the matching VaultKeyset.
+  optional Key key = 1;
+};
+
+// These parameters are for inbound data to Cryptohome RPC
+// interfaces.  When calls are added that return data, a
+// <Call>Response should be defined.
+message MountRequest {
+  // Perform an ephemeral mount only.
+  optional bool require_ephemeral = 1 [default=false];
+  // If defined, the account will be created if it does not exist.
+  // Additionally, a failed AuthorizationRequest will be expected as
+  // there will be no existing keys.
+  optional CreateRequest create = 2;
+}
+
+// A BaseReply type is used for all cryptohomed responses. A shared base class
+// is used because all calls will always reply with no-error or an error value.
+// A centralized definition allows for a reusable reply handler for cases where
+// there is no Request-specific reply data.  Any specialized data will live in
+// an extension as per MountReply below:
+//   if (reply.HasExtension(MountReply::reply)) { ... }
+//
+message BaseReply {
+  // If a call was successful, error will not be defined (clear_error()).
+  // If a call failed, it must set an error code (set_error(CODE)).
+  // In either case, call-specific data may be added as an extension.
+  optional CryptohomeErrorCode error = 1;
+
+  extensions 1000 to max;
+}
+
+// The MountRequest call may return more than just success or failure
+// so it embeds itself in a BaseReply as an extension.
+message MountReply {
+  extend BaseReply {
+    optional MountReply reply = 1000;
+  }
+  // |recreated| is set when the cryptohome had to be wiped
+  // because the key or data was an unrecoverable.  It does not imply
+  // failure to Mount nor is it 'true' when a CreateRequest creates
+  // a cryptohome for the first time.
+  optional bool recreated = 1 [default=false];
+  // Returns the filesystem-sanitized username.
+  optional string sanitized_username = 2;
+};
+
+message CreateRequest {
+  repeated Key keys = 1;
+  // Explicitly use the |key| from the AuthorizationRequest.
+  // Setting this value means that the KeyData is filled as it
+  // would be with a Key above or in an AddKeyRequest.
+  optional bool copy_authorization_key = 2 [default=false];
+  // In the future, this will contain account-wide data like
+  // the deletion priority or the IdP's origin.
+}
+
+message AddKeyRequest {
+  optional Key key = 1;
+  optional bool clobber_if_exists = 2 [default=false];
+}
+
+message UpdateKeyRequest {
+  optional Key changes = 1;
+  optional bytes authorization_signature = 2;
+}
+
+message CheckKeyRequest {
+}
+
+message RemoveKeyRequest {
+  // Only key.data().label() is used at present.
+  optional Key key = 1;
+}
+
+message SignBootLockboxRequest {
+  // The data to be signed.
+  optional bytes data = 1;
+}
+
+message SignBootLockboxReply {
+  extend BaseReply {
+    optional SignBootLockboxReply reply = 1001;
+  }
+  optional bytes signature = 1;
+}
+
+message VerifyBootLockboxRequest {
+  // The signed data to be verified.
+  optional bytes data = 1;
+  // The signature to be verified.
+  optional bytes signature = 2;
+}
+
+message FinalizeBootLockboxRequest {
+}
+
+message GetKeyDataRequest {
+  // |key| must supply at least one attribute and all others will be treated as
+  // wildcards.  Currently only |key.data().label()| may be supplied.  Like
+  // AuthorizationRequest, support can be added for queries by
+  // |key.data().type()| to return all keys of a certain class, testing
+  // |key.secret()|, or |key.data().provider_data()| entries.
+  optional Key key = 1;
+}
+
+message GetKeyDataReply {
+  extend BaseReply {
+    optional GetKeyDataReply reply = 1002;
+  }
+  repeated KeyData key_data = 1;
+}
+
+message GetBootAttributeRequest {
+  optional string name = 1;
+}
+
+message GetBootAttributeReply {
+  extend BaseReply {
+    optional GetBootAttributeReply reply = 1003;
+  }
+  optional bytes value = 1;
+}
+
+message SetBootAttributeRequest {
+  optional string name = 1;
+  optional bytes value = 2;
+}
+
+message FlushAndSignBootAttributesRequest {
+}
+
+message ListKeysRequest {
+  // The default behavior is by label so any extension here should honor that.
+}
+
+message ListKeysReply {
+  extend BaseReply {
+    optional ListKeysReply reply = 1004;
+  }
+  repeated string labels = 1;
+}
+
+message GetLoginStatusRequest {
+}
+
+message GetLoginStatusReply {
+  extend BaseReply {
+    optional GetLoginStatusReply reply = 1005;
+  }
+  optional bool owner_user_exists=1;
+  optional bool boot_lockbox_finalized=2;
+}
+
+message GetTpmStatusRequest {
+}
+
+message GetTpmStatusReply {
+  extend BaseReply {
+    optional GetTpmStatusReply reply = 1006;
+  }
+  // Whether a TPM is enabled on the system.
+  optional bool enabled = 1;
+  // Whether the TPM has been owned.
+  optional bool owned = 2;
+  // Whether the TPM initialization flow has completed. This includes taking
+  // ownership, preparing attestation data, and finalizing lockbox NVRAM.
+  optional bool initialized = 3;
+  // The TPM owner password. This is only available when (owned &&
+  // !initialized) and sometimes not even then.
+  optional string owner_password = 4;
+  // Whether attestation data has been prepared. This includes reading the
+  // endorsement certificate out of NVRAM and generating an identity key. This
+  // does not include any kind of enrollment with a Privacy CA.
+  optional bool attestation_prepared = 7;
+  // Whether the device has enrolled with a Privacy CA. This means the identity
+  // key has been successfully certified.
+  optional bool attestation_enrolled = 8;
+  // The current dictionary attack counter value.
+  optional int32 dictionary_attack_counter = 9;
+  // The current dictionary attack counter threshold.
+  optional int32 dictionary_attack_threshold = 10;
+  // Whether the TPM is in some form of dictionary attack lockout.
+  optional bool dictionary_attack_lockout_in_effect = 11;
+  // The number of seconds remaining in the lockout.
+  optional int32 dictionary_attack_lockout_seconds_remaining = 12;
+  // Whether the install lockbox has been finalized.
+  optional bool install_lockbox_finalized = 13;
+  // Whether the boot lockbox has been finalized.
+  optional bool boot_lockbox_finalized = 14;
+  // Whether the current PCR values show a verified boot.
+  optional bool verified_boot_measured = 15;
+}
+
+message GetEndorsementInfoRequest {
+}
+
+message GetEndorsementInfoReply {
+  extend BaseReply {
+    optional GetEndorsementInfoReply reply = 1007;
+  }
+  // The endorsement public key (PKCS #1 RSAPublicKey).
+  optional bytes ek_public_key = 1;
+  // The endorsement certificate (X.509).
+  optional bytes ek_certificate = 2;
+}
+
+message InitializeCastKeyRequest {
+}
+
+// Flags for GetFirmwareManagementParametersReply and
+// SetFirmwareManagementParametersRequest
+enum FirmwareManagementParametersFlags {
+  NONE = 0;
+  DEVELOPER_DISABLE_BOOT = 1;
+  DEVELOPER_DISABLE_RECOVERY_INSTALL = 2;
+  DEVELOPER_DISABLE_RECOVERY_ROOTFS = 4;
+  DEVELOPER_ENABLE_USB = 8;
+  DEVELOPER_ENABLE_LEGACY = 16;
+  DEVELOPER_USE_KEY_HASH = 32;
+}
+
+message GetFirmwareManagementParametersRequest {
+}
+
+message GetFirmwareManagementParametersReply {
+  extend BaseReply {
+    optional GetFirmwareManagementParametersReply reply = 1008;
+  }
+
+  // Flags (zero or more from FirmwareManagementParametersFlags)
+  optional int32 flags = 1;
+  optional bytes developer_key_hash = 2;
+}
+
+message SetFirmwareManagementParametersRequest {
+  // Flags (zero or more from FirmwareManagementParametersFlags)
+  optional int32 flags = 1;
+  optional bytes developer_key_hash = 2;
+}
+
+message RemoveFirmwareManagementParametersRequest {
+}
+
+message GetAccountDiskUsageReply {
+  extend BaseReply {
+    optional GetAccountDiskUsageReply reply = 1009;
+  }
+  // The size of cryptohome in bytes.
+  optional int64 size = 1;
+}
diff --git a/system_api/dbus/cryptohome/signed_secret.proto b/system_api/dbus/cryptohome/signed_secret.proto
new file mode 100644
index 0000000..16fedab
--- /dev/null
+++ b/system_api/dbus/cryptohome/signed_secret.proto
@@ -0,0 +1,34 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Provides wire protocol for signed password changes from
+// the cloud for Chrome OS accounts subject to remote management.
+//
+// The data in this file will be shared in Chrome, Chrome OS (cryptohome),
+// and on servers. Ensure all parties are aware when making changes.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package ac.chrome.managedaccounts.account;
+
+// The secret currently assumes a password-equivalent key and a
+// revision, to avoid rollbacks.  This secret should be serialized
+// and signed by a pre-negotiated key to authorize updates from the
+// server to the host OS.
+message Secret {
+  optional int64 revision = 1;
+  optional bytes secret = 2;
+  // In the future, a type field will be added to allow encrypted secrets
+  // and different secret types.
+}
+
+// This is an example format if this were sent on the wire.
+// It is assumed that neither Secret or SignedSecret will ever be sent
+// on the wire, but only reconstructed from source data.
+message SignedSecret {
+  optional bytes serialized_secret = 1;
+  optional bytes signature = 2;
+}
diff --git a/system_api/dbus/debugd/dbus-constants.h b/system_api/dbus/debugd/dbus-constants.h
new file mode 100644
index 0000000..514ab69
--- /dev/null
+++ b/system_api/dbus/debugd/dbus-constants.h
@@ -0,0 +1,57 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_DEBUGD_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_DEBUGD_DBUS_CONSTANTS_H_
+
+namespace debugd {
+const char kDebugdInterface[] = "org.chromium.debugd";
+const char kDebugdServicePath[] = "/org/chromium/debugd";
+const char kDebugdServiceName[] = "org.chromium.debugd";
+
+// Methods.
+const char kDumpDebugLogs[] = "DumpDebugLogs";
+const char kGetDebugLogs[] = "GetDebugLogs";
+const char kGetInterfaces[] = "GetInterfaces";
+const char kGetModemStatus[] = "GetModemStatus";
+const char kGetNetworkStatus[] = "GetNetworkStatus";
+const char kGetPerfOutput[] = "GetPerfOutput";
+const char kGetPerfOutputFd[] = "GetPerfOutputFd";
+const char kGetRoutes[] = "GetRoutes";
+const char kGetWiMaxStatus[] = "GetWiMaxStatus";
+const char kSetDebugMode[] = "SetDebugMode";
+const char kSystraceStart[] = "SystraceStart";
+const char kSystraceStop[] = "SystraceStop";
+const char kSystraceStatus[] = "SystraceStatus";
+const char kGetLog[] = "GetLog";
+const char kGetAllLogs[] = "GetAllLogs";
+const char kGetUserLogFiles[] = "GetUserLogFiles";
+const char kGetFeedbackLogs[] = "GetFeedbackLogs";
+const char kGetBigFeedbackLogs[] = "GetBigFeedbackLogs";
+const char kTestICMP[] = "TestICMP";
+const char kTestICMPWithOptions[] = "TestICMPWithOptions";
+const char kLogKernelTaskStates[] = "LogKernelTaskStates";
+const char kUploadCrashes[] = "UploadCrashes";
+const char kRemoveRootfsVerification[] = "RemoveRootfsVerification";
+const char kEnableChromeRemoteDebugging[] = "EnableChromeRemoteDebugging";
+const char kEnableBootFromUsb[] = "EnableBootFromUsb";
+const char kConfigureSshServer[] = "ConfigureSshServer";
+const char kSetUserPassword[] = "SetUserPassword";
+const char kEnableChromeDevFeatures[] = "EnableChromeDevFeatures";
+const char kQueryDevFeatures[] = "QueryDevFeatures";
+const char kSetOomScoreAdj[] = "SetOomScoreAdj";
+
+// Values.
+enum DevFeatureFlag {
+  DEV_FEATURES_DISABLED = 1 << 0,
+  DEV_FEATURE_ROOTFS_VERIFICATION_REMOVED = 1 << 1,
+  DEV_FEATURE_BOOT_FROM_USB_ENABLED = 1 << 2,
+  DEV_FEATURE_SSH_SERVER_CONFIGURED = 1 << 3,
+  DEV_FEATURE_DEV_MODE_ROOT_PASSWORD_SET = 1 << 4,
+  DEV_FEATURE_SYSTEM_ROOT_PASSWORD_SET = 1 << 5,
+  DEV_FEATURE_CHROME_REMOTE_DEBUGGING_ENABLED = 1 << 6,
+};
+}  // namespace debugd
+
+#endif  // SYSTEM_API_DBUS_DEBUGD_DBUS_CONSTANTS_H_
diff --git a/system_api/dbus/field_trial_list.proto b/system_api/dbus/field_trial_list.proto
new file mode 100644
index 0000000..5558308
--- /dev/null
+++ b/system_api/dbus/field_trial_list.proto
@@ -0,0 +1,20 @@
+// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+// This protobuf is for serializing Finch experimental field trial data to
+// disk for consumption by processes outside the browser.
+message FieldTrialList {
+  // A pair representing a Field Trial and its selected group.
+  message ActiveGroup {
+    optional string trial_name = 1;
+    optional string group_name = 2;
+  }
+
+  // All the active field trial groups for this device.
+  repeated ActiveGroup group = 1;
+}
diff --git a/system_api/dbus/login_manager/dbus-constants.h b/system_api/dbus/login_manager/dbus-constants.h
new file mode 100644
index 0000000..5dc7a07
--- /dev/null
+++ b/system_api/dbus/login_manager/dbus-constants.h
@@ -0,0 +1,61 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_LOGIN_MANAGER_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_LOGIN_MANAGER_DBUS_CONSTANTS_H_
+
+namespace login_manager {
+const char kSessionManagerInterface[] = "org.chromium.SessionManagerInterface";
+const char kSessionManagerServicePath[] = "/org/chromium/SessionManager";
+const char kSessionManagerServiceName[] = "org.chromium.SessionManager";
+// Methods
+const char kSessionManagerEmitLoginPromptVisible[] = "EmitLoginPromptVisible";
+const char kSessionManagerStartSession[] = "StartSession";
+const char kSessionManagerStopSession[] = "StopSession";
+const char kSessionManagerRestartJob[] = "RestartJob";
+const char kSessionManagerStorePolicy[] = "StorePolicy";
+const char kSessionManagerRetrievePolicy[] = "RetrievePolicy";
+const char kSessionManagerStorePolicyForUser[] = "StorePolicyForUser";
+const char kSessionManagerRetrievePolicyForUser[] = "RetrievePolicyForUser";
+const char kSessionManagerStoreDeviceLocalAccountPolicy[] =
+    "StoreDeviceLocalAccountPolicy";
+const char kSessionManagerRetrieveDeviceLocalAccountPolicy[] =
+    "RetrieveDeviceLocalAccountPolicy";
+const char kSessionManagerRetrieveSessionState[] = "RetrieveSessionState";
+const char kSessionManagerRetrieveActiveSessions[] = "RetrieveActiveSessions";
+const char kSessionManagerStartDeviceWipe[] = "StartDeviceWipe";
+const char kSessionManagerHandleSupervisedUserCreationStarting[] =
+    "HandleSupervisedUserCreationStarting";
+const char kSessionManagerHandleSupervisedUserCreationFinished[] =
+    "HandleSupervisedUserCreationFinished";
+const char kSessionManagerLockScreen[] = "LockScreen";
+const char kSessionManagerHandleLockScreenShown[] = "HandleLockScreenShown";
+const char kSessionManagerHandleLockScreenDismissed[] =
+    "HandleLockScreenDismissed";
+const char kSessionManagerSetFlagsForUser[] = "SetFlagsForUser";
+const char kSessionManagerGetServerBackedStateKeys[] =
+    "GetServerBackedStateKeys";
+const char kSessionManagerInitMachineInfo[] = "InitMachineInfo";
+const char kSessionManagerCheckArcAvailability[] = "CheckArcAvailability";
+const char kSessionManagerStartArcInstance[] = "StartArcInstance";
+const char kSessionManagerStopArcInstance[] = "StopArcInstance";
+const char kSessionManagerGetArcStartTimeTicks[] = "GetArcStartTimeTicks";
+const char kSessionManagerRemoveArcData[] = "RemoveArcData";
+const char kSessionManagerStartContainer[] = "StartContainer";
+const char kSessionManagerStopContainer[] = "StopContainer";
+// Signals
+const char kLoginPromptVisibleSignal[] = "LoginPromptVisible";
+const char kSessionStateChangedSignal[] = "SessionStateChanged";
+// ScreenLock signals.
+const char kScreenIsLockedSignal[] = "ScreenIsLocked";
+const char kScreenIsUnlockedSignal[] = "ScreenIsUnlocked";
+// Ownership API signals.
+const char kOwnerKeySetSignal[] = "SetOwnerKeyComplete";
+const char kPropertyChangeCompleteSignal[] = "PropertyChangeComplete";
+// ARC instance signals.
+const char kArcInstanceStopped[] = "ArcInstanceStopped";
+const char kArcInstanceRebooted[] = "ArcInstanceRebooted";
+}  // namespace login_manager
+
+#endif  // SYSTEM_API_DBUS_LOGIN_MANAGER_DBUS_CONSTANTS_H_
diff --git a/system_api/dbus/lorgnette/dbus-constants.h b/system_api/dbus/lorgnette/dbus-constants.h
new file mode 100644
index 0000000..ac2e8ac
--- /dev/null
+++ b/system_api/dbus/lorgnette/dbus-constants.h
@@ -0,0 +1,31 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_LORGNETTE_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_LORGNETTE_DBUS_CONSTANTS_H_
+
+namespace lorgnette {
+const char kManagerServiceName[] = "org.chromium.lorgnette";
+const char kManagerServiceInterface[] = "org.chromium.lorgnette.Manager";
+const char kManagerServicePath[] = "/org/chromium/lorgnette/Manager";
+const char kManagerServiceError[] = "org.chromium.lorgnette.Error";
+
+// Methods.
+const char kListScannersMethod[] = "ListScanners";
+const char kScanImageMethod[] = "ScanImage";
+
+// Attributes of scanners returned from "ListScanners".
+const char kScannerPropertyManufacturer[] = "Manufacturer";
+const char kScannerPropertyModel[] = "Model";
+const char kScannerPropertyType[] = "Type";
+
+// Parameters supplied to a "ScanImage" request.
+const char kScanPropertyMode[] = "Mode";
+const char kScanPropertyModeColor[] = "Color";
+const char kScanPropertyModeGray[] = "Gray";
+const char kScanPropertyModeLineart[] = "Lineart";
+const char kScanPropertyResolution[] = "Resolution";
+}  // namespace lorgnette
+
+#endif  // SYSTEM_API_DBUS_LORGNETTE_DBUS_CONSTANTS_H_
diff --git a/system_api/dbus/mtp_file_entry.proto b/system_api/dbus/mtp_file_entry.proto
new file mode 100644
index 0000000..943498b
--- /dev/null
+++ b/system_api/dbus/mtp_file_entry.proto
@@ -0,0 +1,55 @@
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+// This protobuf is for sending file entries from a mtp/ptp device to the
+// browser.
+message MtpFileEntry {
+  // The id for the file on the mtp/ptp device.
+  optional uint32 item_id = 1;
+
+  // The id of this file's parent on the mtp/ptp device.
+  optional uint32 parent_id = 2;
+
+  // The file's name.
+  optional string file_name = 3;
+
+  // The file's size.
+  optional uint64 file_size = 4;
+
+  // The file's modification time. This is approximately the number of seconds
+  // since Unix epoch. However, it does not account for timezone offsets or
+  // daylight savings time.
+  optional int64 modification_time = 5;
+
+  // Values match libmtp values unless noted below.
+  enum FileType {
+    FILE_TYPE_FOLDER = 0;
+    FILE_TYPE_JPEG = 14;
+    FILE_TYPE_JFIF = 15;
+    FILE_TYPE_TIFF = 16;
+    FILE_TYPE_BMP = 17;
+    FILE_TYPE_GIF = 18;
+    FILE_TYPE_PICT = 19;
+    FILE_TYPE_PNG = 20;
+    FILE_TYPE_WINDOWSIMAGEFORMAT = 25;
+    FILE_TYPE_JP2 = 40;
+    FILE_TYPE_JPX = 41;
+    // Truly unknown file type.
+    FILE_TYPE_UNKNOWN = 44;
+    // There's more file types to map to, but right now they are not
+    // interesting. Just assign a dummy value for now.
+    FILE_TYPE_OTHER = 9999;
+  }
+
+  // The file's type.
+  optional FileType file_type = 6;
+}
+
+message MtpFileEntries {
+  repeated MtpFileEntry file_entries = 1;
+}
diff --git a/system_api/dbus/mtp_storage_info.proto b/system_api/dbus/mtp_storage_info.proto
new file mode 100644
index 0000000..0551b2a
--- /dev/null
+++ b/system_api/dbus/mtp_storage_info.proto
@@ -0,0 +1,57 @@
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+// This protobuf is for sending the characteristics of a storage from a mtp/ptp
+// device to the browser.
+message MtpStorageInfo {
+  // The name of the storage. e.g. usb:2,5:65537
+  optional string storage_name = 1;
+
+  // Device vendor name. e.g. Kodak
+  optional string vendor = 2;
+
+  // Device vendor id. e.g. 0x040a
+  optional uint32 vendor_id = 3;
+
+  // Device product name. e.g. DC4800
+  optional string product = 4;
+
+  // Device product id. e.g. 0x0160
+  optional uint32 product_id = 5;
+
+  // Device flags as defined by libmtp. See libmtp's src/device-flags.h.
+  optional uint32 device_flags = 6;
+
+  // Device storage type as defined in the PIMA 15740-2000 standard, first
+  // edition, section 5.5.3, table 11.
+  optional uint32 storage_type = 7;
+
+  // Device file system type as defined in the PIMA 15740-2000 standard, first
+  // edition, section 5.5.3, table 12.
+  optional uint32 filesystem_type = 8;
+
+  // Access capability as defined in the PIMA 15740-2000 standard, first
+  // edition, section 5.5.3, table 13.
+  optional uint32 access_capability = 9;
+
+  // Capacity of the storage in bytes.
+  optional uint64 max_capacity = 10;
+
+  // Free space of the storage in bytes.
+  optional uint64 free_space_in_bytes = 11;
+
+  // Free space of the storage in objects. i.e. How many more objects can be
+  // created on the device.
+  optional uint64 free_space_in_objects = 12;
+
+  // A description of the storage. This is device dependent.
+  optional string storage_description = 13;
+
+  // The volume label of the storage. This is device dependent.
+  optional string volume_identifier = 14;
+}
diff --git a/system_api/dbus/permission_broker/dbus-constants.h b/system_api/dbus/permission_broker/dbus-constants.h
new file mode 100644
index 0000000..d3d37ef
--- /dev/null
+++ b/system_api/dbus/permission_broker/dbus-constants.h
@@ -0,0 +1,25 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_PERMISSION_BROKER_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_PERMISSION_BROKER_DBUS_CONSTANTS_H_
+
+namespace permission_broker {
+const char kPermissionBrokerInterface[] = "org.chromium.PermissionBroker";
+const char kPermissionBrokerServicePath[] = "/org/chromium/PermissionBroker";
+const char kPermissionBrokerServiceName[] = "org.chromium.PermissionBroker";
+
+// Methods
+const char kCheckPathAccess[] = "CheckPathAccess";
+const char kRequestPathAccess[] = "RequestPathAccess";
+const char kOpenPath[] = "OpenPath";
+const char kRequestTcpPortAccess[] = "RequestTcpPortAccess";
+const char kRequestUdpPortAccess[] = "RequestUdpPortAccess";
+const char kReleaseTcpPort[] = "ReleaseTcpPort";
+const char kReleaseUdpPort[] = "ReleaseUdpPort";
+const char kRequestVpnSetup[] = "RequestVpnSetup";
+const char kRemoveVpnSetup[] = "RemoveVpnSetup";
+}  // namespace permission_broker
+
+#endif  // SYSTEM_API_DBUS_PERMISSION_BROKER_DBUS_CONSTANTS_H_
diff --git a/system_api/dbus/power_manager/OWNERS b/system_api/dbus/power_manager/OWNERS
new file mode 100644
index 0000000..6a46306
--- /dev/null
+++ b/system_api/dbus/power_manager/OWNERS
@@ -0,0 +1,3 @@
+set noparent
+derat@chromium.org
+snanda@chromium.org
diff --git a/system_api/dbus/power_manager/dbus-constants.h b/system_api/dbus/power_manager/dbus-constants.h
new file mode 100644
index 0000000..fa42cb1
--- /dev/null
+++ b/system_api/dbus/power_manager/dbus-constants.h
@@ -0,0 +1,66 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_POWER_MANAGER_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_POWER_MANAGER_DBUS_CONSTANTS_H_
+
+namespace power_manager {
+// powerd
+const char kPowerManagerInterface[] = "org.chromium.PowerManager";
+const char kPowerManagerServicePath[] = "/org/chromium/PowerManager";
+const char kPowerManagerServiceName[] = "org.chromium.PowerManager";
+// Methods exposed by powerd.
+const char kDecreaseScreenBrightnessMethod[] = "DecreaseScreenBrightness";
+const char kIncreaseScreenBrightnessMethod[] = "IncreaseScreenBrightness";
+const char kGetScreenBrightnessPercentMethod[] = "GetScreenBrightnessPercent";
+const char kSetScreenBrightnessPercentMethod[] = "SetScreenBrightnessPercent";
+const char kDecreaseKeyboardBrightnessMethod[] = "DecreaseKeyboardBrightness";
+const char kIncreaseKeyboardBrightnessMethod[] = "IncreaseKeyboardBrightness";
+const char kRequestRestartMethod[] = "RequestRestart";
+const char kRequestShutdownMethod[] = "RequestShutdown";
+const char kRequestSuspendMethod[] = "RequestSuspend";
+const char kGetPowerSupplyPropertiesMethod[] = "GetPowerSupplyProperties";
+const char kHandleUserActivityMethod[] = "HandleUserActivity";
+const char kHandleVideoActivityMethod[] = "HandleVideoActivity";
+const char kSetIsProjectingMethod[] = "SetIsProjecting";
+const char kSetPolicyMethod[] = "SetPolicy";
+const char kSetPowerSourceMethod[] = "SetPowerSource";
+const char kRegisterSuspendDelayMethod[] = "RegisterSuspendDelay";
+const char kUnregisterSuspendDelayMethod[] = "UnregisterSuspendDelay";
+const char kHandleSuspendReadinessMethod[] = "HandleSuspendReadiness";
+const char kRegisterDarkSuspendDelayMethod[] = "RegisterDarkSuspendDelay";
+const char kUnregisterDarkSuspendDelayMethod[] = "UnregisterDarkSuspendDelay";
+const char kHandleDarkSuspendReadinessMethod[] = "HandleDarkSuspendReadiness";
+const char kHandlePowerButtonAcknowledgmentMethod[] =
+    "HandlePowerButtonAcknowledgment";
+const char kRecordDarkResumeWakeReasonMethod[] = "RecordDarkResumeWakeReason";
+// Signals emitted by powerd.
+const char kBrightnessChangedSignal[] = "BrightnessChanged";
+const char kKeyboardBrightnessChangedSignal[] = "KeyboardBrightnessChanged";
+const char kPeripheralBatteryStatusSignal[] = "PeripheralBatteryStatus";
+const char kPowerSupplyPollSignal[] = "PowerSupplyPoll";
+const char kSuspendImminentSignal[] = "SuspendImminent";
+const char kDarkSuspendImminentSignal[] = "DarkSuspendImminent";
+const char kSuspendDoneSignal[] = "SuspendDone";
+const char kInputEventSignal[] = "InputEvent";
+const char kIdleActionImminentSignal[] = "IdleActionImminent";
+const char kIdleActionDeferredSignal[] = "IdleActionDeferred";
+// Values
+const int kBrightnessTransitionGradual = 1;
+const int kBrightnessTransitionInstant = 2;
+enum UserActivityType {
+  USER_ACTIVITY_OTHER = 0,
+  USER_ACTIVITY_BRIGHTNESS_UP_KEY_PRESS = 1,
+  USER_ACTIVITY_BRIGHTNESS_DOWN_KEY_PRESS = 2,
+  USER_ACTIVITY_VOLUME_UP_KEY_PRESS = 3,
+  USER_ACTIVITY_VOLUME_DOWN_KEY_PRESS = 4,
+  USER_ACTIVITY_VOLUME_MUTE_KEY_PRESS = 5,
+};
+enum RequestRestartReason {
+  REQUEST_RESTART_FOR_USER = 0,
+  REQUEST_RESTART_FOR_UPDATE = 1,
+};
+}  // namespace power_manager
+
+#endif  // SYSTEM_API_DBUS_POWER_MANAGER_DBUS_CONSTANTS_H_
diff --git a/system_api/dbus/power_manager/input_event.proto b/system_api/dbus/power_manager/input_event.proto
new file mode 100644
index 0000000..85aaadd
--- /dev/null
+++ b/system_api/dbus/power_manager/input_event.proto
@@ -0,0 +1,29 @@
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package power_manager;
+
+// Included in powerd's InputEvent signals.
+message InputEvent {
+  // Next ID to use: 3
+
+  // Type of event.
+  enum Type {
+    POWER_BUTTON_DOWN = 0;
+    POWER_BUTTON_UP = 1;
+    LID_OPEN = 2;
+    LID_CLOSED = 3;
+    TABLET_MODE_ON = 4;
+    TABLET_MODE_OFF = 5;
+  }
+  optional Type type = 1;
+
+  // Monotonically-increasing time at which this event occured, as given by
+  // base::TimeTicks::ToInternalValue().
+  optional int64 timestamp = 2;
+}
diff --git a/system_api/dbus/power_manager/peripheral_battery_status.proto b/system_api/dbus/power_manager/peripheral_battery_status.proto
new file mode 100644
index 0000000..fd4ba9e
--- /dev/null
+++ b/system_api/dbus/power_manager/peripheral_battery_status.proto
@@ -0,0 +1,22 @@
+// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package power_manager;
+
+message PeripheralBatteryStatus {
+  // Path of the battery sysfs.
+  optional string path = 1;
+
+  // Name of the peripheral device.
+  optional string name = 2;
+
+  // Battery level in range [0, 100]. Unset if the level is
+  // unknown or the device is disconnected.
+  optional int32 level = 3;
+}
+
diff --git a/system_api/dbus/power_manager/policy.proto b/system_api/dbus/power_manager/policy.proto
new file mode 100644
index 0000000..b678e37
--- /dev/null
+++ b/system_api/dbus/power_manager/policy.proto
@@ -0,0 +1,161 @@
+// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package power_manager;
+
+// Power management policy sent from Chrome to powerd.
+//
+// New settings take effect immediately.  For example, if |idle_ms| is
+// currently set to 15 minutes, the user has been inactive for 12 minutes,
+// and a message setting |idle_ms| to 10 minutes is received,
+// |idle_action| will be performed immediately.  If |lid_closed_action| is
+// DO_NOTHING, the lid is closed, and |lid_closed_action| is then set to
+// SHUT_DOWN, the system will shut down immediately.
+//
+// In the case of an unset field, powerd will restore a default value (as
+// opposed to continuing to use a value set by a previous message).  An
+// empty message will restore all settings to their defaults.
+message PowerManagementPolicy {
+  enum Action {
+    // Suspends the system.  Chrome may lock the screen first depending on
+    // its "Require password to wake from sleep" setting and the type of
+    // user that is logged in.
+    SUSPEND = 0;
+
+    // Ends the current user's session.  Does nothing at the login screen.
+    STOP_SESSION = 1;
+
+    // Shuts the system down.
+    SHUT_DOWN = 2;
+
+    // Does nothing.
+    DO_NOTHING = 3;
+
+    // Next value to use: 4
+  }
+
+  message Delays {
+    // Delay after which |idle_action| is performed, in milliseconds.  The
+    // inactivity timeout is reset in response to things like user activity
+    // (including the lid being opened, the power source changing, an
+    // external display being connected, etc.), resuming from suspend, or
+    // the session state changing.
+    optional int64 idle_ms = 1;
+
+    // Delay after which the screen will be turned off, in milliseconds.  0
+    // disables turning the screen off.  Capped to be less than or equal to
+    // |idle_ms|.  The same events that cause the inactivity timeout to be
+    // reset cause the screen to be turned back on.
+    optional int64 screen_off_ms = 2;
+
+    // Delay after which the screen will be dimmed, in milliseconds.  0
+    // disables dimming.  Capped to be less than or equal to
+    // |screen_off_ms| if |screen_off_ms| is set or less than or equal to
+    // |idle_ms| otherwise.  The same events that cause the inactivity
+    // timeout to be reset cause the screen to be undimmed.
+    optional int64 screen_dim_ms = 3;
+
+    // Delay after which the screen will be locked, in milliseconds.  0
+    // disables locking.  Capped to be less than |idle_ms|.  Note that
+    // lock-on-suspend is implemented within Chrome; this delay is provided
+    // for cases where the screen must be locked a significant amount of
+    // time before the device is suspended.
+    optional int64 screen_lock_ms = 4;
+
+    // Delay after which an IdleActionImminent signal will be emitted, in
+    // milliseconds. If the inactivity timeout is then reset before the idle
+    // action is performed, an IdleActionDeferred signal will be emitted. If the
+    // idle delay is changed after IdleActionImminent has been emitted, an
+    // additional signal will be emitted. 0 disables the signal. Capped to be
+    // less than or equal to |idle_ms|.
+    optional int64 idle_warning_ms = 5;
+
+    // Next ID to use: 6
+  }
+
+  // Action to perform when |idle_ms| (see Delays) is reached without any
+  // user activity while the system is on AC power.
+  optional Action ac_idle_action = 1;
+
+  // Idle action when the system is on battery power.
+  optional Action battery_idle_action = 11;
+
+  // Action to perform when the lid is closed.
+  optional Action lid_closed_action = 2;
+
+  // Delays used while the system is on AC power.
+  optional Delays ac_delays = 3;
+
+  // Delays used while the system is on battery power.
+  optional Delays battery_delays = 4;
+
+  // Should audio activity be honored?  If true, audio activity will
+  // prevent |idle_action| from being performed, although the screen
+  // dimming, off, and lock delays will still be in effect.  Once the audio
+  // has stopped, |idle_action| will be performed if no user or audio
+  // activity is observed for |idle_ms|.
+  optional bool use_audio_activity = 5;
+
+  // Should video activity be honored?  If true, video activity will
+  // prevent |idle_action| from being performed and the screen from being
+  // automatically dimmed, turned off, or locked.  All these timeouts will
+  // be reset once the video has stopped.
+  optional bool use_video_activity = 6;
+
+  // Backlight brightness in the range [0.0, 100.0] to use when on AC or battery
+  // power. When a message containing these fields is received, the backlight is
+  // set to the requested brightness. The updated brightness persists until the
+  // user manually changes it or a new policy containing the currently-relevant
+  // field is received.
+  optional double ac_brightness_percent = 13;
+  optional double battery_brightness_percent = 14;
+
+  // Factor by which |screen_dim_ms| will be scaled while the device is in
+  // presentation mode.  Other delays' distances from |screen_dim_ms| are
+  // preserved after scaling.  A value of 1.0 (or less) leaves delays
+  // unchanged. If the conditions used for both this field and
+  // |user_activity_screen_dim_delay_factor| are true, this field takes
+  // precedence.
+  optional double presentation_screen_dim_delay_factor = 10;
+
+  // Factor by which |screen_dim_ms| will be scaled if user activity is
+  // observed while the screen is dimmed or soon after it is turned off.
+  // Other delays' distances from |screen_dim_ms| are preserved after
+  // scaling.  The delays will return to their original values at the end
+  // of the current user session.  A value of 1.0 (or less) or an unset
+  // |screen_dim_ms| delay leaves delays unchanged.
+  optional double user_activity_screen_dim_delay_factor = 9;
+
+  // If true, instructs the power manager not to perform any
+  // delay-triggered actions while in a user session until user activity
+  // has been observed. After activity is seen, the inactivity timeout
+  // starts. The actions are deferred again after a new session starts.
+  // Note that this has no immediate effect if activity has already been
+  // seen within an already-started session (activity that took place
+  // before the policy change is honored) and also that it has no effect at
+  // the login screen.
+  optional bool wait_for_initial_user_activity = 12;
+
+  // If true, force the panel backlight to a non-zero brightness level in
+  // response to user activity if it was previously manually set to zero by the
+  // user.
+  optional bool force_nonzero_brightness_for_user_activity = 15;
+
+  // Human-readable description of the factors contributing to this policy.
+  // Logged by the power manager to aid in debugging.
+  optional string reason = 8;
+
+  // Next ID to use: 16
+}
+
+// Message included in IdleActionImminent signals.
+message IdleActionImminent {
+  // Time until the idle action will be performed as given by
+  // base::TimeDelta::ToInternalValue().
+  optional int64 time_until_idle_action = 1;
+}
diff --git a/system_api/dbus/power_manager/power_supply_properties.proto b/system_api/dbus/power_manager/power_supply_properties.proto
new file mode 100644
index 0000000..2a1906a
--- /dev/null
+++ b/system_api/dbus/power_manager/power_supply_properties.proto
@@ -0,0 +1,136 @@
+// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package power_manager;
+
+// Power supply status sent from powerd to Chrome.
+message PowerSupplyProperties {
+  // For any of these power sources, the system may be consuming power at a high
+  // enough rate that the battery is discharging rather than charging; see
+  // BatteryState.
+  enum ExternalPower {
+    // AC/line/mains or USB PD power is connected. This is typically the
+    // highest-power source that can be attached to the system.
+    AC = 0;
+
+    // A low-power USB source (SDP, DCP, CDP, or ACA) is connected.
+    USB = 1;
+
+    // No external power source is connected.
+    DISCONNECTED = 2;
+
+    // Next value to use: 4
+  }
+
+  enum BatteryState {
+    // The battery is full or close to full.
+    FULL = 0;
+
+    // The battery is being charged but is not yet full.
+    CHARGING = 1;
+
+    // The battery is discharging. Note that an external power source may be
+    // connected but not supplying enough power to offset the system's
+    // instantaneous power consumption. This state is also used if the battery
+    // is neither charging nor discharging (i.e. current is zero) in a non-full
+    // state, which may indicate a battery defect.
+    DISCHARGING = 2;
+
+    // The system doesn't have a battery.
+    NOT_PRESENT = 3;
+
+    // Next value to use: 4
+  }
+
+  // Details about a potential source of power to the system.
+  message PowerSource {
+    enum Port {
+      // The location of the port is unknown, or there's only one port.
+      UNKNOWN = 0;
+
+      // Various positions on the device. The first word describes the side of
+      // the device where the port is located while the second clarifies the
+      // position. For example, LEFT_BACK means the farthest-back port on the
+      // left side, while BACK_LEFT means the leftmost port on the back of the
+      // device.
+      LEFT        = 1;
+      RIGHT       = 2;
+      BACK        = 3;
+      FRONT       = 4;
+      LEFT_FRONT  = 5;
+      LEFT_BACK   = 6;
+      RIGHT_FRONT = 7;
+      RIGHT_BACK  = 8;
+      BACK_LEFT   = 9;
+      BACK_RIGHT  = 10;
+
+      // Next value to use: 11
+    }
+
+    // Opaque ID corresponding to the device; see |external_power_source_id|.
+    optional string id = 1;
+
+    // The charging port to which this power source is connected.
+    optional Port port = 7;
+
+    // Raw strings read from |manufacturer| and |model_name| files in sysfs.
+    optional string manufacturer_id = 4;
+    optional string model_id = 5;
+
+    // Maximum power this source is capable of delivering, in watts.
+    optional double max_power = 6;
+
+    // True if the power source will automatically deliver charge to the system
+    // when connected (assuming there isn't another |active_by_default| source
+    // doing so). If false, the source will not deliver charge unless requested
+    // to do so by the user.
+    optional bool active_by_default = 3;
+
+    // Next ID to use: 8
+  }
+
+  // Current state of the external power source.
+  optional ExternalPower external_power = 14;
+
+  // ID of the PowerSource that is currently providing power to the system.
+  optional string external_power_source_id = 17;
+
+  // Currently-connected external power sources.
+  repeated PowerSource available_external_power_source = 18;
+
+  // Current state of the battery.
+  optional BatteryState battery_state = 15;
+
+  // Estimated battery charge as a percent of its total capacity, in the
+  // range [0.0, 100.0].
+  optional double battery_percent = 7;
+
+  // Estimated time until the battery is empty, in seconds, or zero if the
+  // battery isn't discharging. -1 if the estimated time would be huge
+  // (e.g. because the current is zero or close to zero).
+  optional int64 battery_time_to_empty_sec = 5;
+
+  // Estimated time until the battery is full, in seconds, or zero if the
+  // battery isn't charging. -1 if the estimated time would be huge (e.g.
+  // because the current is zero or close to zero).
+  optional int64 battery_time_to_full_sec = 6;
+
+  // True when |battery_time_to_*| can't be trusted, e.g. because the power
+  // source just changed.
+  optional bool is_calculating_battery_time = 12 [default = false];
+
+  // The battery discharge rate measured in W. Positive if the battery is
+  // being discharged and negative if it's being charged.
+  optional double battery_discharge_rate = 16;
+
+  // True if it is possible for some connected devices to function as either
+  // sources or sinks (i.e. to either deliver or receive charge).
+  optional bool supports_dual_role_devices = 19;
+
+  // Next ID to use: 20
+}
diff --git a/system_api/dbus/power_manager/suspend.proto b/system_api/dbus/power_manager/suspend.proto
new file mode 100644
index 0000000..4e4594c
--- /dev/null
+++ b/system_api/dbus/power_manager/suspend.proto
@@ -0,0 +1,112 @@
+// Copyright 2014 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+
+package power_manager;
+
+// Included in powerd's SuspendImminent signal, sent when the system is about to
+// suspend.  If any clients previously called RegisterSuspendDelay, suspending
+// will be deferred until they've called powerd's HandleSuspendReadiness method.
+//
+// The general flow is as follows:
+//
+// 1. A client that needs to perform some work before the system can be
+//    suspended listens for SuspendImminent and SuspendDone signals from powerd.
+// 2. The client passes a RegisterSuspendDelayRequest message to powerd's
+//    RegisterSuspendDelay method and receives a RegisterSuspendDelayReply
+//    message in response. The client saves the |delay_id| field from the
+//    response.
+// 3. When the power manager is about to suspend the system, it emits a
+//    SuspendImminent signal containing a SuspendImminent message.
+// 4. Upon receipt of the signal, the client performs any last minute work
+//    that it needs to do and then calls powerd's HandleSuspendReadiness method,
+//    including a SuspendReadinessInfo message with its |delay_id| and the
+//    |suspend_id| field from the SuspendImminent signal.
+// 5. Once powerd has received notification that all registered clients are
+//    ready to suspend, the system will be suspended. If the initial suspend
+//    attempt fails, it will be retried automatically, but additional
+//    SuspendImminent signals will not be emitted.
+// 6. After the suspend request is complete, powerd emits a SuspendDone signal
+//    containing a SuspendDone message. The client should undo any pre-suspend
+//    work that was done in response to the SuspendImminent signal.
+// 7. Before the client exits, it calls UnregisterSuspendDelayRequest with a
+//    UnregisterSuspendDelayRequest message containing its delay ID.
+message SuspendImminent {
+  // Next ID to use: 2
+
+  // Unique ID corresponding to this suspend request. This is included in the
+  // SuspendReadinessInfo message passed via HandleSuspendReadiness.
+  optional int32 suspend_id = 1;
+}
+
+// Included in powerd's SuspendDone signal, sent after the system has completed
+// a suspend request. Each SuspendImminent signal will be followed by a
+// SuspendDone signal.
+message SuspendDone {
+  // Next ID to use: 3
+
+  // Unique ID corresponding to the suspend request.
+  optional int32 suspend_id = 1;
+
+  // Wall time that the system was suspended, as given by
+  // base::TimeDelta::ToInternalValue().
+  optional int64 suspend_duration = 2;
+}
+
+// Included in calls to powerd's RegisterSuspendDelay method.
+message RegisterSuspendDelayRequest {
+  // Next ID to use: 3
+
+  // Upper bound on the amount of time that the power manager will wait for this
+  // client to call HandleSuspendReadiness before suspending the system, as
+  // given by base::TimeDelta::ToInternalValue().
+  optional int64 timeout = 1;
+
+  // Human-readable description of the delay's purpose (e.g. the name of
+  // the daemon that requested the delay). Only used for debugging.
+  optional string description = 2;
+}
+
+// Included in responses to powerd's RegisterSuspendDelay method.
+message RegisterSuspendDelayReply {
+  // Next ID to use: 2
+
+  // Unique ID assigned to the client that registered this suspend delay. This
+  // is included in later HandleSuspendReadiness and UnregisterSuspendDelay
+  // calls.
+  optional int32 delay_id = 1;
+}
+
+// Included in calls to powerd's UnregisterSuspendDelay method.
+message UnregisterSuspendDelayRequest {
+  // Next ID to use: 2
+
+  // ID that was returned in response to the original RegisterSuspendDelay call.
+  optional int32 delay_id = 1;
+}
+
+// Included in calls to powerd's HandleSuspendReadiness method.
+message SuspendReadinessInfo {
+  // Next ID to use: 3
+
+  // ID that was returned to the client in response to its invocation of
+  // RegisterSuspendDelay.
+  optional int32 delay_id = 1;
+
+  // ID that was included in the SuspendImminent signal that provoked this
+  // readiness call.
+  optional int32 suspend_id = 2;
+}
+
+// Included in calls to powerd's RecordDarkResumeWakeReason method.
+message DarkResumeWakeReason {
+  // Next ID to use: 2
+
+  // Wake reason that caused the current dark resume.
+  optional string wake_reason = 1;
+}
+
diff --git a/system_api/dbus/service_constants.h b/system_api/dbus/service_constants.h
new file mode 100644
index 0000000..79d4a72
--- /dev/null
+++ b/system_api/dbus/service_constants.h
@@ -0,0 +1,944 @@
+// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_SERVICE_CONSTANTS_H_
+#define SYSTEM_API_DBUS_SERVICE_CONSTANTS_H_
+
+#include <stdint.h>  // for uint32_t
+
+// We use relative includes here to make this compatible with both the
+// Chromium OS and Chromium environment.
+#include "apmanager/dbus-constants.h"
+#include "cros-disks/dbus-constants.h"
+#include "cryptohome/dbus-constants.h"
+#include "debugd/dbus-constants.h"
+#include "login_manager/dbus-constants.h"
+#include "lorgnette/dbus-constants.h"
+#include "permission_broker/dbus-constants.h"
+#include "power_manager/dbus-constants.h"
+#include "shill/dbus-constants.h"
+#include "update_engine/dbus-constants.h"
+
+namespace dbus {
+const char kDBusInterface[] = "org.freedesktop.DBus";
+const char kDBusServiceName[] = "org.freedesktop.DBus";
+const char kDBusServicePath[] = "/org/freedesktop/DBus";
+
+// Object Manager interface
+const char kDBusObjectManagerInterface[] = "org.freedesktop.DBus.ObjectManager";
+// Methods
+const char kDBusObjectManagerGetManagedObjects[] = "GetManagedObjects";
+// Signals
+const char kDBusObjectManagerInterfacesAddedSignal[] = "InterfacesAdded";
+const char kDBusObjectManagerInterfacesRemovedSignal[] = "InterfacesRemoved";
+
+// Properties interface
+const char kDBusPropertiesInterface[] = "org.freedesktop.DBus.Properties";
+// Methods
+const char kDBusPropertiesGet[] = "Get";
+const char kDBusPropertiesSet[] = "Set";
+const char kDBusPropertiesGetAll[] = "GetAll";
+// Signals
+const char kDBusPropertiesChangedSignal[] = "PropertiesChanged";
+}  // namespace dbus
+
+namespace imageburn {
+const char kImageBurnServiceName[] = "org.chromium.ImageBurner";
+const char kImageBurnServicePath[] = "/org/chromium/ImageBurner";
+const char kImageBurnServiceInterface[] = "org.chromium.ImageBurnerInterface";
+// Methods
+const char kBurnImage[] = "BurnImage";
+// Signals
+const char kSignalBurnFinishedName[] = "burn_finished";
+const char kSignalBurnUpdateName[] = "burn_progress_update";
+}  // namespace imageburn
+
+namespace speech_synthesis {
+const char kSpeechSynthesizerInterface[] =
+    "org.chromium.SpeechSynthesizerInterface";
+const char kSpeechSynthesizerServicePath[] = "/org/chromium/SpeechSynthesizer";
+const char kSpeechSynthesizerServiceName[] = "org.chromium.SpeechSynthesizer";
+// Methods
+const char kSpeak[] = "Speak";
+const char kStop[] = "Stop";
+const char kIsSpeaking[] = "IsSpeaking";
+const char kShutdown[] = "Shutdown";
+}  // namespace speech_synthesis
+
+namespace chromium {
+const char kChromiumInterface[] = "org.chromium.Chromium";
+// Text-to-speech service signals.
+const char kTTSReadySignal[] = "TTSReady";
+const char kTTSFailedSignal[] = "TTSFailed";
+}  // namespace chromium
+
+namespace chromeos {
+const char kLibCrosServiceName[] = "org.chromium.LibCrosService";
+const char kLibCrosServicePath[] = "/org/chromium/LibCrosService";
+const char kLibCrosServiceInterface[] = "org.chromium.LibCrosServiceInterface";
+// Methods
+const char kResolveNetworkProxy[] = "ResolveNetworkProxy";
+const char kCheckLiveness[] = "CheckLiveness";
+const char kGetKioskAppRequiredPlatforVersion[] =
+    "GetKioskAppRequiredPlatformVersion";
+const char kLockScreen[] = "LockScreen";
+const char kSetDisplayPower[] = "SetDisplayPower";
+const char kSetDisplaySoftwareDimming[] = "SetDisplaySoftwareDimming";
+const char kTakeDisplayOwnership[] = "TakeDisplayOwnership";
+const char kReleaseDisplayOwnership[] = "ReleaseDisplayOwnership";
+// Values
+enum DisplayPowerState {
+  DISPLAY_POWER_ALL_ON = 0,
+  DISPLAY_POWER_ALL_OFF = 1,
+  DISPLAY_POWER_INTERNAL_OFF_EXTERNAL_ON = 2,
+  DISPLAY_POWER_INTERNAL_ON_EXTERNAL_OFF = 3,
+};
+}  // namespace chromeos
+
+namespace cromo {
+// cromo D-Bus service identifiers
+const char kCromoServiceName[] = "org.chromium.ModemManager";
+const char kCromoServicePath[] = "/org/chromium/ModemManager";
+
+// cromo D-Bus interfaces
+const char kModemInterface[] = "org.freedesktop.ModemManager.Modem";
+const char kModemSimpleInterface[] =
+    "org.freedesktop.ModemManager.Modem.Simple";
+const char kModemCdmaInterface[] = "org.freedesktop.ModemManager.Modem.Cdma";
+const char kModemGsmInterface[] = "org.freedesktop.ModemManager.Modem.Gsm";
+const char kModemGsmCardInterface[] =
+    "org.freedesktop.ModemManager.Modem.Gsm.Card";
+const char kModemGsmNetworkInterface[] =
+    "org.freedesktop.ModemManager.Modem.Gsm.Network";
+const char kModemGobiInterface[] = "org.chromium.ModemManager.Modem.Gobi";
+}  // namespace cromo
+
+namespace modemmanager {
+// ModemManager D-Bus service identifiers
+const char kModemManagerSMSInterface[] =
+    "org.freedesktop.ModemManager.Modem.Gsm.SMS";
+
+// ModemManager function names.
+const char kSMSGetFunction[] = "Get";
+const char kSMSDeleteFunction[] = "Delete";
+const char kSMSListFunction[] = "List";
+
+// ModemManager monitored signals
+const char kSMSReceivedSignal[] = "SmsReceived";
+
+// ModemManager1 interfaces and signals
+// The canonical source for these constants is:
+//   /usr/include/ModemManager/ModemManager-names.h
+const char kModemManager1ServiceName[] = "org.freedesktop.ModemManager1";
+const char kModemManager1ServicePath[] = "/org/freedesktop/ModemManager1";
+const char kModemManager1MessagingInterface[] =
+    "org.freedesktop.ModemManager1.Modem.Messaging";
+const char kModemManager1SmsInterface[] =
+    "org.freedesktop.ModemManager1.Sms";
+const char kSMSAddedSignal[] = "Added";
+}  // namespace modemmanager
+
+namespace wimax_manager {
+// WiMaxManager D-Bus service identifiers
+const char kWiMaxManagerServiceName[] = "org.chromium.WiMaxManager";
+const char kWiMaxManagerServicePath[] = "/org/chromium/WiMaxManager";
+const char kWiMaxManagerServiceError[] = "org.chromium.WiMaxManager.Error";
+const char kWiMaxManagerInterface[] = "org.chromium.WiMaxManager";
+const char kWiMaxManagerDeviceInterface[] = "org.chromium.WiMaxManager.Device";
+const char kWiMaxManagerNetworkInterface[] =
+    "org.chromium.WiMaxManager.Network";
+const char kDeviceObjectPathPrefix[] = "/org/chromium/WiMaxManager/Device/";
+const char kNetworkObjectPathPrefix[] = "/org/chromium/WiMaxManager/Network/";
+const char kDevicesProperty[] = "Devices";
+const char kNetworksProperty[] = "Networks";
+const char kEAPAnonymousIdentity[] = "EAPAnonymousIdentity";
+const char kEAPUserIdentity[] = "EAPUserIdentity";
+const char kEAPUserPassword[] = "EAPUserPassword";
+
+enum DeviceStatus {
+  kDeviceStatusUninitialized,
+  kDeviceStatusDisabled,
+  kDeviceStatusReady,
+  kDeviceStatusScanning,
+  kDeviceStatusConnecting,
+  kDeviceStatusConnected
+};
+}  // namespace wimax_manager
+
+namespace bluetooth_plugin {
+// Service identifiers for the plugin interface added to the /org/bluez object.
+const char kBluetoothPluginServiceName[] = "org.bluez";
+const char kBluetoothPluginInterface[] = "org.chromium.Bluetooth";
+
+// Bluetooth plugin properties.
+const char kSupportsLEServices[] = "SupportsLEServices";
+const char kSupportsConnInfo[] = "SupportsConnInfo";
+}  // namespace bluetooth_plugin
+
+namespace bluetooth_plugin_device {
+// Service identifiers for the plugin interface added to Bluetooth Device
+// objects.
+const char kBluetoothPluginServiceName[] = "org.bluez";
+const char kBluetoothPluginInterface[] = "org.chromium.BluetoothDevice";
+
+// Bluetooth Device plugin methods.
+const char kGetConnInfo[] = "GetConnInfo";
+}  // namespace bluetooth_plugin_device
+
+namespace bluetooth_adapter {
+// Bluetooth Adapter service identifiers.
+const char kBluetoothAdapterServiceName[] = "org.bluez";
+const char kBluetoothAdapterInterface[] = "org.bluez.Adapter1";
+
+// Bluetooth Adapter methods.
+const char kStartDiscovery[] = "StartDiscovery";
+const char kSetDiscoveryFilter[] = "SetDiscoveryFilter";
+const char kStopDiscovery[] = "StopDiscovery";
+const char kRemoveDevice[] = "RemoveDevice";
+const char kCreateServiceRecord[] = "CreateServiceRecord";
+const char kRemoveServiceRecord[] = "RemoveServiceRecord";
+
+// Bluetooth Adapter properties.
+const char kAddressProperty[] = "Address";
+const char kNameProperty[] = "Name";
+const char kAliasProperty[] = "Alias";
+const char kClassProperty[] = "Class";
+const char kPoweredProperty[] = "Powered";
+const char kDiscoverableProperty[] = "Discoverable";
+const char kPairableProperty[] = "Pairable";
+const char kPairableTimeoutProperty[] = "PairableTimeout";
+const char kDiscoverableTimeoutProperty[] = "DiscoverableTimeout";
+const char kDiscoveringProperty[] = "Discovering";
+const char kUUIDsProperty[] = "UUIDs";
+const char kModaliasProperty[] = "Modalias";
+
+// Bluetooth Adapter errors.
+const char kErrorNotReady[] = "org.bluez.Error.NotReady";
+const char kErrorFailed[] = "org.bluez.Error.Failed";
+const char kErrorNotAuthorized[] = "org.bluez.Error.NotAuthorized";
+const char kErrorInvalidArguments[] = "org.bluez.Error.InvalidArguments";
+const char kErrorAlreadyExists[] = "org.bluez.Error.AlreadyExists";
+const char kErrorDoesNotExist[] = "org.bluez.Error.DoesNotExist";
+
+// Bluetooth Adapter parameters supplied to SetDiscoveryFilter request.
+const char kDiscoveryFilterParameterUUIDs[] = "UUIDs";
+const char kDiscoveryFilterParameterRSSI[] = "RSSI";
+const char kDiscoveryFilterParameterPathloss[] = "Pathloss";
+const char kDiscoveryFilterParameterTransport[] = "Transport";
+}  // namespace bluetooth_adapter
+
+namespace bluetooth_agent_manager {
+// Bluetooth Agent Manager service indentifiers
+const char kBluetoothAgentManagerServiceName[] = "org.bluez";
+const char kBluetoothAgentManagerServicePath[] = "/org/bluez";
+const char kBluetoothAgentManagerInterface[] = "org.bluez.AgentManager1";
+
+// Bluetooth Agent Manager methods.
+const char kRegisterAgent[] = "RegisterAgent";
+const char kUnregisterAgent[] = "UnregisterAgent";
+const char kRequestDefaultAgent[] = "RequestDefaultAgent";
+
+// Bluetooth capabilities.
+const char kNoInputNoOutputCapability[] = "NoInputNoOutput";
+const char kDisplayOnlyCapability[] = "DisplayOnly";
+const char kKeyboardOnlyCapability[] = "KeyboardOnly";
+const char kDisplayYesNoCapability[] = "DisplayYesNo";
+const char kKeyboardDisplayCapability[] = "KeyboardDisplay";
+
+// Bluetooth Agent Manager errors.
+const char kErrorInvalidArguments[] = "org.bluez.Error.InvalidArguments";
+const char kErrorAlreadyExists[] = "org.bluez.Error.AlreadyExists";
+const char kErrorDoesNotExist[] = "org.bluez.Error.DoesNotExist";
+}  // namespace bluetooth_agent_manager
+
+
+namespace bluetooth_agent {
+// Bluetooth Agent service indentifiers
+const char kBluetoothAgentInterface[] = "org.bluez.Agent1";
+
+// Bluetooth Agent methods.
+const char kRelease[] = "Release";
+const char kRequestPinCode[] = "RequestPinCode";
+const char kDisplayPinCode[] = "DisplayPinCode";
+const char kRequestPasskey[] = "RequestPasskey";
+const char kDisplayPasskey[] = "DisplayPasskey";
+const char kRequestConfirmation[] = "RequestConfirmation";
+const char kRequestAuthorization[] = "RequestAuthorization";
+const char kAuthorizeService[] = "AuthorizeService";
+const char kCancel[] = "Cancel";
+
+// Bluetooth Agent errors.
+const char kErrorRejected[] = "org.bluez.Error.Rejected";
+const char kErrorCanceled[] = "org.bluez.Error.Canceled";
+}  // namespace bluetooth_agent
+
+namespace bluetooth_device {
+// Bluetooth Device service identifiers.
+const char kBluetoothDeviceServiceName[] = "org.bluez";
+const char kBluetoothDeviceInterface[] = "org.bluez.Device1";
+
+// Bluetooth Device methods.
+const char kConnect[] = "Connect";
+const char kDisconnect[] = "Disconnect";
+const char kConnectProfile[] = "ConnectProfile";
+const char kDisconnectProfile[] = "DisconnectProfile";
+const char kPair[] = "Pair";
+const char kCancelPairing[] = "CancelPairing";
+const char kGetServiceRecords[] = "GetServiceRecords";
+
+// Bluetooth Device properties.
+const char kAddressProperty[] = "Address";
+const char kNameProperty[] = "Name";
+const char kIconProperty[] = "Icon";
+const char kClassProperty[] = "Class";
+const char kTypeProperty[] = "Type";
+const char kAppearanceProperty[] = "Appearance";
+const char kUUIDsProperty[] = "UUIDs";
+const char kPairedProperty[] = "Paired";
+const char kConnectedProperty[] = "Connected";
+const char kTrustedProperty[] = "Trusted";
+const char kBlockedProperty[] = "Blocked";
+const char kAliasProperty[] = "Alias";
+const char kAdapterProperty[] = "Adapter";
+const char kLegacyPairingProperty[] = "LegacyPairing";
+const char kModaliasProperty[] = "Modalias";
+const char kRSSIProperty[] = "RSSI";
+const char kTxPowerProperty[] = "TxPower";
+const char kManufacturerDataProperty[] = "ManufacturerData";
+const char kServiceDataProperty[] = "ServiceData";
+const char kGattServicesProperty[] = "GattServices";         // DEPRECATED
+const char kServicesResolvedProperty[] = "ServicesResolved";
+
+// Bluetooth Device errors.
+const char kErrorNotReady[] = "org.bluez.Error.NotReady";
+const char kErrorFailed[] = "org.bluez.Error.Failed";
+const char kErrorInProgress[] = "org.bluez.Error.InProgress";
+const char kErrorAlreadyConnected[] = "org.bluez.Error.AlreadyConnected";
+const char kErrorNotConnected[] = "org.bluez.Error.NotConnected";
+const char kErrorDoesNotExist[] = "org.bluez.Error.DoesNotExist";
+const char kErrorInvalidArguments[] = "org.bluez.Error.InvalidArguments";
+
+// Undocumented errors that we know BlueZ returns for Bluetooth Device methods.
+const char kErrorNotSupported[] = "org.bluez.Error.NotSupported";
+const char kErrorAuthenticationCanceled[] =
+    "org.bluez.Error.AuthenticationCanceled";
+const char kErrorAuthenticationFailed[] =
+    "org.bluez.Error.AuthenticationFailed";
+const char kErrorAuthenticationRejected[] =
+    "org.bluez.Error.AuthenticationRejected";
+const char kErrorAuthenticationTimeout[] =
+    "org.bluez.Error.AuthenticationTimeout";
+const char kErrorConnectionAttemptFailed[] =
+    "org.bluez.Error.ConnectionAttemptFailed";
+}  // namespace bluetooth_device
+
+namespace bluetooth_gatt_characteristic {
+// Bluetooth GATT Characteristic service identifiers. The service name is used
+// only for characteristic objects hosted by bluetoothd.
+const char kBluetoothGattCharacteristicServiceName[] = "org.bluez";
+const char kBluetoothGattCharacteristicInterface[] =
+    "org.bluez.GattCharacteristic1";
+
+// Bluetooth GATT Characteristic methods.
+const char kReadValue[] = "ReadValue";
+const char kWriteValue[] = "WriteValue";
+const char kStartNotify[] = "StartNotify";
+const char kStopNotify[] = "StopNotify";
+
+// Bluetooth GATT Characteristic signals.
+const char kValueUpdatedSignal[] = "ValueUpdated";
+
+// Possible keys for option dict used in ReadValue and WriteValue.
+const char kOptionOffset[] = "offset";
+const char kOptionDevice[] = "device";
+
+// Bluetooth GATT Characteristic properties.
+const char kUUIDProperty[] = "UUID";
+const char kServiceProperty[] = "Service";
+const char kValueProperty[] = "Value";
+const char kFlagsProperty[] = "Flags";
+const char kNotifyingProperty[] = "Notifying";
+const char kDescriptorsProperty[] = "Descriptors";
+
+// Possible values for Bluetooth GATT Characteristic "Flags" property.
+const char kFlagBroadcast[] = "broadcast";
+const char kFlagRead[] = "read";
+const char kFlagWriteWithoutResponse[] = "write-without-response";
+const char kFlagWrite[] = "write";
+const char kFlagNotify[] = "notify";
+const char kFlagIndicate[] = "indicate";
+const char kFlagAuthenticatedSignedWrites[] = "authenticated-signed-writes";
+const char kFlagExtendedProperties[] = "extended-properties";
+const char kFlagReliableWrite[] = "reliable-write";
+const char kFlagWritableAuxiliaries[] = "writable-auxiliaries";
+const char kFlagEncryptRead[] = "encrypt-read";
+const char kFlagEncryptWrite[] = "encrypt-write";
+const char kFlagEncryptAuthenticatedRead[] = "encrypt-authenticated-read";
+const char kFlagEncryptAuthenticatedWrite[] = "encrypt-authenticated-write";
+}  // namespace bluetooth_gatt_characteristic
+
+namespace bluetooth_gatt_descriptor {
+// Bluetooth GATT Descriptor service identifiers. The service name is used
+// only for descriptor objects hosted by bluetoothd.
+const char kBluetoothGattDescriptorServiceName[] = "org.bluez";
+const char kBluetoothGattDescriptorInterface[] = "org.bluez.GattDescriptor1";
+
+// Bluetooth GATT Descriptor methods.
+const char kReadValue[] = "ReadValue";
+const char kWriteValue[] = "WriteValue";
+
+// Possible keys for option dict used in ReadValue and WriteValue.
+const char kOptionOffset[] = "offset";
+const char kOptionDevice[] = "device";
+
+// Bluetooth GATT Descriptor properties.
+const char kUUIDProperty[] = "UUID";
+const char kCharacteristicProperty[] = "Characteristic";
+const char kValueProperty[] = "Value";
+const char kFlagsProperty[] = "Flags";
+
+// Possible values for Bluetooth GATT Descriptor "Flags" property.
+const char kFlagRead[] = "read";
+const char kFlagWrite[] = "write";
+const char kFlagEncryptRead[] = "encrypt-read";
+const char kFlagEncryptWrite[] = "encrypt-write";
+const char kFlagEncryptAuthenticatedRead[] = "encrypt-authenticated-read";
+const char kFlagEncryptAuthenticatedWrite[] = "encrypt-authenticated-write";
+}  // namespace bluetooth_gatt_descriptor
+
+namespace bluetooth_gatt_manager {
+// Bluetooth GATT Manager service identifiers.
+const char kBluetoothGattManagerServiceName[] = "org.bluez";
+const char kBluetoothGattManagerInterface[] = "org.bluez.GattManager1";
+
+// Bluetooth GATT Manager methods.
+const char kRegisterApplication[] = "RegisterApplication";
+const char kUnregisterApplication[] = "UnregisterApplication";
+const char kRegisterService[] = "RegisterService";
+const char kUnregisterService[] = "UnregisterService";
+
+// Bluetooth GATT Manager errors.
+const char kErrorInvalidArguments[] = "org.bluez.Error.InvalidArguments";
+const char kErrorAlreadyExists[] = "org.bluez.Error.AlreadyExists";
+const char kErrorDoesNotExist[] = "org.bluez.Error.DoesNotExist";
+}  // namespace bluetooth_gatt_manager
+
+namespace bluetooth_gatt_service {
+// Bluetooth GATT Service service identifiers. The service name is used
+// only for service objects hosted by bluetoothd.
+const char kBluetoothGattServiceServiceName[] = "org.bluez";
+const char kBluetoothGattServiceInterface[] = "org.bluez.GattService1";
+
+// Bluetooth GATT Service properties.
+const char kUUIDProperty[] = "UUID";
+const char kDeviceProperty[] = "Device";
+const char kPrimaryProperty[] = "Primary";
+const char kIncludesProperty[] = "Includes";
+const char kCharacteristicsProperty[] = "Characteristics";
+
+// Bluetooth GATT Service errors.
+const char kErrorFailed[] = "org.bluez.Error.Failed";
+const char kErrorInProgress[] = "org.bluez.Error.InProgress";
+const char kErrorInvalidValueLength[] = "org.bluez.Error.InvalidValueLength";
+const char kErrorNotAuthorized[] = "org.bluez.Error.NotAuthorized";
+const char kErrorNotPaired[] = "org.bluez.Error.NotPaired";
+const char kErrorNotSupported[] = "org.bluez.Error.NotSupported";
+const char kErrorReadNotPermitted[] = "org.bluez.Error.ReadNotPermitted";
+const char kErrorWriteNotPermitted[] = "org.bluez.Error.WriteNotPermitted";
+}  // namespace bluetooth_gatt_service
+
+namespace bluetooth_input {
+// Bluetooth Input service identifiers.
+const char kBluetoothInputServiceName[] = "org.bluez";
+const char kBluetoothInputInterface[] = "org.bluez.Input1";
+
+// Bluetooth Input properties.
+const char kReconnectModeProperty[] = "ReconnectMode";
+
+// Bluetooth Input property values.
+const char kNoneReconnectModeProperty[] = "none";
+const char kHostReconnectModeProperty[] = "host";
+const char kDeviceReconnectModeProperty[] = "device";
+const char kAnyReconnectModeProperty[] = "any";
+}  // namespace bluetooth_input
+
+namespace bluetooth_media {
+// Bluetooth Media service identifiers
+const char kBluetoothMediaServiceName[] = "org.bluez";
+const char kBluetoothMediaInterface[] = "org.bluez.Media1";
+
+// Bluetooth Media methods
+const char kRegisterEndpoint[] = "RegisterEndpoint";
+const char kUnregisterEndpoint[] = "UnregisterEndpoint";
+const char kRegisterPlayer[] = "RegisterPlayer";
+const char kUnregisterPlayer[] = "UnregisterPlayer";
+
+// Bluetooth Media errors
+const char kErrorFailed[] = "org.bluez.Error.Failed";
+const char kErrorInvalidArguments[] = "org.bluez.Error.InvalidArguments";
+const char kErrorNotSupported[] = "org.bluez.Error.NotSupported";
+}  // namespace bluetooth_media
+
+namespace bluetooth_media_endpoint {
+// Bluetooth Media Endpoint service identifiers
+const char kBluetoothMediaEndpointServiceName[] = "org.bluez";
+const char kBluetoothMediaEndpointInterface[] = "org.bluez.MediaEndpoint1";
+
+// Bluetooth Media Endpoint methods
+const char kSetConfiguration[] = "SetConfiguration";
+const char kSelectConfiguration[] = "SelectConfiguration";
+const char kClearConfiguration[] = "ClearConfiguration";
+const char kRelease[] = "Release";
+}  // namespace bluetooth_media_endpoint
+
+namespace bluetooth_media_transport {
+// Bluetooth Media Transport service identifiers
+const char kBluetoothMediaTransportServiceName[] = "org.bluez";
+const char kBluetoothMediaTransportInterface[] = "org.bluez.MediaTransport1";
+
+// Bluetooth Media Transport methods
+const char kAcquire[] = "Acquire";
+const char kTryAcquire[] = "TryAcquire";
+const char kRelease[] = "Release";
+
+// Bluetooth Media Transport property names.
+const char kDeviceProperty[] = "Device";
+const char kUUIDProperty[] = "UUID";
+const char kCodecProperty[] = "Codec";
+const char kConfigurationProperty[] = "Configuration";
+const char kStateProperty[] = "State";
+const char kDelayProperty[] = "Delay";
+const char kVolumeProperty[] = "Volume";
+
+// Possible states for the "State" property
+const char kStateIdle[] = "idle";
+const char kStatePending[] = "pending";
+const char kStateActive[] = "active";
+
+// Bluetooth Media Transport errors.
+const char kErrorFailed[] = "org.bluez.Error.Failed";
+const char kErrorNotAuthorized[] = "org.bluez.Error.NotAuthorized";
+const char kErrorNotAvailable[] = "org.bluez.Error.NotAvailable";
+}  // namespace bluetooth_media_transport
+
+namespace bluetooth_object_manager {
+// Bluetooth daemon Object Manager service identifiers.
+const char kBluetoothObjectManagerServiceName[] = "org.bluez";
+const char kBluetoothObjectManagerServicePath[] = "/";
+}  // namespace bluetooth_object_manager
+
+namespace bluetooth_profile_manager {
+// Bluetooth Profile Manager service identifiers.
+const char kBluetoothProfileManagerServiceName[] = "org.bluez";
+const char kBluetoothProfileManagerServicePath[] = "/org/bluez";
+const char kBluetoothProfileManagerInterface[] = "org.bluez.ProfileManager1";
+
+// Bluetooth Profile Manager methods.
+const char kRegisterProfile[] = "RegisterProfile";
+const char kUnregisterProfile[] = "UnregisterProfile";
+
+// Bluetooth Profile Manager option names.
+const char kNameOption[] = "Name";
+const char kServiceOption[] = "Service";
+const char kRoleOption[] = "Role";
+const char kChannelOption[] = "Channel";
+const char kPSMOption[] = "PSM";
+const char kRequireAuthenticationOption[] = "RequireAuthentication";
+const char kRequireAuthorizationOption[] = "RequireAuthorization";
+const char kAutoConnectOption[] = "AutoConnect";
+const char kServiceRecordOption[] = "ServiceRecord";
+const char kVersionOption[] = "Version";
+const char kFeaturesOption[] = "Features";
+
+// Bluetooth Profile Manager option values.
+const char kClientRoleOption[] = "client";
+const char kServerRoleOption[] = "server";
+
+// Bluetooth Profile Manager errors.
+const char kErrorInvalidArguments[] = "org.bluez.Error.InvalidArguments";
+const char kErrorAlreadyExists[] = "org.bluez.Error.AlreadyExists";
+const char kErrorDoesNotExist[] = "org.bluez.Error.DoesNotExist";
+}  // namespace bluetooth_profile_manager
+
+namespace bluetooth_profile {
+// Bluetooth Profile service identifiers.
+const char kBluetoothProfileInterface[] = "org.bluez.Profile1";
+
+// Bluetooth Profile methods.
+const char kRelease[] = "Release";
+const char kNewConnection[] = "NewConnection";
+const char kRequestDisconnection[] = "RequestDisconnection";
+const char kCancel[] = "Cancel";
+
+// Bluetooth Profile property names.
+const char kVersionProperty[] = "Version";
+const char kFeaturesProperty[] = "Features";
+
+// Bluetooth Profile errors.
+const char kErrorRejected[] = "org.bluez.Error.Rejected";
+const char kErrorCanceled[] = "org.bluez.Error.Canceled";
+}  // namespace bluetooth_profile
+
+namespace bluetooth_advertisement {
+// Bluetooth LE Advertisement service identifiers.
+const char kBluetoothAdvertisementServiceName[] = "org.bluez";
+const char kBluetoothAdvertisementInterface[] =
+    "org.bluez.LEAdvertisement1";
+
+// Bluetooth Advertisement methods.
+const char kRelease[] = "Release";
+
+// Bluetooth Advertisement properties.
+const char kManufacturerDataProperty[] = "ManufacturerData";
+const char kServiceUUIDsProperty[] = "ServiceUUIDs";
+const char kServiceDataProperty[] = "ServiceData";
+const char kSolicitUUIDsProperty[] = "SolicitUUIDs";
+const char kTypeProperty[] = "Type";
+const char kIncludeTxPowerProperty[] = "IncludeTxPower";
+
+// Possible values for the "Type" property.
+const char kTypeBroadcast[] = "broadcast";
+const char kTypePeripheral[] = "peripheral";
+
+}  // namespace bluetooth_advertisement
+
+namespace bluetooth_advertising_manager {
+// Bluetooth LE Advertising Manager service identifiers.
+const char kBluetoothAdvertisingManagerServiceName[] = "org.bluez";
+const char kBluetoothAdvertisingManagerInterface[] =
+    "org.bluez.LEAdvertisingManager1";
+
+// Bluetooth LE Advertising Manager methods.
+const char kRegisterAdvertisement[] = "RegisterAdvertisement";
+const char kUnregisterAdvertisement[] = "UnregisterAdvertisement";
+
+// Bluetooth LE Advertising Manager errors.
+const char kErrorAlreadyExists[] = "org.bluez.Error.AlreadyExists";
+const char kErrorDoesNotExist[] = "org.bluez.Error.DoesNotExist";
+const char kErrorFailed[] = "org.bluez.Error.Failed";
+const char kErrorInvalidArguments[] = "org.bluez.Error.InvalidArguments";
+const char kErrorInvalidLength[] = "org.bluez.Error.InvalidLength";
+}  // namespace bluetooth_advertising_manager
+
+namespace nfc_adapter {
+// NFC Adapter service identifiers.
+const char kNfcAdapterServiceName[] = "org.neard";
+const char kNfcAdapterInterface[] = "org.neard.Adapter";
+
+// NFC Adapter methods.
+const char kStartEmulation[] = "StartEmulation";
+const char kStartPollLoop[] = "StartPollLoop";
+const char kStopEmulation[] = "StopEmulation";
+const char kStopPollLoop[] = "StopPollLoop";
+
+// NFC Adapter signals.
+const char kTagFoundSignal[] = "TagFound";
+const char kTagLostSignal[] = "TagLost";
+
+// NFC Adapter properties.
+const char kDevicesProperty[] = "Devices";
+const char kModeProperty[] = "Mode";
+const char kPollingProperty[] = "Polling";
+const char kPoweredProperty[] = "Powered";
+const char kProtocolsProperty[] = "Protocols";
+const char kTagsProperty[] = "Tags";
+
+// NFC Adapter mode values.
+const char kModeInitiator[] = "Initiator";
+const char kModeTarget[] = "Target";
+const char kModeIdle[] = "Idle";
+
+}  // namespace nfc_adapter
+
+namespace nfc_device {
+// NFC Device service identifiers.
+const char kNfcDeviceServiceName[] = "org.neard";
+const char kNfcDeviceInterface[] = "org.neard.Device";
+
+// NFC Device methods.
+const char kPush[] = "Push";
+
+// NFC Device properties.
+const char kRecordsProperty[] = "Records";
+
+}  // namespace nfc_device
+
+namespace nfc_manager {
+// NFC Manager service identifiers.
+const char kNfcManagerServiceName[] = "org.neard";
+const char kNfcManagerServicePath[] = "/";
+const char kNfcManagerInterface[] = "org.neard.Manager";
+
+// NFC Manager methods.
+const char kRegisterHandoverAgent[] = "RegisterHandoverAgent";
+const char kUnregisterHandoverAgent[] = "UnregisterHandoverAgent";
+const char kRegisterNDEFAgent[] = "RegisterNDEFAgent";
+const char kUnregisterNDEFAgent[] = "UnregisterNDEFAgent";
+
+// NFC Manager signals.
+const char kAdapterAddedSignal[] = "AdapterAdded";
+const char kAdapterRemovedSignal[] = "AdapterRemoved";
+
+// NFC Manager properties.
+const char kAdaptersProperty[] = "Adapters";
+
+// NFC Manager handover carrier values.
+const char kCarrierBluetooth[] = "bluetooth";
+const char kCarrierWifi[] = "wifi";
+}  // namespace nfc_manager
+
+namespace nfc_tag {
+// NFC Tag service identifiers.
+const char kNfcTagServiceName[] = "org.neard";
+const char kNfcTagInterface[] = "org.neard.Tag";
+
+// NFC Tag methods.
+const char kWrite[] = "Write";
+
+// NFC Tag properties.
+const char kProtocolProperty[] = "Protocol";
+const char kReadOnlyProperty[] = "ReadOnly";
+const char kRecordsProperty[] = "Records";
+const char kTypeProperty[] = "Type";
+
+// NFC Tag type values.
+const char kTagType1[] = "Type 1";
+const char kTagType2[] = "Type 2";
+const char kTagType3[] = "Type 3";
+const char kTagType4[] = "Type 4";
+
+}  // namespace nfc_tag
+
+namespace nfc_record {
+// NFC Record service identifiers.
+const char kNfcRecordServiceName[] = "org.neard";
+const char kNfcRecordInterface[] = "org.neard.Record";
+
+// NFC Record properties.
+const char kTypeProperty[] = "Type";
+const char kEncodingProperty[] = "Encoding";
+const char kLanguageProperty[] = "Language";
+const char kRepresentationProperty[] = "Representation";
+const char kUriProperty[] = "URI";
+const char kMimeTypeProperty[] = "MIMEType";
+const char kSizeProperty[] = "Size";
+const char kActionProperty[] = "Action";
+
+// NFC Record type values.
+const char kTypeSmartPoster[] = "SmartPoster";
+const char kTypeText[] = "Text";
+const char kTypeUri[] = "URI";
+const char kTypeHandoverRequest[] = "HandoverRequest";
+const char kTypeHandoverSelect[] = "HandoverSelect";
+const char kTypeHandoverCarrier[] = "HandoverCarrier";
+
+// NFC Record encoding values.
+const char kEncodingUtf8[] = "UTF-8";
+const char kEncodingUtf16[] = "UTF-16";
+}  // namespace nfc_record
+
+namespace nfc_handover_agent {
+// NFC Handover Agent service identifiers.
+// TODO(armansito): Add the correct service name once the HandoverAgent feature
+// is fully implemented.
+const char kNfcHandoverAgentServiceName[] = "";
+const char kNfcHandoverInterface[] = "org.neard.HandoverAgent";
+
+// NFC Handover Agent methods.
+const char kRequestOOB[] = "RequestOOB";
+const char kPushOOB[] = "PushOOB";
+const char kRelease[] = "Release";
+
+// NFC Handover Agent properties.
+const char kEIRProperty[] = "EIR";
+const char kNokiaDotComBtProperty[] = "nokia.com:bt";
+const char kWSCProperty[] = "WSC";
+const char kStateProperty[] = "State";
+}  // namespace nfc_handover_agent
+
+namespace nfc_ndef_agent {
+// NFC NDEF Agent service identifiers.
+// TODO(armansito): Add the correct service name once the NDEFAgent feature
+// is fully implemented.
+const char kNfcNdefAgentServiceName[] = "";
+const char kNfcNdefAgentInterface[] = "org.neard.NDEFAgent";
+
+// NFC NDEF Agent methods.
+const char kGetNDEF[] = "GetNDEF";
+const char kRelease[] = "Release";
+
+// NFC NDEF properties.
+const char kNDEFProperty[] = "NDEF";
+const char kRecordProperty[] = "Record";
+}  // namespace nfc_ndef_agent
+
+namespace nfc_common {
+// NFC Adapter/Tag protocol values.
+const char kProtocolFelica[] = "Felica";
+const char kProtocolMifare[] = "MIFARE";
+const char kProtocolJewel[] = "Jewel";
+const char kProtocolIsoDep[] = "ISO-DEP";
+const char kProtocolNfcDep[] = "NFC-DEP";
+
+// Common methods for NFC property access and signals.
+const char kGetProperties[] = "GetProperties";
+const char kSetProperty[] = "SetProperty";
+const char kPropertyChangedSignal[] = "PropertyChanged";
+}  // namespace nfc_common
+
+namespace nfc_error {
+// NFC errors.
+const char kAlreadyExists[] = "org.neard.Error.AlreadyExists";
+const char kDoesNotExist[] = "org.neard.Error.DoesNotExist";
+const char kFailed[] = "org.neard.Error.Failed";
+const char kInProgress[] = "org.neard.Error.InProgress";
+const char kInvalidArguments[] = "org.neard.Error.InvalidArguments";
+const char kNotReady[] = "org.neard.Error.NotReady";
+const char kNotSupported[] = "org.neard.Error.NotSupported";
+const char kPermissionDenied[] = "org.neard.Error.PermissionDenied";
+
+// NFC Handover Agent errors.
+const char kHandoverAgentFailed[] = "org.neard.HandoverAgent.Error.Failed";
+const char kHandoverAgentInProgress[] =
+    "org.neard.HandoverAgent.Error.InProgress";
+}  // namespace nfc_error
+
+namespace mtpd {
+const char kMtpdInterface[] = "org.chromium.Mtpd";
+const char kMtpdServicePath[] = "/org/chromium/Mtpd";
+const char kMtpdServiceName[] = "org.chromium.Mtpd";
+const char kMtpdServiceError[] = "org.chromium.Mtpd.Error";
+
+// Methods.
+const char kEnumerateStorages[] = "EnumerateStorages";
+const char kGetStorageInfo[] = "GetStorageInfo";
+const char kGetStorageInfoFromDevice[] = "GetStorageInfoFromDevice";
+const char kOpenStorage[] = "OpenStorage";
+const char kCloseStorage[] = "CloseStorage";
+const char kReadDirectoryEntryIds[] = "ReadDirectoryEntryIds";
+const char kGetFileInfo[] = "GetFileInfo";
+const char kReadFileChunk[] = "ReadFileChunk";
+const char kCopyFileFromLocal[] = "CopyFileFromLocal";
+const char kDeleteObject[] = "DeleteObject";
+const char kRenameObject[] = "RenameObject";
+const char kCreateDirectory[] = "CreateDirectory";
+
+// Signals.
+const char kMTPStorageAttached[] = "MTPStorageAttached";
+const char kMTPStorageDetached[] = "MTPStorageDetached";
+
+// For FileEntry struct:
+const uint32_t kInvalidFileId = 0xffffffff;
+
+// For OpenStorage method:
+const char kReadOnlyMode[] = "ro";
+const char kReadWriteMode[] = "rw";
+
+// For GetFileInfo() method:
+// The id of the root node in a storage, as defined by the PTP/MTP standards.
+// Use this when referring to the root node in the context of GetFileInfo().
+const uint32_t kRootFileId = 0;
+}  // namespace mtpd
+
+namespace system_clock {
+const char kSystemClockInterface[] = "org.torproject.tlsdate";
+const char kSystemClockServicePath[] = "/org/torproject/tlsdate";
+const char kSystemClockServiceName[] = "org.torproject.tlsdate";
+
+// Methods.
+const char kSystemClockCanSet[] = "CanSetTime";
+const char kSystemClockSet[] = "SetTime";
+
+// Signals.
+const char kSystemClockUpdated[] = "TimeUpdated";
+}  // namespace system_clock
+
+namespace cras {
+const char kCrasServicePath[] = "/org/chromium/cras";
+const char kCrasServiceName[] = "org.chromium.cras";
+const char kCrasControlInterface[] = "org.chromium.cras.Control";
+
+// Methods.
+const char kSetOutputVolume[] = "SetOutputVolume";
+const char kSetOutputNodeVolume[] = "SetOutputNodeVolume";
+const char kSwapLeftRight[] = "SwapLeftRight";
+const char kSetOutputMute[] = "SetOutputMute";
+const char kSetOutputUserMute[] = "SetOutputUserMute";
+const char kSetSuspendAudio[] = "SetSuspendAudio";
+const char kSetInputGain[] = "SetInputGain";
+const char kSetInputNodeGain[] = "SetInputNodeGain";
+const char kSetInputMute[] = "SetInputMute";
+const char kGetVolumeState[] = "GetVolumeState";
+const char kGetNodes[] = "GetNodes";
+const char kSetActiveOutputNode[] = "SetActiveOutputNode";
+const char kSetActiveInputNode[] = "SetActiveInputNode";
+const char kAddActiveOutputNode[] = "AddActiveOutputNode";
+const char kAddActiveInputNode[] = "AddActiveInputNode";
+const char kRemoveActiveOutputNode[] = "RemoveActiveOutputNode";
+const char kRemoveActiveInputNode[] = "RemoveActiveInputNode";
+const char kGetNumberOfActiveStreams[] = "GetNumberOfActiveStreams";
+const char kGetNumberOfActiveInputStreams[] = "GetNumberOfActiveInputStreams";
+const char kGetNumberOfActiveOutputStreams[] = "GetNumberOfActiveOutputStreams";
+const char kSetGlobalOutputChannelRemix[] = "SetGlobalOutputChannelRemix";
+
+// Names of properties returned by GetNodes()
+const char kIsInputProperty[] = "IsInput";
+const char kIdProperty[] = "Id";
+const char kTypeProperty[] = "Type";
+const char kNameProperty[] = "Name";
+const char kDeviceNameProperty[] = "DeviceName";
+const char kActiveProperty[] = "Active";
+const char kPluggedTimeProperty[] = "PluggedTime";
+const char kMicPositionsProperty[] = "MicPositions";
+const char kStableDeviceIdProperty[] = "StableDeviceId";
+
+// Signals.
+const char kOutputVolumeChanged[] = "OutputVolumeChanged";
+const char kOutputMuteChanged[] = "OutputMuteChanged";
+const char kOutputNodeVolumeChanged[] = "OutputNodeVolumeChanged";
+const char kNodeLeftRightSwappedChanged[] = "NodeLeftRightSwappedChanged";
+const char kInputGainChanged[] = "InputGainChanged";
+const char kInputMuteChanged[] = "InputMuteChanged";
+const char kNodesChanged[] = "NodesChanged";
+const char kActiveOutputNodeChanged[] = "ActiveOutputNodeChanged";
+const char kActiveInputNodeChanged[] = "ActiveInputNodeChanged";
+const char kNumberOfActiveStreamsChanged[] = "NumberOfActiveStreamsChanged";
+}  // namespace cras
+
+namespace feedback {
+const char kFeedbackServicePath[] = "/org/chromium/feedback";
+const char kFeedbackServiceName[] = "org.chromium.feedback";
+
+// Methods.
+const char kSendFeedback[] = "SendFeedback";
+}  // namespace feedback
+
+namespace easy_unlock {
+const char kEasyUnlockServicePath[] = "/org/chromium/EasyUnlock";
+const char kEasyUnlockServiceName[] = "org.chromium.EasyUnlock";
+const char kEasyUnlockServiceInterface[] = "org.chromium.EasyUnlock";
+
+// Values supplied as enrcryption type to CreateSecureMessage and
+// UnwrapSecureMessage methods.
+const char kEncryptionTypeNone[] = "NONE";
+const char kEncryptionTypeAES256CBC[] = "AES_256_CBC";
+
+// Values supplied as signature type to CreateSecureMessage and
+// UnwrapSecureMessage methods.
+const char kSignatureTypeECDSAP256SHA256[] = "ECDSA_P256_SHA256";
+const char kSignatureTypeHMACSHA256[] = "HMAC_SHA256";
+
+// Values supplied as key algorithm to WrapPublicKey method.
+const char kKeyAlgorithmRSA[] = "RSA";
+const char kKeyAlgorithmECDSA[] = "ECDSA";
+
+// Methods
+const char kPerformECDHKeyAgreementMethod[] = "PerformECDHKeyAgreement";
+const char kWrapPublicKeyMethod[] = "WrapPublicKey";
+const char kGenerateEcP256KeyPairMethod[] = "GenerateEcP256KeyPair";
+const char kCreateSecureMessageMethod[] = "CreateSecureMessage";
+const char kUnwrapSecureMessageMethod[] = "UnwrapSecureMessage";
+}  // namespace easy_unlock
+
+#endif  // SYSTEM_API_DBUS_SERVICE_CONSTANTS_H_
diff --git a/system_api/dbus/shill/dbus-constants.h b/system_api/dbus/shill/dbus-constants.h
new file mode 100644
index 0000000..bc76aed
--- /dev/null
+++ b/system_api/dbus/shill/dbus-constants.h
@@ -0,0 +1,733 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_SHILL_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_SHILL_DBUS_CONSTANTS_H_
+
+// TODO(benchan): Reorganize shill constants and remove deprecated ones.
+namespace shill {
+// Flimflam D-Bus service identifiers.
+const char kFlimflamManagerInterface[] = "org.chromium.flimflam.Manager";
+const char kFlimflamServiceName[] = "org.chromium.flimflam";
+const char kFlimflamServicePath[] = "/";  // crosbug.com/20135
+const char kFlimflamServiceInterface[] = "org.chromium.flimflam.Service";
+const char kFlimflamIPConfigInterface[] = "org.chromium.flimflam.IPConfig";
+const char kFlimflamDeviceInterface[] = "org.chromium.flimflam.Device";
+const char kFlimflamProfileInterface[] = "org.chromium.flimflam.Profile";
+const char kFlimflamNetworkInterface[] = "org.chromium.flimflam.Network";
+const char kFlimflamThirdPartyVpnInterface[] =
+    "org.chromium.flimflam.ThirdPartyVpn";
+
+// Flimflam function names.
+const char kGetPropertiesFunction[] = "GetProperties";
+const char kSetPropertyFunction[] = "SetProperty";
+const char kClearPropertyFunction[] = "ClearProperty";
+const char kConnectFunction[] = "Connect";
+const char kDisconnectFunction[] = "Disconnect";
+const char kRequestScanFunction[] = "RequestScan";
+const char kGetServiceFunction[] = "GetService";
+const char kGetWifiServiceFunction[] = "GetWifiService";
+const char kGetVPNServiceFunction[] = "GetVPNService";
+const char kRemoveServiceFunction[] = "Remove";
+const char kEnableTechnologyFunction[] = "EnableTechnology";
+const char kDisableTechnologyFunction[] = "DisableTechnology";
+const char kAddIPConfigFunction[] = "AddIPConfig";
+const char kRemoveConfigFunction[] = "Remove";
+const char kGetEntryFunction[] = "GetEntry";
+const char kDeleteEntryFunction[] = "DeleteEntry";
+const char kActivateCellularModemFunction[] = "ActivateCellularModem";
+const char kRequirePinFunction[] = "RequirePin";
+const char kEnterPinFunction[] = "EnterPin";
+const char kUnblockPinFunction[] = "UnblockPin";
+const char kChangePinFunction[] = "ChangePin";
+const char kProposeScanFunction[] = "ProposeScan";
+const char kRegisterFunction[] = "Register";
+const char kConfigureServiceFunction[] = "ConfigureService";
+const char kConfigureWifiServiceFunction[] = "ConfigureWifiService";
+const char kFindMatchingServiceFunction[] = "FindMatchingService";
+
+// Flimflam Service property names.
+const char kSecurityProperty[] = "Security";
+const char kPriorityProperty[] = "Priority";
+const char kPriorityWithinTechnologyProperty[] = "PriorityWithinTechnology";
+const char kPassphraseProperty[] = "Passphrase";
+const char kIdentityProperty[] = "Identity";
+const char kAuthorityPathProperty[] = "AuthorityPath";
+const char kPassphraseRequiredProperty[] = "PassphraseRequired";
+const char kSaveCredentialsProperty[] = "SaveCredentials";
+const char kSignalStrengthProperty[] = "Strength";
+const char kNameProperty[] = "Name";
+const char kGuidProperty[] = "GUID";
+const char kStateProperty[] = "State";
+const char kTypeProperty[] = "Type";
+const char kDeviceProperty[] = "Device";
+const char kProfileProperty[] = "Profile";
+const char kConnectivityStateProperty[] = "ConnectivityState";
+const char kConnectableProperty[] = "Connectable";
+const char kAutoConnectProperty[] = "AutoConnect";
+const char kIsActiveProperty[] = "IsActive";
+const char kModeProperty[] = "Mode";
+const char kErrorProperty[] = "Error";
+const char kProviderProperty[] = "Provider";
+const char kHostProperty[] = "Host";
+const char kDomainProperty[] = "Domain";
+const char kProxyConfigProperty[] = "ProxyConfig";
+const char kCheckPortalProperty[] = "CheckPortal";
+const char kSSIDProperty[] = "SSID";
+const char kConnectedProperty[] = "Connected";
+const char kUIDataProperty[] = "UIData";
+const char kConnectionIdProperty[] = "ConnectionId";
+const char kVisibleProperty[] = "Visible";
+const char kDnsAutoFallbackProperty[] = "DNSAutoFallback";
+const char kPortalDetectionFailedPhaseProperty[] =
+    "PortalDetectionFailedPhase";
+const char kPortalDetectionFailedStatusProperty[] =
+    "PortalDetectionFailedStatus";
+const char kSavedIPConfigProperty[] = "SavedIPConfig";
+const char kStaticIPConfigProperty[] = "StaticIPConfig";
+const char kLinkMonitorDisableProperty[] = "LinkMonitorDisable";
+const char kSecurityClassProperty[] = "SecurityClass";
+
+// Flimflam provider property names.
+const char kProviderHostProperty[] = "Provider.Host";
+const char kProviderNameProperty[] = "Provider.Name";
+const char kProviderTypeProperty[] = "Provider.Type";
+
+// Flimflam Wifi Service property names.
+const char kWifiBSsid[] = "WiFi.BSSID";
+const char kWifiHexSsid[] = "WiFi.HexSSID";
+const char kWifiFrequency[] = "WiFi.Frequency";
+const char kWifiHiddenSsid[] = "WiFi.HiddenSSID";
+const char kWifiPhyMode[] = "WiFi.PhyMode";
+const char kWifiAuthMode[] = "WiFi.AuthMode";
+const char kWifiChannelProperty[] = "WiFi.Channel";
+const char kWifiPreferredDeviceProperty[] = "WiFi.PreferredDevice";
+const char kWifiRoamThresholdProperty[] = "WiFi.RoamThreshold";
+
+// Flimflam EAP property names.
+const char kEapIdentityProperty[] = "EAP.Identity";
+const char kEapMethodProperty[] = "EAP.EAP";
+const char kEapPhase2AuthProperty[] = "EAP.InnerEAP";
+const char kEapAnonymousIdentityProperty[] = "EAP.AnonymousIdentity";
+const char kEapClientCertProperty[] = "EAP.ClientCert";
+const char kEapCertIdProperty[] = "EAP.CertID";
+const char kEapClientCertNssProperty[] = "EAP.ClientCertNSS";
+const char kEapPrivateKeyProperty[] = "EAP.PrivateKey";
+const char kEapPrivateKeyPasswordProperty[] = "EAP.PrivateKeyPassword";
+const char kEapKeyIdProperty[] = "EAP.KeyID";
+const char kEapCaCertProperty[] = "EAP.CACert";
+const char kEapCaCertIdProperty[] = "EAP.CACertID";
+const char kEapCaCertNssProperty[] = "EAP.CACertNSS";
+const char kEapUseSystemCasProperty[] = "EAP.UseSystemCAs";
+const char kEapUseProactiveKeyCachingProperty[] = "EAP.UseProactiveKeyCaching";
+const char kEapPinProperty[] = "EAP.PIN";
+const char kEapPasswordProperty[] = "EAP.Password";
+const char kEapKeyMgmtProperty[] = "EAP.KeyMgmt";
+
+// Flimflam Cellular Service property names.
+const char kTechnologyFamilyProperty[] = "Cellular.Family";
+const char kActivationStateProperty[] = "Cellular.ActivationState";
+const char kNetworkTechnologyProperty[] = "Cellular.NetworkTechnology";
+const char kRoamingStateProperty[] = "Cellular.RoamingState";
+const char kOperatorNameProperty[] = "Cellular.OperatorName";
+const char kOperatorCodeProperty[] = "Cellular.OperatorCode";
+const char kServingOperatorProperty[] = "Cellular.ServingOperator";
+const char kPaymentPortalProperty[] = "Cellular.Olp";
+const char kUsageURLProperty[] = "Cellular.UsageUrl";
+const char kCellularApnProperty[] = "Cellular.APN";
+const char kCellularLastGoodApnProperty[] = "Cellular.LastGoodAPN";
+const char kCellularApnListProperty[] = "Cellular.APNList";
+
+// Flimflam Manager property names.
+const char kProfilesProperty[] = "Profiles";
+const char kServicesProperty[] = "Services";
+const char kServiceWatchListProperty[] = "ServiceWatchList";
+const char kAvailableTechnologiesProperty[] = "AvailableTechnologies";
+const char kEnabledTechnologiesProperty[] = "EnabledTechnologies";
+const char kConnectedTechnologiesProperty[] = "ConnectedTechnologies";
+const char kDefaultTechnologyProperty[] = "DefaultTechnology";
+const char kOfflineModeProperty[] = "OfflineMode";
+const char kActiveProfileProperty[] = "ActiveProfile";
+const char kDevicesProperty[] = "Devices";
+const char kCheckPortalListProperty[] = "CheckPortalList";
+const char kArpGatewayProperty[] = "ArpGateway";
+const char kCountryProperty[] = "Country";
+const char kPortalURLProperty[] = "PortalURL";
+const char kConnectionStateProperty[] = "ConnectionState";
+const char kClaimedDevicesProperty[] = "ClaimedDevices";
+
+// Flimflam Profile property names.
+const char kEntriesProperty[] = "Entries";
+
+// Flimflam Device property names.
+const char kScanningProperty[] = "Scanning";
+const char kPoweredProperty[] = "Powered";
+const char kNetworksProperty[] = "Networks";
+const char kScanIntervalProperty[] = "ScanInterval";
+const char kBgscanMethodProperty[] = "BgscanMethod";
+const char kBgscanShortIntervalProperty[] = "BgscanShortInterval";
+const char kRoamThresholdProperty[] = "RoamThreshold";
+const char kDBusObjectProperty[] = "DBus.Object";
+const char kDBusServiceProperty[] = "DBus.Service";
+const char kBgscanSignalThresholdProperty[] = "BgscanSignalThreshold";
+const char kWakeToScanPeriodSecondsProperty[] = "WakeToScanPeriodSeconds";
+const char kNetDetectScanPeriodSecondsProperty[] = "NetDetectScanPeriodSeconds";
+const char kForceWakeToScanTimerProperty[] = "ForceWakeToScanTimer";
+// The name of the network interface, ie. wlan0, eth0, etc.
+const char kInterfaceProperty[] = "Interface";
+const char kSelectedServiceProperty[] = "SelectedService";
+const char kIPConfigsProperty[] = "IPConfigs";
+const char kMACAddressRandomizationProperty[] = "MACAddressRandomization";
+
+// Flimflam Cellular Device property names.
+const char kCarrierProperty[] = "Cellular.Carrier";
+const char kCellularAllowRoamingProperty[] = "Cellular.AllowRoaming";
+const char kHomeProviderProperty[] = "Cellular.HomeProvider";
+const char kMeidProperty[] = "Cellular.MEID";
+const char kImeiProperty[] = "Cellular.IMEI";
+const char kIccidProperty[] = "Cellular.ICCID";
+const char kImsiProperty[] = "Cellular.IMSI";
+const char kEsnProperty[] = "Cellular.ESN";
+const char kMdnProperty[] = "Cellular.MDN";
+const char kMinProperty[] = "Cellular.MIN";
+const char kModelIDProperty[] = "Cellular.ModelID";
+const char kManufacturerProperty[] = "Cellular.Manufacturer";
+const char kFirmwareRevisionProperty[] = "Cellular.FirmwareRevision";
+const char kHardwareRevisionProperty[] = "Cellular.HardwareRevision";
+const char kPRLVersionProperty[] = "Cellular.PRLVersion";
+const char kSelectedNetworkProperty[] = "Cellular.SelectedNetwork";
+const char kSupportNetworkScanProperty[] = "Cellular.SupportNetworkScan";
+const char kFoundNetworksProperty[] = "Cellular.FoundNetworks";
+
+// Flimflam state options.
+const char kStateIdle[] = "idle";
+const char kStateCarrier[] = "carrier";
+const char kStateAssociation[] = "association";
+const char kStateConfiguration[] = "configuration";
+const char kStateReady[] = "ready";
+const char kStatePortal[] = "portal";
+const char kStateOffline[] = "offline";
+const char kStateOnline[] = "online";
+const char kStateDisconnect[] = "disconnect";
+const char kStateFailure[] = "failure";
+const char kStateActivationFailure[] = "activation-failure";
+
+// Flimflam portal phase and status.
+const char kPortalDetectionPhaseConnection[] = "Connection";
+const char kPortalDetectionPhaseDns[] = "DNS";
+const char kPortalDetectionPhaseHttp[] = "HTTP";
+const char kPortalDetectionPhaseContent[] = "Content";
+const char kPortalDetectionPhaseUnknown[] = "Unknown";
+const char kPortalDetectionStatusFailure[] = "Failure";
+const char kPortalDetectionStatusTimeout[] = "Timeout";
+const char kPortalDetectionStatusSuccess[] = "Success";
+
+// Flimflam property names for SIMLock status.
+const char kSIMLockStatusProperty[] = "Cellular.SIMLockStatus";
+const char kSIMLockTypeProperty[] = "LockType";
+const char kSIMLockRetriesLeftProperty[] = "RetriesLeft";
+const char kSIMLockEnabledProperty[] = "LockEnabled";
+
+// Flimflam property names for Cellular.FoundNetworks.
+const char kLongNameProperty[] = "long_name";
+const char kStatusProperty[] = "status";
+const char kShortNameProperty[] = "short_name";
+const char kTechnologyProperty[] = "technology";
+const char kNetworkIdProperty[] = "network_id";
+
+// Flimflam SIMLock status types.
+const char kSIMLockPin[] = "sim-pin";
+const char kSIMLockPuk[] = "sim-puk";
+
+// APN info property names.
+const char kApnProperty[] = "apn";
+const char kApnNetworkIdProperty[] = "network_id";
+const char kApnUsernameProperty[] = "username";
+const char kApnPasswordProperty[] = "password";
+const char kApnNameProperty[] = "name";
+const char kApnLocalizedNameProperty[] = "localized_name";
+const char kApnLanguageProperty[] = "language";
+
+// Payment Portal property names.
+const char kPaymentPortalURL[] = "url";
+const char kPaymentPortalMethod[] = "method";
+const char kPaymentPortalPostData[] = "postdata";
+
+// Operator info property names.
+const char kOperatorNameKey[] = "name";
+const char kOperatorCodeKey[] = "code";
+const char kOperatorCountryKey[] = "country";
+
+// Flimflam network technology options.
+const char kNetworkTechnology1Xrtt[] = "1xRTT";
+const char kNetworkTechnologyEvdo[] = "EVDO";
+const char kNetworkTechnologyGsm[] = "GSM";
+const char kNetworkTechnologyGprs[] = "GPRS";
+const char kNetworkTechnologyEdge[] = "EDGE";
+const char kNetworkTechnologyUmts[] = "UMTS";
+const char kNetworkTechnologyHspa[] = "HSPA";
+const char kNetworkTechnologyHspaPlus[] = "HSPA+";
+const char kNetworkTechnologyLte[] = "LTE";
+const char kNetworkTechnologyLteAdvanced[] = "LTE Advanced";
+
+// Flimflam roaming state options
+const char kRoamingStateHome[] = "home";
+const char kRoamingStateRoaming[] = "roaming";
+const char kRoamingStateUnknown[] = "unknown";
+
+// Flimflam activation state options
+const char kActivationStateActivated[] = "activated";
+const char kActivationStateActivating[] = "activating";
+const char kActivationStateNotActivated[] = "not-activated";
+const char kActivationStatePartiallyActivated[] = "partially-activated";
+const char kActivationStateUnknown[] = "unknown";
+
+// Flimflam EAP method options.
+const char kEapMethodPEAP[] = "PEAP";
+const char kEapMethodTLS[] = "TLS";
+const char kEapMethodTTLS[] = "TTLS";
+const char kEapMethodLEAP[] = "LEAP";
+
+// Flimflam EAP phase 2 auth options.
+const char kEapPhase2AuthPEAPMD5[] = "auth=MD5";
+const char kEapPhase2AuthPEAPMSCHAPV2[] = "auth=MSCHAPV2";
+const char kEapPhase2AuthPEAPGTC[] = "auth=GTC";
+const char kEapPhase2AuthTTLSMD5[] = "autheap=MD5";  // crosbug/26822
+const char kEapPhase2AuthTTLSEAPMD5[] = "autheap=MD5";
+const char kEapPhase2AuthTTLSEAPMSCHAPV2[] = "autheap=MSCHAPV2";
+const char kEapPhase2AuthTTLSMSCHAPV2[] = "auth=MSCHAPV2";
+const char kEapPhase2AuthTTLSMSCHAP[] = "auth=MSCHAP";
+const char kEapPhase2AuthTTLSPAP[] = "auth=PAP";
+const char kEapPhase2AuthTTLSCHAP[] = "auth=CHAP";
+const char kEapPhase2AuthTTLSGTC[] = "auth=GTC";
+const char kEapPhase2AuthTTLSEAPGTC[] = "autheap=GTC";
+
+// Flimflam VPN provider types.
+const char kProviderL2tpIpsec[] = "l2tpipsec";
+const char kProviderOpenVpn[] = "openvpn";
+const char kProviderThirdPartyVpn[] = "thirdpartyvpn";
+
+// Flimflam VPN service properties
+const char kVPNDomainProperty[] = "VPN.Domain";
+
+// Flimflam monitored properties
+const char kMonitorPropertyChanged[] = "PropertyChanged";
+
+// Flimflam type options.
+const char kTypeEthernet[] = "ethernet";
+const char kTypeWifi[] = "wifi";
+const char kTypeWimax[] = "wimax";
+const char kTypeBluetooth[] = "bluetooth";
+const char kTypeCellular[] = "cellular";
+const char kTypeVPN[] = "vpn";
+const char kTypePPPoE[] = "pppoe";
+
+// Flimflam mode options.
+const char kModeManaged[] = "managed";
+const char kModeAdhoc[] = "adhoc";
+
+// Flimflam security options.
+const char kSecurityWpa[] = "wpa";
+const char kSecurityWep[] = "wep";
+const char kSecurityRsn[] = "rsn";
+const char kSecurity8021x[] = "802_1x";
+const char kSecurityPsk[] = "psk";
+const char kSecurityNone[] = "none";
+
+// Flimflam L2TPIPsec property names.
+const char kL2tpIpsecAuthenticationType[] = "L2TPIPsec.AuthenticationType";
+const char kL2tpIpsecCaCertNssProperty[] = "L2TPIPsec.CACertNSS";
+const char kL2tpIpsecClientCertIdProperty[] = "L2TPIPsec.ClientCertID";
+const char kL2tpIpsecClientCertSlotProperty[] = "L2TPIPsec.ClientCertSlot";
+const char kL2tpIpsecIkeVersion[] = "L2TPIPsec.IKEVersion";
+const char kL2tpIpsecPinProperty[] = "L2TPIPsec.PIN";
+const char kL2tpIpsecPskProperty[] = "L2TPIPsec.PSK";
+const char kL2tpIpsecPskRequiredProperty[] = "L2TPIPsec.PSKRequired";
+const char kL2tpIpsecUserProperty[] = "L2TPIPsec.User";
+const char kL2tpIpsecPasswordProperty[] = "L2TPIPsec.Password";
+
+// Flimflam OpenVPN property names.
+const char kOpenVPNAuthNoCacheProperty[] = "OpenVPN.AuthNoCache";
+const char kOpenVPNAuthProperty[] = "OpenVPN.Auth";
+const char kOpenVPNAuthRetryProperty[] = "OpenVPN.AuthRetry";
+const char kOpenVPNAuthUserPassProperty[] = "OpenVPN.AuthUserPass";
+const char kOpenVPNCaCertProperty[] = "OpenVPN.CACert";
+const char kOpenVPNCaCertNSSProperty[] = "OpenVPN.CACertNSS";
+const char kOpenVPNClientCertIdProperty[] = "OpenVPN.Pkcs11.ID";
+const char kOpenVPNClientCertSlotProperty[] = "OpenVPN.Pkcs11.Slot";
+const char kOpenVPNCipherProperty[] = "OpenVPN.Cipher";
+const char kOpenVPNCompLZOProperty[] = "OpenVPN.CompLZO";
+const char kOpenVPNCompNoAdaptProperty[] = "OpenVPN.CompNoAdapt";
+const char kOpenVPNIgnoreDefaultRouteProperty[] = "OpenVPN.IgnoreDefaultRoute";
+const char kOpenVPNKeyDirectionProperty[] = "OpenVPN.KeyDirection";
+const char kOpenVPNMgmtEnableProperty[] = "OpenVPN.Mgmt.Enable";
+const char kOpenVPNNsCertTypeProperty[] = "OpenVPN.NsCertType";
+const char kOpenVPNOTPProperty[] = "OpenVPN.OTP";
+const char kOpenVPNPasswordProperty[] = "OpenVPN.Password";
+const char kOpenVPNPinProperty[] = "OpenVPN.Pkcs11.PIN";
+const char kOpenVPNPortProperty[] = "OpenVPN.Port";
+const char kOpenVPNProtoProperty[] = "OpenVPN.Proto";
+const char kOpenVPNProviderProperty[] = "OpenVPN.Pkcs11.Provider";
+const char kOpenVPNPushPeerInfoProperty[] = "OpenVPN.PushPeerInfo";
+const char kOpenVPNRemoteCertEKUProperty[] = "OpenVPN.RemoteCertEKU";
+const char kOpenVPNRemoteCertKUProperty[] = "OpenVPN.RemoteCertKU";
+const char kOpenVPNRemoteCertTLSProperty[] = "OpenVPN.RemoteCertTLS";
+const char kOpenVPNRenegSecProperty[] = "OpenVPN.RenegSec";
+const char kOpenVPNServerPollTimeoutProperty[] = "OpenVPN.ServerPollTimeout";
+const char kOpenVPNShaperProperty[] = "OpenVPN.Shaper";
+const char kOpenVPNStaticChallengeProperty[] = "OpenVPN.StaticChallenge";
+const char kOpenVPNTLSAuthContentsProperty[] = "OpenVPN.TLSAuthContents";
+const char kOpenVPNTLSRemoteProperty[] = "OpenVPN.TLSRemote";
+const char kOpenVPNUserProperty[] = "OpenVPN.User";
+
+// FlimFlam PPPoE property names.
+const char kPPPoEUsernameProperty[] = "PPPoE.Username";
+const char kPPPoEPasswordProperty[] = "PPPoE.Password";
+const char kPPPoELCPEchoIntervalProperty[] = "PPPoE.LCPEchoInterval";
+const char kPPPoELCPEchoFailureProperty[] = "PPPoE.LCPEchoFailure";
+const char kPPPoEMaxAuthFailureProperty[] = "PPPoE.MaxAuthFailure";
+
+// FlimFlam technology family options
+const char kTechnologyFamilyCdma[] = "CDMA";
+const char kTechnologyFamilyGsm[] = "GSM";
+
+// IPConfig property names.
+const char kMethodProperty[] = "Method";
+const char kAddressProperty[] = "Address";
+const char kMtuProperty[] = "Mtu";
+const char kPrefixlenProperty[] = "Prefixlen";
+const char kBroadcastProperty[] = "Broadcast";
+const char kPeerAddressProperty[] = "PeerAddress";
+const char kGatewayProperty[] = "Gateway";
+const char kDomainNameProperty[] = "DomainName";
+const char kAcceptedHostnameProperty[] = "AcceptedHostname";
+const char kNameServersProperty[] = "NameServers";
+const char kDhcpv6AddressesProperty[] = "Dhcpv6Addresses";
+const char kDhcpv6DelegatedPrefixesProperty[] = "Dhcpv6DelegatedPrefixes";
+const char kLeaseDurationSecondsProperty[] = "LeaseDurationSeconds";
+
+// These constants are deprecated in favor of kDhcpv6DelegatedPrefixesProperty.
+// TODO(tjennison): Remove when shill no longer uses them b/26778228
+const char kDelegatedPrefixProperty[] = "DelegatedPrefix";
+const char kDelegatedPrefixLengthProperty[] = "DelegatedPrefixLength";
+
+// IPConfig DHCPv6 address/prefix property names.
+const char kDhcpv6AddressProperty[] = "Address";
+const char kDhcpv6LengthProperty[] = "Length";
+const char kDhcpv6LeaseDurationSecondsProperty[] = "LeaseDurationSeconds";
+const char kDhcpv6PreferredLeaseDurationSecondsProperty[] =
+    "PreferredLeaseDurationSeconds";
+
+// IPConfig type options.
+const char kTypeIPv4[] = "ipv4";
+const char kTypeIPv6[] = "ipv6";
+const char kTypeDHCP[] = "dhcp";
+const char kTypeBOOTP[] = "bootp";
+const char kTypeZeroConf[] = "zeroconf";
+const char kTypeDHCP6[] = "dhcp6";
+const char kTypePPP[] = "ppp";
+
+// Flimflam error options.
+const char kErrorAaaFailed[] = "aaa-failed";
+const char kErrorActivationFailed[] = "activation-failed";
+const char kErrorBadPassphrase[] = "bad-passphrase";
+const char kErrorBadWEPKey[] = "bad-wepkey";
+const char kErrorConnectFailed[] = "connect-failed";
+const char kErrorDNSLookupFailed[] = "dns-lookup-failed";
+const char kErrorDhcpFailed[] = "dhcp-failed";
+const char kErrorHTTPGetFailed[] = "http-get-failed";
+const char kErrorInternal[] = "internal-error";
+const char kErrorInvalidFailure[] = "invalid-failure";
+const char kErrorIpsecCertAuthFailed[] = "ipsec-cert-auth-failed";
+const char kErrorIpsecPskAuthFailed[] = "ipsec-psk-auth-failed";
+const char kErrorNeedEvdo[] = "need-evdo";
+const char kErrorNeedHomeNetwork[] = "need-home-network";
+const char kErrorNoFailure[] = "no-failure";
+const char kErrorOtaspFailed[] = "otasp-failed";
+const char kErrorOutOfRange[] = "out-of-range";
+const char kErrorPinMissing[] = "pin-missing";
+const char kErrorPppAuthFailed[] = "ppp-auth-failed";
+const char kErrorUnknownFailure[] = "unknown-failure";
+
+// Flimflam error result codes.
+const char kErrorResultSuccess[] = "org.chromium.flimflam.Error.Success";
+const char kErrorResultFailure[] = "org.chromium.flimflam.Error.Failure";
+const char kErrorResultAlreadyConnected[] =
+    "org.chromium.flimflam.Error.AlreadyConnected";
+const char kErrorResultAlreadyExists[] =
+    "org.chromium.flimflam.Error.AlreadyExists";
+const char kErrorResultIncorrectPin[] =
+     "org.chromium.flimflam.Error.IncorrectPin";
+const char kErrorResultInProgress[] = "org.chromium.flimflam.Error.InProgress";
+const char kErrorResultInternalError[] =
+    "org.chromium.flimflam.Error.InternalError";
+const char kErrorResultInvalidApn[] = "org.chromium.flimflam.Error.InvalidApn";
+const char kErrorResultInvalidArguments[] =
+    "org.chromium.flimflam.Error.InvalidArguments";
+const char kErrorResultInvalidNetworkName[] =
+    "org.chromium.flimflam.Error.InvalidNetworkName";
+const char kErrorResultInvalidPassphrase[] =
+    "org.chromium.flimflam.Error.InvalidPassphrase";
+const char kErrorResultInvalidProperty[] =
+    "org.chromium.flimflam.Error.InvalidProperty";
+const char kErrorResultNoCarrier[] = "org.chromium.flimflam.Error.NoCarrier";
+const char kErrorResultNotConnected[] =
+     "org.chromium.flimflam.Error.NotConnected";
+const char kErrorResultNotFound[] = "org.chromium.flimflam.Error.NotFound";
+const char kErrorResultNotImplemented[] =
+    "org.chromium.flimflam.Error.NotImplemented";
+const char kErrorResultNotOnHomeNetwork[] =
+    "org.chromium.flimflam.Error.NotOnHomeNetwork";
+const char kErrorResultNotRegistered[] =
+    "org.chromium.flimflam.Error.NotRegistered";
+const char kErrorResultNotSupported[] =
+     "org.chromium.flimflam.Error.NotSupported";
+const char kErrorResultOperationAborted[] =
+    "org.chromium.flimflam.Error.OperationAborted";
+const char kErrorResultOperationInitiated[] =
+    "org.chromium.flimflam.Error.OperationInitiated";
+const char kErrorResultOperationTimeout[] =
+    "org.chromium.flimflam.Error.OperationTimeout";
+const char kErrorResultPassphraseRequired[] =
+    "org.chromium.flimflam.Error.PassphraseRequired";
+const char kErrorResultPermissionDenied[] =
+    "org.chromium.flimflam.Error.PermissionDenied";
+const char kErrorResultPinBlocked[] = "org.chromium.flimflam.Error.PinBlocked";
+const char kErrorResultPinRequired[] =
+     "org.chromium.flimflam.Error.PinRequired";
+const char kErrorResultWrongState[] = "org.chromium.flimflam.Error.WrongState";
+
+const char kUnknownString[] = "UNKNOWN";
+
+// Function names.
+const char kClearPropertiesFunction[] = "ClearProperties";
+const char kCompleteCellularActivationFunction[] = "CompleteCellularActivation";
+const char kConfigureServiceForProfileFunction[] = "ConfigureServiceForProfile";
+const char kConnectToBestServicesFunction[] = "ConnectToBestServices";
+const char kCreateConnectivityReportFunction[] = "CreateConnectivityReport";
+const char kAddWakeOnPacketConnectionFunction[] = "AddWakeOnPacketConnection";
+const char kRemoveWakeOnPacketConnectionFunction[] =
+    "RemoveWakeOnPacketConnection";
+const char kRemoveAllWakeOnPacketConnectionsFunction[] =
+    "RemoveAllWakeOnPacketConnections";
+const char kGetLoadableProfileEntriesFunction[] = "GetLoadableProfileEntries";
+const char kGetNetworksForGeolocation[] = "GetNetworksForGeolocation";
+const char kPerformTDLSOperationFunction[] = "PerformTDLSOperation";
+const char kRefreshFunction[] = "Refresh";
+const char kResetFunction[] = "Reset";
+const char kSetCarrierFunction[] = "SetCarrier";
+const char kSetPropertiesFunction[] = "SetProperties";
+const char kVerifyAndEncryptCredentialsFunction[] =
+    "VerifyAndEncryptCredentials";
+const char kVerifyAndEncryptDataFunction[] = "VerifyAndEncryptData";
+const char kVerifyDestinationFunction[] = "VerifyDestination";
+
+// ThirdPartyVpn functions.
+const char kSetParametersFunction[] = "SetParameters";
+const char kSendPacketFunction[] = "SendPacket";
+const char kUpdateConnectionStateFunction[] = "UpdateConnectionState";
+const char kOnPacketReceivedFunction[] = "OnPacketReceived";
+const char kOnPlatformMessageFunction[] = "OnPlatformMessage";
+
+// Device property names.
+const char kEapAuthenticationCompletedProperty[] = "EapAuthenticationCompleted";
+const char kEapAuthenticatorDetectedProperty[] = "EapAuthenticatorDetected";
+const char kLinkMonitorResponseTimeProperty[] = "LinkMonitorResponseTime";
+const char kLinkUpProperty[] = "Ethernet.LinkUp";
+const char kProviderRequiresRoamingProperty[] =
+    "Cellular.ProviderRequiresRoaming";
+const char kPPPoEProperty[] = "Ethernet.PPPoE";
+const char kReceiveByteCountProperty[] = "ReceiveByteCount";
+const char kSIMPresentProperty[] = "Cellular.SIMPresent";
+const char kSupportedCarriersProperty[] = "Cellular.SupportedCarriers";
+const char kTransmitByteCountProperty[] = "TransmitByteCount";
+const char kWifiSupportedFrequenciesProperty[] = "WiFi.SupportedFrequencies";
+
+// Technology types (augments "Flimflam type options" above).
+const char kTypeEthernetEap[] = "etherneteap";
+
+// Error strings.
+const char kErrorEapAuthenticationFailed[] = "eap-authentication-failed";
+const char kErrorEapLocalTlsFailed[] = "eap-local-tls-failed";
+const char kErrorEapRemoteTlsFailed[] = "eap-remote-tls-failed";
+
+// IPConfig property names.
+const char kSearchDomainsProperty[] = "SearchDomains";
+const char kVendorEncapsulatedOptionsProperty[] = "VendorEncapsulatedOptions";
+const char kWebProxyAutoDiscoveryUrlProperty[] = "WebProxyAutoDiscoveryUrl";
+// DHCP Option for iSNS (RFC 4174)
+const char kiSNSOptionDataProperty[] = "iSNSOptionData";
+
+// Manager property names.
+const char kDefaultServiceProperty[] = "DefaultService";
+const char kDisableWiFiVHTProperty[] = "DisableWiFiVHT";
+const char kHostNameProperty[] = "HostName";
+const char kIgnoredDNSSearchPathsProperty[] = "IgnoredDNSSearchPaths";
+const char kLinkMonitorTechnologiesProperty[] =
+    "LinkMonitorTechnologies";
+const char kNoAutoConnectTechnologiesProperty[] = "NoAutoConnectTechnologies";
+const char kPortalCheckIntervalProperty[] = "PortalCheckInterval";
+const char kProhibitedTechnologiesProperty[] = "ProhibitedTechnologies";
+const char kServiceCompleteListProperty[] = "ServiceCompleteList";
+const char kShortDNSTimeoutTechnologiesProperty[] =
+    "ShortDNSTimeoutTechnologies";
+const char kUninitializedTechnologiesProperty[] = "UninitializedTechnologies";
+const char kWakeOnLanEnabledProperty[] = "WakeOnLanEnabled";
+const char kWakeOnWiFiFeaturesEnabledProperty[] = "WakeOnWiFiFeaturesEnabled";
+
+// Service property names.
+const char kActivationTypeProperty[] = "Cellular.ActivationType";
+const char kDiagnosticsDisconnectsProperty[] = "Diagnostics.Disconnects";
+const char kDiagnosticsMisconnectsProperty[] = "Diagnostics.Misconnects";
+const char kEapRemoteCertificationProperty[] = "EAP.RemoteCertification";
+const char kEapCaCertPemProperty[] = "EAP.CACertPEM";
+const char kEapSubjectMatchProperty[] = "EAP.SubjectMatch";
+const char kErrorDetailsProperty[] = "ErrorDetails";
+const char kHTTPProxyPortProperty[] = "HTTPProxyPort";
+const char kKeyManagementIEEE8021X[] = "IEEE8021X";
+const char kIPConfigProperty[] = "IPConfig";
+const char kL2tpIpsecCaCertPemProperty[] = "L2TPIPsec.CACertPEM";
+const char kL2tpIpsecTunnelGroupProperty[] = "L2TPIPsec.TunnelGroup";
+const char kL2tpIpsecXauthPasswordProperty[] = "L2TPIPsec.XauthPassword";
+const char kL2tpIpsecXauthUserProperty[] = "L2TPIPsec.XauthUser";
+const char kL2tpIpsecLcpEchoDisabledProperty[] = "L2TPIPsec.LCPEchoDisabled";
+const char kManagedCredentialsProperty[] = "ManagedCredentials";
+const char kOpenVPNCaCertPemProperty[] = "OpenVPN.CACertPEM";
+const char kOpenVPNCertProperty[] = "OpenVPN.Cert";
+const char kOpenVPNExtraCertPemProperty[] = "OpenVPN.ExtraCertPEM";
+const char kOpenVPNKeyProperty[] = "OpenVPN.Key";
+const char kOpenVPNPingProperty[] = "OpenVPN.Ping";
+const char kOpenVPNPingExitProperty[] = "OpenVPN.PingExit";
+const char kOpenVPNPingRestartProperty[] = "OpenVPN.PingRestart";
+const char kOpenVPNTLSAuthProperty[] = "OpenVPN.TLSAuth";
+const char kOpenVPNTokenProperty[] = "OpenVPN.Token";
+const char kOpenVPNVerbProperty[] = "OpenVPN.Verb";
+const char kOpenVPNVerifyHashProperty[] = "OpenVPN.VerifyHash";
+const char kOpenVPNVerifyX509NameProperty[] = "OpenVPN.VerifyX509Name";
+const char kOpenVPNVerifyX509TypeProperty[] = "OpenVPN.VerifyX509Type";
+const char kOutOfCreditsProperty[] = "Cellular.OutOfCredits";
+const char kPhysicalTechnologyProperty[] = "PhysicalTechnology";
+const char kPreviousErrorProperty[] = "PreviousError";
+const char kPreviousErrorSerialNumberProperty[] = "PreviousErrorSerialNumber";
+const char kStaticIPAddressProperty[] = "StaticIP.Address";
+const char kStaticIPGatewayProperty[] = "StaticIP.Gateway";
+const char kStaticIPMtuProperty[] = "StaticIP.Mtu";
+const char kStaticIPNameServersProperty[] = "StaticIP.NameServers";
+const char kStaticIPPeerAddressProperty[] = "StaticIP.PeerAddress";
+const char kStaticIPPrefixlenProperty[] = "StaticIP.Prefixlen";
+const char kSavedIPAddressProperty[] = "SavedIP.Address";
+const char kSavedIPGatewayProperty[] = "SavedIP.Gateway";
+const char kSavedIPMtuProperty[] = "SavedIP.Mtu";
+const char kSavedIPNameServersProperty[] = "SavedIP.NameServers";
+const char kSavedIPPeerAddressProperty[] = "SavedIP.PeerAddress";
+const char kSavedIPPrefixlenProperty[] = "SavedIP.Prefixlen";
+const char kTetheringProperty[] = "Tethering";
+const char kVPNMTUProperty[] = "VPN.MTU";
+const char kWifiFrequencyListProperty[] = "WiFi.FrequencyList";
+const char kWifiVendorInformationProperty[] = "WiFi.VendorInformation";
+const char kWifiProtectedManagementFrameRequiredProperty[] =
+    "WiFi.ProtectedManagementFrameRequired";
+
+// Profile property names.
+const char kUserHashProperty[] = "UserHash";
+
+// Service Tethering property values.
+const char kTetheringNotDetectedState[] = "NotDetected";
+const char kTetheringSuspectedState[] = "Suspected";
+const char kTetheringConfirmedState[] = "Confirmed";
+
+// WiFi Service Vendor Information dictionary properties.
+const char kVendorWPSManufacturerProperty[] = "Manufacturer";
+const char kVendorWPSModelNameProperty[] = "ModelName";
+const char kVendorWPSModelNumberProperty[] = "ModelNumber";
+const char kVendorWPSDeviceNameProperty[] = "DeviceName";
+const char kVendorOUIListProperty[] = "OUIList";
+
+// WiFi Device link property names.
+const char kLinkStatisticsProperty[] = "LinkStatistics";
+const char kAverageReceiveSignalDbmProperty[] = "AverageReceiveSignalDbm";
+const char kInactiveTimeMillisecondsProperty[] =
+    "InactiveTimeMilliseconds";
+const char kLastReceiveSignalDbmProperty[] = "LastReceiveSignalDbm";
+const char kPacketReceiveSuccessesProperty[] = "PacketReceiveSuccesses";
+const char kPacketTransmitFailuresProperty[] = "PacketTransmitFailures";
+const char kPacketTransmitSuccessesProperty[] = "PacketTrasmitSuccesses";
+const char kTransmitBitrateProperty[] = "TransmitBitrate";
+const char kTransmitRetriesProperty[] = "TransmitRetries";
+
+// WiFi TDLS operations.
+const char kTDLSDiscoverOperation[] = "Discover";
+const char kTDLSSetupOperation[] = "Setup";
+const char kTDLSStatusOperation[] = "Status";
+const char kTDLSTeardownOperation[] = "Teardown";
+
+// WiFi TDLS states.
+const char kTDLSConnectedState[] = "Connected";
+const char kTDLSDisabledState[] = "Disabled";
+const char kTDLSDisconnectedState[] = "Disconnected";
+const char kTDLSNonexistentState[] = "Nonexistent";
+const char kTDLSUnknownState[] = "Unknown";
+
+// Wake on WiFi features.
+const char kWakeOnWiFiFeaturesEnabledPacket[] = "packet";
+const char kWakeOnWiFiFeaturesEnabledDarkConnect[] = "darkconnect";
+const char kWakeOnWiFiFeaturesEnabledPacketDarkConnect[] =
+    "packet_and_darkconnect";
+const char kWakeOnWiFiFeaturesEnabledNone[] = "none";
+const char kWakeOnWiFiFeaturesEnabledNotSupported[] = "not_supported";
+
+// Cellular service carriers.
+const char kCarrierGenericUMTS[] = "Generic UMTS";
+const char kCarrierSprint[] = "Sprint";
+const char kCarrierVerizon[] = "Verizon Wireless";
+
+// Cellular activation types.
+const char kActivationTypeNonCellular[] = "NonCellular";  // For future use
+const char kActivationTypeOMADM[] = "OMADM";  // For future use
+const char kActivationTypeOTA[] = "OTA";
+const char kActivationTypeOTASP[] = "OTASP";
+
+// Geolocation property field names.
+// Reference:
+//    https://devsite.googleplex.com/maps/documentation/business/geolocation/
+// Top level properties for a Geolocation request.
+const char kGeoHomeMobileCountryCodeProperty[] = "homeMobileCountryCode";
+const char kGeoHomeMobileNetworkCodeProperty[] = "homeMobileNetworkCode";
+const char kGeoRadioTypePropertyProperty[] = "radioType";
+const char kGeoCellTowersProperty[] = "cellTowers";
+const char kGeoWifiAccessPointsProperty[] = "wifiAccessPoints";
+// Cell tower object property names.
+const char kGeoCellIdProperty[] = "cellId";
+const char kGeoLocationAreaCodeProperty[] = "locationAreaCode";
+const char kGeoMobileCountryCodeProperty[] = "mobileCountryCode";
+const char kGeoMobileNetworkCodeProperty[] = "mobileNetworkCode";
+const char kGeoTimingAdvanceProperty[] = "timingAdvance";
+// WiFi access point property names.
+const char kGeoMacAddressProperty[] = "macAddress";
+const char kGeoChannelProperty[] = "channel";
+const char kGeoSignalToNoiseRatioProperty[] = "signalToNoiseRatio";
+// Common property names for geolocation objects.
+const char kGeoAgeProperty[] = "age";
+const char kGeoSignalStrengthProperty[] = "signalStrength";
+// ThirdPartyVpn parameters, properties and constants.
+const char kAddressParameterThirdPartyVpn[] = "address";
+const char kBroadcastAddressParameterThirdPartyVpn[] = "broadcast_address";
+const char kGatewayParameterThirdPartyVpn[] = "gateway";
+const char kBypassTunnelForIpParameterThirdPartyVpn[] = "bypass_tunnel_for_ip";
+const char kSubnetPrefixParameterThirdPartyVpn[] = "subnet_prefix";
+const char kMtuParameterThirdPartyVpn[] = "mtu";
+const char kDomainSearchParameterThirdPartyVpn[] = "domain_search";
+const char kDnsServersParameterThirdPartyVpn[] = "dns_servers";
+const char kInclusionListParameterThirdPartyVpn[] = "inclusion_list";
+const char kExclusionListParameterThirdPartyVpn[] = "exclusion_list";
+const char kReconnectParameterThirdPartyVpn[] = "reconnect";
+const char kObjectPathSuffixProperty[] = "ObjectPathSuffix";
+const char kExtensionNameProperty[] = "ExtensionName";
+const char kConfigurationNameProperty[] = "ConfigurationName";
+const char kObjectPathBase[] = "/thirdpartyvpn/";
+const char kNonIPDelimiter = ':';
+const char kIPDelimiter = ' ';
+}  // namespace shill
+
+#endif  // SYSTEM_API_DBUS_SHILL_DBUS_CONSTANTS_H_
diff --git a/system_api/dbus/update_engine/dbus-constants.h b/system_api/dbus/update_engine/dbus-constants.h
new file mode 100644
index 0000000..86c60dd
--- /dev/null
+++ b/system_api/dbus/update_engine/dbus-constants.h
@@ -0,0 +1,60 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYSTEM_API_DBUS_UPDATE_ENGINE_DBUS_CONSTANTS_H_
+#define SYSTEM_API_DBUS_UPDATE_ENGINE_DBUS_CONSTANTS_H_
+
+namespace update_engine {
+const char kUpdateEngineInterface[] = "org.chromium.UpdateEngineInterface";
+const char kUpdateEngineServicePath[] = "/org/chromium/UpdateEngine";
+const char kUpdateEngineServiceName[] = "org.chromium.UpdateEngine";
+
+// Generic UpdateEngine D-Bus error.
+const char kUpdateEngineServiceErrorFailed[] =
+    "org.chromium.UpdateEngine.Error.Failed";
+
+// Methods.
+const char kAttemptUpdate[] = "AttemptUpdate";
+const char kGetLastAttemptError[] = "GetLastAttemptError";
+const char kGetStatus[] = "GetStatus";
+const char kRebootIfNeeded[] = "RebootIfNeeded";
+const char kSetChannel[] = "SetChannel";
+const char kGetChannel[] = "GetChannel";
+const char kAttemptRollback[] = "AttemptRollback";
+const char kCanRollback[] = "CanRollback";
+const char kGetEolStatus[] = "GetEolStatus";
+
+// Signals.
+const char kStatusUpdate[] = "StatusUpdate";
+
+// Flags used in the AttemptUpdateWithFlags() D-Bus method.
+typedef enum {
+  kAttemptUpdateFlagNonInteractive = (1 << 0)
+} AttemptUpdateFlags;
+
+// End of Life status used in the GetEolStatus() D-Bus method.
+typedef enum {
+   kSupported = 0,
+   kSecurityOnly = 1,
+   kEol = 2,
+} EndOfLifeStatus;
+
+// Operations contained in StatusUpdate signals.
+const char kUpdateStatusIdle[] = "UPDATE_STATUS_IDLE";
+const char kUpdateStatusCheckingForUpdate[] =
+    "UPDATE_STATUS_CHECKING_FOR_UPDATE";
+const char kUpdateStatusUpdateAvailable[] = "UPDATE_STATUS_UPDATE_AVAILABLE";
+const char kUpdateStatusDownloading[] = "UPDATE_STATUS_DOWNLOADING";
+const char kUpdateStatusVerifying[] = "UPDATE_STATUS_VERIFYING";
+const char kUpdateStatusFinalizing[] = "UPDATE_STATUS_FINALIZING";
+const char kUpdateStatusUpdatedNeedReboot[] =
+    "UPDATE_STATUS_UPDATED_NEED_REBOOT";
+const char kUpdateStatusReportingErrorEvent[] =
+    "UPDATE_STATUS_REPORTING_ERROR_EVENT";
+const char kUpdateStatusAttemptingRollback[] =
+    "UPDATE_STATUS_ATTEMPTING_ROLLBACK";
+const char kUpdateStatusDisabled[] = "UPDATE_STATUS_DISABLED";
+}  // namespace update_engine
+
+#endif  // SYSTEM_API_DBUS_UPDATE_ENGINE_DBUS_CONSTANTS_H_
diff --git a/system_api/switches/chrome_switches.h b/system_api/switches/chrome_switches.h
new file mode 100644
index 0000000..dbc0803
--- /dev/null
+++ b/system_api/switches/chrome_switches.h
@@ -0,0 +1,26 @@
+// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SWITCHES_CHROME_SWITCHES_H_
+#define SWITCHES_CHROME_SWITCHES_H_
+
+// This file defines switches that are used both by Chrome and login_manager.
+
+namespace chromeos {
+namespace switches {
+
+// Sentinel switches for policy injected flags.
+const char kPolicySwitchesBegin[] = "policy-switches-begin";
+const char kPolicySwitchesEnd[] = "policy-switches-end";
+
+// Switch for path that breakpad can read an optional termination message from.
+const char kTerminationMessageFile[] = "termination-message-file";
+
+// Flag passed to the browser if the system is running in dev-mode.
+const char kSystemInDevMode[] = "system-developer-mode";
+
+}  // namespace switches
+}  // namespace chromeos
+
+#endif  // SWITCHES_CHROME_SWITCHES_H_
diff --git a/system_api/system_api.gyp b/system_api/system_api.gyp
new file mode 100644
index 0000000..47b12d7
--- /dev/null
+++ b/system_api/system_api.gyp
@@ -0,0 +1,89 @@
+{
+  'targets': [
+    {
+      'target_name': 'system_api-protos-gen',
+      'type': 'none',
+      'variables': {
+        'proto_in_dir': 'dbus',
+        'proto_out_dir': 'include/system_api/proto_bindings',
+      },
+      'sources': [
+        '<(proto_in_dir)/mtp_storage_info.proto',
+        '<(proto_in_dir)/mtp_file_entry.proto',
+        '<(proto_in_dir)/field_trial_list.proto',
+      ],
+      'includes': ['../../platform2/common-mk/protoc.gypi'],
+    },
+    {
+      'target_name': 'system_api-protos',
+      'type': 'static_library',
+      'standalone_static_library': 1,
+      'dependencies': [
+        'system_api-protos-gen',
+      ],
+      'sources': [
+        '<(SHARED_INTERMEDIATE_DIR)/include/system_api/proto_bindings/mtp_storage_info.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/system_api/proto_bindings/mtp_file_entry.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/system_api/proto_bindings/field_trial_list.pb.cc',
+      ]
+    },
+    {
+      'target_name': 'system_api-power_manager-protos-gen',
+      'type': 'none',
+      'variables': {
+        'proto_in_dir': 'dbus/power_manager',
+        'proto_out_dir': 'include/power_manager/proto_bindings',
+      },
+      'sources': [
+        '<(proto_in_dir)/suspend.proto',
+        '<(proto_in_dir)/input_event.proto',
+        '<(proto_in_dir)/peripheral_battery_status.proto',
+        '<(proto_in_dir)/policy.proto',
+        '<(proto_in_dir)/power_supply_properties.proto',
+      ],
+      'includes': ['../../platform2/common-mk/protoc.gypi'],
+    },
+    {
+      'target_name': 'system_api-power_manager-protos',
+      'type': 'static_library',
+      'standalone_static_library': 1,
+      'dependencies': [
+        'system_api-power_manager-protos-gen',
+      ],
+      'sources': [
+        '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/suspend.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/input_event.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/peripheral_battery_status.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/policy.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/power_manager/proto_bindings/power_supply_properties.pb.cc',
+      ]
+    },
+    {
+      'target_name': 'system_api-cryptohome-protos-gen',
+      'type': 'none',
+      'variables': {
+        'proto_in_dir': 'dbus/cryptohome',
+        'proto_out_dir': 'include/cryptohome/proto_bindings',
+      },
+      'sources': [
+        '<(proto_in_dir)/key.proto',
+        '<(proto_in_dir)/rpc.proto',
+        '<(proto_in_dir)/signed_secret.proto',
+      ],
+      'includes': ['../../platform2/common-mk/protoc.gypi'],
+    },
+    {
+      'target_name': 'system_api-cryptohome-protos',
+      'type': 'static_library',
+      'standalone_static_library': 1,
+      'dependencies': [
+        'system_api-cryptohome-protos-gen',
+      ],
+      'sources': [
+        '<(SHARED_INTERMEDIATE_DIR)/include/cryptohome/proto_bindings/key.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/cryptohome/proto_bindings/rpc.pb.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/include/cryptohome/proto_bindings/signed_secret.pb.cc',
+      ]
+    },
+  ]
+}
diff --git a/system_api/system_api.pc b/system_api/system_api.pc
new file mode 100644
index 0000000..c6925ac
--- /dev/null
+++ b/system_api/system_api.pc
@@ -0,0 +1,4 @@
+Name: system_api
+Description: Protobuffers and headers shared by Chromium OS and Chromium.
+Version: 0.1
+Libs: -lsystem_api-power_manager-protos -lsystem_api-cryptohome-protos -lsystem_api-protos
