1/* 2 * Copyright (C) 2024 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 */ 16 17syntax = "proto2"; 18package android.aconfigd; 19option optimize_for = LITE_RUNTIME; 20 21message PersistStorageRecord { 22 optional uint32 version = 1; 23 optional string container = 2; 24 optional string package_map = 3; 25 optional string flag_map = 4; 26 optional string flag_val = 5; 27 optional string digest = 6; 28 optional string flag_info = 7; 29} 30 31message PersistStorageRecords { 32 repeated PersistStorageRecord records = 1; 33} 34 35message FlagOverride { 36 optional string package_name = 1; 37 optional string flag_name = 2; 38 optional string flag_value = 3; 39} 40 41message LocalFlagOverrides { 42 repeated FlagOverride overrides = 1; 43} 44 45// incoming request to aconfigd 46message StorageRequestMessage { 47 // new storage notification 48 message NewStorageMessage { 49 optional string container = 1; 50 optional string package_map = 2; 51 optional string flag_map = 3; 52 optional string flag_value = 4; 53 optional string flag_info = 5; 54 } 55 56 enum FlagOverrideType { 57 LOCAL_IMMEDIATE = 1; 58 LOCAL_ON_REBOOT = 2; 59 SERVER_ON_REBOOT = 3; 60 } 61 62 // request persistent flag value override 63 message FlagOverrideMessage { 64 optional string package_name = 1; 65 optional string flag_name = 2; 66 optional string flag_value = 3; 67 optional FlagOverrideType override_type = 4; 68 } 69 70 // request to stage ota flags 71 message OTAFlagStagingMessage { 72 optional string build_id = 1; 73 repeated FlagOverride overrides = 2; 74 } 75 76 enum RemoveOverrideType { 77 REMOVE_LOCAL_IMMEDIATE = 1; 78 REMOVE_LOCAL_ON_REBOOT = 2; 79 } 80 81 // request to remove local flag override 82 message RemoveLocalOverrideMessage { 83 optional bool remove_all = 1; 84 optional string package_name = 2; 85 optional string flag_name = 3; 86 optional RemoveOverrideType remove_override_type = 4; 87 } 88 89 // query persistent flag value and info 90 message FlagQueryMessage { 91 optional string package_name = 1; 92 optional string flag_name = 2; 93 } 94 95 // reset all storage 96 message ResetStorageMessage { 97 oneof msg { 98 bool all = 1; 99 string container = 2; 100 } 101 } 102 103 // list storage 104 message ListStorageMessage { 105 oneof msg { 106 bool all = 1; 107 string container = 2; 108 string package_name = 3; 109 } 110 } 111 112 oneof msg { 113 NewStorageMessage new_storage_message = 1; 114 FlagOverrideMessage flag_override_message = 2; 115 OTAFlagStagingMessage ota_staging_message = 3; 116 FlagQueryMessage flag_query_message = 4; 117 RemoveLocalOverrideMessage remove_local_override_message = 5; 118 ResetStorageMessage reset_storage_message = 6; 119 ListStorageMessage list_storage_message = 7; 120 }; 121} 122 123message StorageRequestMessages { 124 repeated StorageRequestMessage msgs = 1; 125} 126 127// aconfigd return to client 128message StorageReturnMessage { 129 message NewStorageReturnMessage { 130 optional bool storage_updated = 1; 131 } 132 133 message FlagOverrideReturnMessage {} 134 135 message OTAFlagStagingReturnMessage {} 136 137 message FlagQueryReturnMessage { 138 optional string package_name = 1; 139 optional string flag_name = 2; 140 optional string server_flag_value = 3; 141 optional string local_flag_value = 4; 142 optional string boot_flag_value = 5; 143 optional string default_flag_value = 6; 144 optional bool has_server_override = 7; 145 optional bool is_readwrite = 8; 146 optional bool has_local_override = 9; 147 optional bool has_boot_local_override = 10; 148 optional string container = 11; 149 } 150 151 message RemoveLocalOverrideReturnMessage {} 152 153 message ResetStorageReturnMessage {} 154 155 message ListStorageReturnMessage { 156 repeated FlagQueryReturnMessage flags = 1; 157 } 158 159 oneof msg { 160 NewStorageReturnMessage new_storage_message = 1; 161 FlagOverrideReturnMessage flag_override_message = 2; 162 OTAFlagStagingReturnMessage ota_staging_message = 3; 163 FlagQueryReturnMessage flag_query_message = 4; 164 RemoveLocalOverrideReturnMessage remove_local_override_message = 5; 165 ResetStorageReturnMessage reset_storage_message = 6; 166 ListStorageReturnMessage list_storage_message = 7; 167 string error_message = 8; 168 }; 169} 170 171message StorageReturnMessages { 172 repeated StorageReturnMessage msgs = 1; 173} 174