1aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 2aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Copyright (C) 2013 The Android Open Source Project 3aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 4aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Licensed under the Apache License, Version 2.0 (the "License"); 5aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// you may not use this file except in compliance with the License. 6aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// You may obtain a copy of the License at 7aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 8aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// http://www.apache.org/licenses/LICENSE-2.0 9aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 10aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Unless required by applicable law or agreed to in writing, software 11aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// distributed under the License is distributed on an "AS IS" BASIS, 12aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// See the License for the specific language governing permissions and 14aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// limitations under the License. 15aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 16f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 1739910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#ifndef UPDATE_ENGINE_COMMON_HWID_OVERRIDE_H_ 1839910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#define UPDATE_ENGINE_COMMON_HWID_OVERRIDE_H_ 19f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 20f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone#include <map> 21f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone#include <string> 22f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 2375039d7397f03dff77bdf4e26398049ff88edc4cAlex Vakulenko#include <base/files/file_path.h> 2405735a1879a553153458aae0a25fa5d42e3e408fBen Chan#include <base/macros.h> 25f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 26f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masonenamespace chromeos_update_engine { 27f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 28f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone// Class that allows HWID to be read from <root>/etc/lsb-release. 29f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masoneclass HwidOverride { 30f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone public: 31f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone HwidOverride(); 32f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone ~HwidOverride(); 33f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 34f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone // Read HWID from an /etc/lsb-release file under given root. 35f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone // An empty string is returned if there is any error. 36f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone static std::string Read(const base::FilePath& root); 37f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 38f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone static const char kHwidOverrideKey[]; 3905735a1879a553153458aae0a25fa5d42e3e408fBen Chan 40f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone private: 41f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone DISALLOW_COPY_AND_ASSIGN(HwidOverride); 42f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone}; 43f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 44f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone} // namespace chromeos_update_engine 45f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 4639910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#endif // UPDATE_ENGINE_COMMON_HWID_OVERRIDE_H_ 47