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 17 #pragma once 18 19 #include <string_view> 20 21 // Return true if adbd should transition to trade-in mode. 22 bool should_enter_tradeinmode(); 23 24 // Transition adbd to the given trade-in mode secontext. 25 void enter_tradeinmode(const char* seclabel); 26 27 // Returns whether the given command string is allowed while in trade-in mode. 28 bool allow_tradeinmode_command(std::string_view name); 29 30 // Returns whether adbd is currently in trade-in mode (eg enter_tradeinmode was called). 31 bool is_in_tradeinmode(); 32 33 // Returns whether the "tradeinmode enter" command was used. This command places the device in 34 // "trade-in evaluation" mode, granting normal adb shell without authorization. In this mode, a 35 // factory reset is guaranteed on reboot. 36 bool is_in_tradein_evaluation_mode(); 37