diff --git a/src/anbox/cmds/session_manager.cpp b/src/anbox/cmds/session_manager.cpp index 924eadf..d0ce924 100644 --- a/src/anbox/cmds/session_manager.cpp +++ b/src/anbox/cmds/session_manager.cpp @@ -109,6 +109,9 @@ anbox::cmds::SessionManager::SessionManager(const BusFactory &bus_factory) flag(cli::make_flag(cli::Name{"standalone"}, cli::Description{"Prevents the Container Manager from starting the default container (Experimental)"}, standalone_)); + flag(cli::make_flag(cli::Name{"experimental"}, + cli::Description{"Allows users to use experimental features"}, + experimental_)); action([this](const cli::Command::Context &) { auto trap = core::posix::trap_signals_for_process( @@ -118,6 +121,11 @@ anbox::cmds::SessionManager::SessionManager(const BusFactory &bus_factory) trap->stop(); }); + if (standalone_ && !experimental_) { + ERROR("Experimental features selected, but --experimental flag not set"); + return EXIT_FAILURE; + } + if (!fs::exists("/dev/binder") || !fs::exists("/dev/ashmem")) { ERROR("Failed to start as either binder or ashmem kernel drivers are not loaded"); return EXIT_FAILURE; diff --git a/src/anbox/cmds/session_manager.h b/src/anbox/cmds/session_manager.h index 60c3d42..498f5a5 100644 --- a/src/anbox/cmds/session_manager.h +++ b/src/anbox/cmds/session_manager.h @@ -46,6 +46,7 @@ class SessionManager : public cli::CommandWithFlagsAndAction { bool single_window_ = false; graphics::Rect window_size_; bool standalone_ = false; + bool experimental_ = false; }; } // namespace cmds } // namespace anbox