#include #include #include #include #include #include #include #include #include namespace tt::settings { constexpr auto* TAG = "BootProperties"; constexpr auto* PROPERTIES_FILE_FORMAT = "{}/settings/boot.properties"; constexpr auto* PROPERTIES_KEY_LAUNCHER_APP_ID = "launcherAppId"; constexpr auto* PROPERTIES_KEY_AUTO_START_APP_ID = "autoStartAppId"; static std::string getPropertiesFilePath() { const auto sdcards = hal::findDevices(hal::Device::Type::SdCard); for (auto& sdcard : sdcards) { std::string path = std::format(PROPERTIES_FILE_FORMAT, sdcard->getMountPath()); if (file::isFile(path)) { return path; } } return std::format(PROPERTIES_FILE_FORMAT, file::MOUNT_POINT_DATA); } bool loadBootSettings(BootSettings& properties) { const std::string path = getPropertiesFilePath(); if (!file::loadPropertiesFile(path, [&properties](auto& key, auto& value) { if (key == PROPERTIES_KEY_AUTO_START_APP_ID) { properties.autoStartAppId = value; } else if (key == PROPERTIES_KEY_LAUNCHER_APP_ID) { properties.launcherAppId = value; } })) { TT_LOG_E(TAG, "Failed to load %s", path.c_str()); return false; } return !properties.launcherAppId.empty(); } }