blob: ea27158cd30b75a0eec7450f479ef04ce974714c [file] [log] [blame]
Alex Deymoaea4c1c2015-08-19 20:24:43 -07001//
2// Copyright (C) 2013 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
Jay Srinivasan1c0fe792013-03-28 16:45:25 -070016
Alex Deymo39910dc2015-11-09 17:04:30 -080017#include "update_engine/common/constants.h"
Jay Srinivasan1c0fe792013-03-28 16:45:25 -070018
19namespace chromeos_update_engine {
20
Jae Hoon Kim38de3b12020-04-29 19:41:23 -070021const char kExclusionPrefsSubDir[] = "exclusion";
22
Andrew065d78d2020-04-07 15:43:07 -070023const char kDlcPrefsSubDir[] = "dlc";
Andrewe045aef2020-01-08 16:29:22 -080024
Alex Deymodd132f32015-09-14 19:12:07 -070025const char kPowerwashSafePrefsSubDirectory[] = "update_engine/prefs";
Chris Sosaaa18e162013-06-20 13:20:30 -070026
Alex Deymodd132f32015-09-14 19:12:07 -070027const char kPrefsSubDirectory[] = "prefs";
Chris Sosaaa18e162013-06-20 13:20:30 -070028
29const char kStatefulPartition[] = "/mnt/stateful_partition";
Jay Srinivasan1c0fe792013-03-28 16:45:25 -070030
Alex Deymo390efed2016-02-18 11:00:40 -080031const char kPostinstallDefaultScript[] = "postinst";
32
Jay Srinivasand29695d2013-04-08 15:08:05 -070033// Constants defining keys for the persisted state of update engine.
Vyshu764694d2020-12-09 20:36:37 +000034const char kPrefsAllowRepeatedUpdates[] = "allow-repeated-updates";
David Zeuthen4e1d1492014-04-25 13:12:27 -070035const char kPrefsAttemptInProgress[] = "attempt-in-progress";
Jay Srinivasand29695d2013-04-08 15:08:05 -070036const char kPrefsBackoffExpiryTime[] = "backoff-expiry-time";
Alex Deymodd132f32015-09-14 19:12:07 -070037const char kPrefsBootId[] = "boot-id";
Vyshu Khotaf23542a2021-03-19 14:50:34 -040038const char kPrefsConsecutiveUpdateCount[] = "consecutive-update-count";
Jay Srinivasan19409b72013-04-12 19:23:36 -070039const char kPrefsCurrentBytesDownloaded[] = "current-bytes-downloaded";
Jay Srinivasand29695d2013-04-08 15:08:05 -070040const char kPrefsCurrentResponseSignature[] = "current-response-signature";
41const char kPrefsCurrentUrlFailureCount[] = "current-url-failure-count";
42const char kPrefsCurrentUrlIndex[] = "current-url-index";
David Zeuthen985b1122013-10-09 12:13:15 -070043const char kPrefsDailyMetricsLastReportedAt[] =
44 "daily-metrics-last-reported-at";
Jay Srinivasand29695d2013-04-08 15:08:05 -070045const char kPrefsDeltaUpdateFailures[] = "delta-update-failures";
Tao Bao3406c772019-01-02 15:34:35 -080046const char kPrefsDynamicPartitionMetadataUpdated[] =
47 "dynamic-partition-metadata-updated";
Alex Deymo820cc702013-06-28 15:43:46 -070048const char kPrefsFullPayloadAttemptNumber[] = "full-payload-attempt-number";
David Zeuthen639aa362014-02-03 16:23:44 -080049const char kPrefsInstallDateDays[] = "install-date-days";
Jay Srinivasand29695d2013-04-08 15:08:05 -070050const char kPrefsLastActivePingDay[] = "last-active-ping-day";
51const char kPrefsLastRollCallPingDay[] = "last-roll-call-ping-day";
52const char kPrefsManifestMetadataSize[] = "manifest-metadata-size";
Alex Deymof25eb492016-02-26 00:20:08 -080053const char kPrefsManifestSignatureSize[] = "manifest-signature-size";
David Zeuthen33bae492014-02-25 16:16:18 -080054const char kPrefsMetricsAttemptLastReportingTime[] =
55 "metrics-attempt-last-reporting-time";
56const char kPrefsMetricsCheckLastReportingTime[] =
57 "metrics-check-last-reporting-time";
Amin Hassaniffb6d802018-03-30 11:43:57 -070058const char kPrefsNoIgnoreBackoff[] = "no-ignore-backoff";
Chris Sosabe45bef2013-04-09 18:25:12 -070059const char kPrefsNumReboots[] = "num-reboots";
David Zeuthena573d6f2013-06-14 16:13:36 -070060const char kPrefsNumResponsesSeen[] = "num-responses-seen";
Alex Deymo8e18f932015-03-27 16:16:59 -070061const char kPrefsOmahaCohort[] = "omaha-cohort";
62const char kPrefsOmahaCohortHint[] = "omaha-cohort-hint";
63const char kPrefsOmahaCohortName[] = "omaha-cohort-name";
Jae Hoon Kim051627a2019-09-03 12:56:32 -070064const char kPrefsOmahaEolDate[] = "omaha-eol-date";
David Zeuthen27a48bc2013-08-06 12:06:29 -070065const char kPrefsP2PEnabled[] = "p2p-enabled";
David Zeuthen639aa362014-02-03 16:23:44 -080066const char kPrefsP2PFirstAttemptTimestamp[] = "p2p-first-attempt-timestamp";
67const char kPrefsP2PNumAttempts[] = "p2p-num-attempts";
Jay Srinivasand29695d2013-04-08 15:08:05 -070068const char kPrefsPayloadAttemptNumber[] = "payload-attempt-number";
Amin Hassani03277de2020-07-28 12:32:49 -070069const char kPrefsTestUpdateCheckIntervalTimeout[] =
70 "test-update-check-interval-timeout";
Andrewe045aef2020-01-08 16:29:22 -080071// Keep |kPrefsPingActive| in sync with |kDlcMetadataFilePingActive| in
72// dlcservice.
73const char kPrefsPingActive[] = "active";
74const char kPrefsPingLastActive[] = "date_last_active";
75const char kPrefsPingLastRollcall[] = "date_last_rollcall";
Vyshu Khota4c5413d2020-11-04 16:17:25 -080076const char kPrefsLastFp[] = "last-fp";
Sen Jiang02c49422017-10-31 15:14:11 -070077const char kPrefsPostInstallSucceeded[] = "post-install-succeeded";
Jay Srinivasand29695d2013-04-08 15:08:05 -070078const char kPrefsPreviousVersion[] = "previous-version";
79const char kPrefsResumedUpdateFailures[] = "resumed-update-failures";
Marton Hunyadye58bddb2018-04-10 20:27:26 +020080const char kPrefsRollbackHappened[] = "rollback-happened";
Chris Sosaaa18e162013-06-20 13:20:30 -070081const char kPrefsRollbackVersion[] = "rollback-version";
Alex Deymo85616652015-10-15 18:48:31 -070082const char kPrefsChannelOnSlotPrefix[] = "channel-on-slot-";
David Zeuthene4c58bf2013-06-18 17:26:50 -070083const char kPrefsSystemUpdatedMarker[] = "system-updated-marker";
Alex Deymo42432912013-07-12 20:21:15 -070084const char kPrefsTargetVersionAttempt[] = "target-version-attempt";
85const char kPrefsTargetVersionInstalledFrom[] = "target-version-installed-from";
86const char kPrefsTargetVersionUniqueId[] = "target-version-unique-id";
Jay Srinivasan19409b72013-04-12 19:23:36 -070087const char kPrefsTotalBytesDownloaded[] = "total-bytes-downloaded";
Jay Srinivasand29695d2013-04-08 15:08:05 -070088const char kPrefsUpdateCheckCount[] = "update-check-count";
89const char kPrefsUpdateCheckResponseHash[] = "update-check-response-hash";
Alex Deymo906191f2015-10-12 12:22:44 -070090const char kPrefsUpdateCompletedBootTime[] = "update-completed-boot-time";
91const char kPrefsUpdateCompletedOnBootId[] = "update-completed-on-boot-id";
David Zeuthencc6f9962013-04-18 11:57:24 -070092const char kPrefsUpdateDurationUptime[] = "update-duration-uptime";
Jay Srinivasand29695d2013-04-08 15:08:05 -070093const char kPrefsUpdateFirstSeenAt[] = "update-first-seen-at";
Alex Deymof4867c42013-06-28 14:41:39 -070094const char kPrefsUpdateOverCellularPermission[] =
95 "update-over-cellular-permission";
Weidong Guo421ff332017-04-17 10:08:38 -070096const char kPrefsUpdateOverCellularTargetVersion[] =
97 "update-over-cellular-target-version";
98const char kPrefsUpdateOverCellularTargetSize[] =
99 "update-over-cellular-target-size";
Jay Srinivasand29695d2013-04-08 15:08:05 -0700100const char kPrefsUpdateServerCertificate[] = "update-server-cert";
David Zeuthen41996ad2013-09-24 15:43:24 -0700101const char kPrefsUpdateStateNextDataLength[] = "update-state-next-data-length";
David Zeuthen639aa362014-02-03 16:23:44 -0800102const char kPrefsUpdateStateNextDataOffset[] = "update-state-next-data-offset";
Jay Srinivasand29695d2013-04-08 15:08:05 -0700103const char kPrefsUpdateStateNextOperation[] = "update-state-next-operation";
Sen Jiang0affc2c2017-02-10 15:55:05 -0800104const char kPrefsUpdateStatePayloadIndex[] = "update-state-payload-index";
Jay Srinivasand29695d2013-04-08 15:08:05 -0700105const char kPrefsUpdateStateSHA256Context[] = "update-state-sha-256-context";
106const char kPrefsUpdateStateSignatureBlob[] = "update-state-signature-blob";
107const char kPrefsUpdateStateSignedSHA256Context[] =
108 "update-state-signed-sha-256-context";
Tianjie Xu2a0ea632018-08-06 12:59:23 -0700109const char kPrefsUpdateBootTimestampStart[] = "update-boot-timestamp-start";
David Zeuthen9a017f22013-04-11 16:10:26 -0700110const char kPrefsUpdateTimestampStart[] = "update-timestamp-start";
David Zeuthencc6f9962013-04-18 11:57:24 -0700111const char kPrefsUrlSwitchCount[] = "url-switch-count";
Sen Jiang3eeaf7d2018-10-11 13:55:32 -0700112const char kPrefsVerityWritten[] = "verity-written";
Adolfo Victoriad3a1e352018-07-16 11:40:47 -0700113const char kPrefsWallClockScatteringWaitPeriod[] = "wall-clock-wait-period";
114const char kPrefsWallClockStagingWaitPeriod[] =
115 "wall-clock-staging-wait-period";
Kelvin Zhangcc011d32020-07-10 18:20:08 -0400116const char kPrefsManifestBytes[] = "manifest-bytes";
Jay Srinivasand29695d2013-04-08 15:08:05 -0700117
Elliott Hughesb1e3e3c2017-02-28 15:15:38 -0800118// These four fields are generated by scripts/brillo_update_payload.
Alex Deymo98e691c2016-02-04 21:05:45 -0800119const char kPayloadPropertyFileSize[] = "FILE_SIZE";
120const char kPayloadPropertyFileHash[] = "FILE_HASH";
121const char kPayloadPropertyMetadataSize[] = "METADATA_SIZE";
122const char kPayloadPropertyMetadataHash[] = "METADATA_HASH";
Elliott Hughesb1e3e3c2017-02-28 15:15:38 -0800123// The Authorization: HTTP header to be sent when downloading the payload.
Alex Deymofdd6dec2016-03-03 22:35:43 -0800124const char kPayloadPropertyAuthorization[] = "AUTHORIZATION";
Elliott Hughesb1e3e3c2017-02-28 15:15:38 -0800125// The User-Agent HTTP header to be sent when downloading the payload.
Alex Deymofdd6dec2016-03-03 22:35:43 -0800126const char kPayloadPropertyUserAgent[] = "USER_AGENT";
Elliott Hughesb1e3e3c2017-02-28 15:15:38 -0800127// Set "POWERWASH=1" to powerwash (factory data reset) the device after
128// applying the update.
Alex Deymofb905d92016-06-03 19:26:58 -0700129const char kPayloadPropertyPowerwash[] = "POWERWASH";
Elliott Hughesb1e3e3c2017-02-28 15:15:38 -0800130// The network id to pass to android_setprocnetwork before downloading.
131// This can be used to zero-rate OTA traffic by sending it over the correct
132// network.
Alex Deymo87792ea2016-07-25 15:40:36 -0700133const char kPayloadPropertyNetworkId[] = "NETWORK_ID";
Sen Jiang02c49422017-10-31 15:14:11 -0700134// Set "SWITCH_SLOT_ON_REBOOT=0" to skip marking the updated partitions active.
135// The default is 1 (always switch slot if update succeeded).
136const char kPayloadPropertySwitchSlotOnReboot[] = "SWITCH_SLOT_ON_REBOOT";
Tianjie Xu087de9d2019-11-01 17:11:22 -0700137// Set "RUN_POST_INSTALL=0" to skip running optional post install.
Sen Jiang02c49422017-10-31 15:14:11 -0700138// The default is 1 (always run post install).
139const char kPayloadPropertyRunPostInstall[] = "RUN_POST_INSTALL";
Alex Deymo98e691c2016-02-04 21:05:45 -0800140
Amin Hassani7fca2862019-03-28 16:09:22 -0700141const char kOmahaUpdaterVersion[] = "0.1.0.0";
142
Jae Hoon Kim0ae8fe12019-06-26 14:32:50 -0700143// X-Goog-Update headers.
144const char kXGoogleUpdateInteractivity[] = "X-Goog-Update-Interactivity";
145const char kXGoogleUpdateAppId[] = "X-Goog-Update-AppId";
146const char kXGoogleUpdateUpdater[] = "X-Goog-Update-Updater";
147const char kXGoogleUpdateSessionId[] = "X-Goog-SessionId";
148
Alex Vakulenkod2779df2014-06-16 13:19:00 -0700149} // namespace chromeos_update_engine