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#include "update_engine/common/hwid_override.h" 18f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 19f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone#include <map> 20f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone#include <string> 21f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 2275039d7397f03dff77bdf4e26398049ff88edc4cAlex Vakulenko#include <base/files/file_path.h> 2306c76a49bfd29c8abdb8abd5b646a6583783191aBen Chan#include <base/files/file_util.h> 243f39d5cc753905874d8d93bef94f857b8808f19eAlex Vakulenko#include <brillo/key_value_store.h> 25f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 26f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masoneusing std::map; 27f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masoneusing std::string; 28f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 29f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masonenamespace chromeos_update_engine { 30f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 31f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masoneconst char HwidOverride::kHwidOverrideKey[] = "HWID_OVERRIDE"; 32f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 33f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris MasoneHwidOverride::HwidOverride() {} 34f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 35f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris MasoneHwidOverride::~HwidOverride() {} 36f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 37f329b933db41d26644a97afef928eb1b319d6d99Alex Deymostring HwidOverride::Read(const base::FilePath& root) { 383f39d5cc753905874d8d93bef94f857b8808f19eAlex Vakulenko brillo::KeyValueStore lsb_release; 392b4e2a5fba160365e9f9dca92d76c6e8a273ea88Alex Deymo lsb_release.Load(base::FilePath(root.value() + "/etc/lsb-release")); 40a7658449213d3141ff11e4aee3531fa35ba0970dAlex Deymo string result; 41a7658449213d3141ff11e4aee3531fa35ba0970dAlex Deymo if (lsb_release.GetString(kHwidOverrideKey, &result)) 42a7658449213d3141ff11e4aee3531fa35ba0970dAlex Deymo return result; 43a7658449213d3141ff11e4aee3531fa35ba0970dAlex Deymo return ""; 44f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone} 45f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone 46f8d037f5c506770adbe874f0eefa1e5e5abf4140Chris Masone} // namespace chromeos_update_engine 47