blob: 6583703031ee9781ae1a4b40adf068cd2c235f1f [file] [log] [blame]
// Copyright 2014 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef DEBUGD_SRC_DEV_FEATURES_TOOL_H_
#define DEBUGD_SRC_DEV_FEATURES_TOOL_H_
#include <string>
#include <base/macros.h>
#include <dbus-c++/dbus.h>
namespace debugd {
// A collection of functions to enable various development features.
//
// Each feature has two associated functions, one to enable the feature and one
// to query whether it's been enabled or not.
class DevFeaturesTool {
public:
DevFeaturesTool() = default;
~DevFeaturesTool() = default;
void RemoveRootfsVerification(DBus::Error* error) const;
bool RemoveRootfsVerificationQuery(DBus::Error* error) const;
void EnableBootFromUsb(DBus::Error* error) const;
bool EnableBootFromUsbQuery(DBus::Error* error) const;
void ConfigureSshServer(DBus::Error* error) const;
bool ConfigureSshServerQuery(DBus::Error* error) const;
void SetUserPassword(const std::string& username,
const std::string& password,
DBus::Error* error) const;
bool SetUserPasswordQuery(const std::string& username,
bool system,
DBus::Error* error) const;
void EnableChromeRemoteDebugging(DBus::Error* error) const;
bool EnableChromeRemoteDebuggingQuery(DBus::Error* error) const;
void EnableChromeDevFeatures(const std::string& root_password,
DBus::Error* error) const;
int32_t QueryDevFeatures(DBus::Error* error) const;
private:
DISALLOW_COPY_AND_ASSIGN(DevFeaturesTool);
};
} // namespace debugd
#endif // DEBUGD_SRC_DEV_FEATURES_TOOL_H_