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