1*20733378SAndroid Build Coastguard Worker/* 2*20733378SAndroid Build Coastguard Worker * Copyright (C) 2024 The Android Open Source Project 3*20733378SAndroid Build Coastguard Worker * 4*20733378SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*20733378SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*20733378SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*20733378SAndroid Build Coastguard Worker * 8*20733378SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*20733378SAndroid Build Coastguard Worker * 10*20733378SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*20733378SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*20733378SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*20733378SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*20733378SAndroid Build Coastguard Worker * limitations under the License. 15*20733378SAndroid Build Coastguard Worker */ 16*20733378SAndroid Build Coastguard Worker 17*20733378SAndroid Build Coastguard Workersyntax = "proto2"; 18*20733378SAndroid Build Coastguard Workerpackage android.aconfigd; 19*20733378SAndroid Build Coastguard Workeroption optimize_for = LITE_RUNTIME; 20*20733378SAndroid Build Coastguard Worker 21*20733378SAndroid Build Coastguard Workermessage PersistStorageRecord { 22*20733378SAndroid Build Coastguard Worker optional uint32 version = 1; 23*20733378SAndroid Build Coastguard Worker optional string container = 2; 24*20733378SAndroid Build Coastguard Worker optional string package_map = 3; 25*20733378SAndroid Build Coastguard Worker optional string flag_map = 4; 26*20733378SAndroid Build Coastguard Worker optional string flag_val = 5; 27*20733378SAndroid Build Coastguard Worker optional string digest = 6; 28*20733378SAndroid Build Coastguard Worker optional string flag_info = 7; 29*20733378SAndroid Build Coastguard Worker} 30*20733378SAndroid Build Coastguard Worker 31*20733378SAndroid Build Coastguard Workermessage PersistStorageRecords { 32*20733378SAndroid Build Coastguard Worker repeated PersistStorageRecord records = 1; 33*20733378SAndroid Build Coastguard Worker} 34*20733378SAndroid Build Coastguard Worker 35*20733378SAndroid Build Coastguard Workermessage FlagOverride { 36*20733378SAndroid Build Coastguard Worker optional string package_name = 1; 37*20733378SAndroid Build Coastguard Worker optional string flag_name = 2; 38*20733378SAndroid Build Coastguard Worker optional string flag_value = 3; 39*20733378SAndroid Build Coastguard Worker} 40*20733378SAndroid Build Coastguard Worker 41*20733378SAndroid Build Coastguard Workermessage LocalFlagOverrides { 42*20733378SAndroid Build Coastguard Worker repeated FlagOverride overrides = 1; 43*20733378SAndroid Build Coastguard Worker} 44*20733378SAndroid Build Coastguard Worker 45*20733378SAndroid Build Coastguard Worker// incoming request to aconfigd 46*20733378SAndroid Build Coastguard Workermessage StorageRequestMessage { 47*20733378SAndroid Build Coastguard Worker // new storage notification 48*20733378SAndroid Build Coastguard Worker message NewStorageMessage { 49*20733378SAndroid Build Coastguard Worker optional string container = 1; 50*20733378SAndroid Build Coastguard Worker optional string package_map = 2; 51*20733378SAndroid Build Coastguard Worker optional string flag_map = 3; 52*20733378SAndroid Build Coastguard Worker optional string flag_value = 4; 53*20733378SAndroid Build Coastguard Worker optional string flag_info = 5; 54*20733378SAndroid Build Coastguard Worker } 55*20733378SAndroid Build Coastguard Worker 56*20733378SAndroid Build Coastguard Worker enum FlagOverrideType { 57*20733378SAndroid Build Coastguard Worker LOCAL_IMMEDIATE = 1; 58*20733378SAndroid Build Coastguard Worker LOCAL_ON_REBOOT = 2; 59*20733378SAndroid Build Coastguard Worker SERVER_ON_REBOOT = 3; 60*20733378SAndroid Build Coastguard Worker } 61*20733378SAndroid Build Coastguard Worker 62*20733378SAndroid Build Coastguard Worker // request persistent flag value override 63*20733378SAndroid Build Coastguard Worker message FlagOverrideMessage { 64*20733378SAndroid Build Coastguard Worker optional string package_name = 1; 65*20733378SAndroid Build Coastguard Worker optional string flag_name = 2; 66*20733378SAndroid Build Coastguard Worker optional string flag_value = 3; 67*20733378SAndroid Build Coastguard Worker optional FlagOverrideType override_type = 4; 68*20733378SAndroid Build Coastguard Worker } 69*20733378SAndroid Build Coastguard Worker 70*20733378SAndroid Build Coastguard Worker // request to stage ota flags 71*20733378SAndroid Build Coastguard Worker message OTAFlagStagingMessage { 72*20733378SAndroid Build Coastguard Worker optional string build_id = 1; 73*20733378SAndroid Build Coastguard Worker repeated FlagOverride overrides = 2; 74*20733378SAndroid Build Coastguard Worker } 75*20733378SAndroid Build Coastguard Worker 76*20733378SAndroid Build Coastguard Worker enum RemoveOverrideType { 77*20733378SAndroid Build Coastguard Worker REMOVE_LOCAL_IMMEDIATE = 1; 78*20733378SAndroid Build Coastguard Worker REMOVE_LOCAL_ON_REBOOT = 2; 79*20733378SAndroid Build Coastguard Worker } 80*20733378SAndroid Build Coastguard Worker 81*20733378SAndroid Build Coastguard Worker // request to remove local flag override 82*20733378SAndroid Build Coastguard Worker message RemoveLocalOverrideMessage { 83*20733378SAndroid Build Coastguard Worker optional bool remove_all = 1; 84*20733378SAndroid Build Coastguard Worker optional string package_name = 2; 85*20733378SAndroid Build Coastguard Worker optional string flag_name = 3; 86*20733378SAndroid Build Coastguard Worker optional RemoveFlagOverrideType remove_override_type = 4; 87*20733378SAndroid Build Coastguard Worker } 88*20733378SAndroid Build Coastguard Worker 89*20733378SAndroid Build Coastguard Worker // query persistent flag value and info 90*20733378SAndroid Build Coastguard Worker message FlagQueryMessage { 91*20733378SAndroid Build Coastguard Worker optional string package_name = 1; 92*20733378SAndroid Build Coastguard Worker optional string flag_name = 2; 93*20733378SAndroid Build Coastguard Worker } 94*20733378SAndroid Build Coastguard Worker 95*20733378SAndroid Build Coastguard Worker // reset all storage 96*20733378SAndroid Build Coastguard Worker message ResetStorageMessage { 97*20733378SAndroid Build Coastguard Worker oneof msg { 98*20733378SAndroid Build Coastguard Worker bool all = 1; 99*20733378SAndroid Build Coastguard Worker string container = 2; 100*20733378SAndroid Build Coastguard Worker } 101*20733378SAndroid Build Coastguard Worker } 102*20733378SAndroid Build Coastguard Worker 103*20733378SAndroid Build Coastguard Worker // list storage 104*20733378SAndroid Build Coastguard Worker message ListStorageMessage { 105*20733378SAndroid Build Coastguard Worker oneof msg { 106*20733378SAndroid Build Coastguard Worker bool all = 1; 107*20733378SAndroid Build Coastguard Worker string container = 2; 108*20733378SAndroid Build Coastguard Worker string package_name = 3; 109*20733378SAndroid Build Coastguard Worker } 110*20733378SAndroid Build Coastguard Worker } 111*20733378SAndroid Build Coastguard Worker 112*20733378SAndroid Build Coastguard Worker oneof msg { 113*20733378SAndroid Build Coastguard Worker NewStorageMessage new_storage_message = 1; 114*20733378SAndroid Build Coastguard Worker FlagOverrideMessage flag_override_message = 2; 115*20733378SAndroid Build Coastguard Worker OTAFlagStagingMessage ota_staging_message = 3; 116*20733378SAndroid Build Coastguard Worker FlagQueryMessage flag_query_message = 4; 117*20733378SAndroid Build Coastguard Worker RemoveLocalOverrideMessage remove_local_override_message = 5; 118*20733378SAndroid Build Coastguard Worker ResetStorageMessage reset_storage_message = 6; 119*20733378SAndroid Build Coastguard Worker ListStorageMessage list_storage_message = 7; 120*20733378SAndroid Build Coastguard Worker }; 121*20733378SAndroid Build Coastguard Worker} 122*20733378SAndroid Build Coastguard Worker 123*20733378SAndroid Build Coastguard Workermessage StorageRequestMessages { 124*20733378SAndroid Build Coastguard Worker repeated StorageRequestMessage msgs = 1; 125*20733378SAndroid Build Coastguard Worker} 126*20733378SAndroid Build Coastguard Worker 127*20733378SAndroid Build Coastguard Worker// aconfigd return to client 128*20733378SAndroid Build Coastguard Workermessage StorageReturnMessage { 129*20733378SAndroid Build Coastguard Worker message NewStorageReturnMessage { 130*20733378SAndroid Build Coastguard Worker optional bool storage_updated = 1; 131*20733378SAndroid Build Coastguard Worker } 132*20733378SAndroid Build Coastguard Worker 133*20733378SAndroid Build Coastguard Worker message FlagOverrideReturnMessage {} 134*20733378SAndroid Build Coastguard Worker 135*20733378SAndroid Build Coastguard Worker message OTAFlagStagingReturnMessage {} 136*20733378SAndroid Build Coastguard Worker 137*20733378SAndroid Build Coastguard Worker message FlagQueryReturnMessage { 138*20733378SAndroid Build Coastguard Worker optional string package_name = 1; 139*20733378SAndroid Build Coastguard Worker optional string flag_name = 2; 140*20733378SAndroid Build Coastguard Worker optional string server_flag_value = 3; 141*20733378SAndroid Build Coastguard Worker optional string local_flag_value = 4; 142*20733378SAndroid Build Coastguard Worker optional string boot_flag_value = 5; 143*20733378SAndroid Build Coastguard Worker optional string default_flag_value = 6; 144*20733378SAndroid Build Coastguard Worker optional bool has_server_override = 7; 145*20733378SAndroid Build Coastguard Worker optional bool is_readwrite = 8; 146*20733378SAndroid Build Coastguard Worker optional bool has_local_override = 9; 147*20733378SAndroid Build Coastguard Worker optional bool has_boot_local_override = 10; 148*20733378SAndroid Build Coastguard Worker optional string container = 11; 149*20733378SAndroid Build Coastguard Worker } 150*20733378SAndroid Build Coastguard Worker 151*20733378SAndroid Build Coastguard Worker message RemoveLocalOverrideReturnMessage {} 152*20733378SAndroid Build Coastguard Worker 153*20733378SAndroid Build Coastguard Worker message ResetStorageReturnMessage {} 154*20733378SAndroid Build Coastguard Worker 155*20733378SAndroid Build Coastguard Worker message ListStorageReturnMessage { 156*20733378SAndroid Build Coastguard Worker repeated FlagQueryReturnMessage flags = 1; 157*20733378SAndroid Build Coastguard Worker } 158*20733378SAndroid Build Coastguard Worker 159*20733378SAndroid Build Coastguard Worker oneof msg { 160*20733378SAndroid Build Coastguard Worker NewStorageReturnMessage new_storage_message = 1; 161*20733378SAndroid Build Coastguard Worker FlagOverrideReturnMessage flag_override_message = 2; 162*20733378SAndroid Build Coastguard Worker OTAFlagStagingReturnMessage ota_staging_message = 3; 163*20733378SAndroid Build Coastguard Worker FlagQueryReturnMessage flag_query_message = 4; 164*20733378SAndroid Build Coastguard Worker RemoveLocalOverrideReturnMessage remove_local_override_message = 5; 165*20733378SAndroid Build Coastguard Worker ResetStorageReturnMessage reset_storage_message = 6; 166*20733378SAndroid Build Coastguard Worker ListStorageReturnMessage list_storage_message = 7; 167*20733378SAndroid Build Coastguard Worker string error_message = 8; 168*20733378SAndroid Build Coastguard Worker }; 169*20733378SAndroid Build Coastguard Worker} 170*20733378SAndroid Build Coastguard Worker 171*20733378SAndroid Build Coastguard Workermessage StorageReturnMessages { 172*20733378SAndroid Build Coastguard Worker repeated StorageReturnMessage msgs = 1; 173*20733378SAndroid Build Coastguard Worker} 174