diff --git a/src/backend/DataCollectorAndUploader.cpp b/src/backend/DataCollectorAndUploader.cpp index 354b57b..695a1ce 100644 --- a/src/backend/DataCollectorAndUploader.cpp +++ b/src/backend/DataCollectorAndUploader.cpp @@ -8,6 +8,8 @@ #include #include #include +#include +#include DataCollectorAndUploader::DataCollectorAndUploader(QObject *parent) : QObject(parent) { @@ -23,25 +25,26 @@ void DataCollectorAndUploader::collectData() QString distributor_id; QString release; QString architecture; - + QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat); QString version = config.value("build/version").toString(); QString uuid = config.value("info/uuid").toString(); - - // Execute lsb_release --all and capture the output - QProcess lsbProcess; - lsbProcess.start("lsb_release", QStringList() << "--all"); - lsbProcess.waitForFinished(); - QString lsbOutput = lsbProcess.readAllStandardOutput(); - - QStringList lines = lsbOutput.split('\n'); - for (const QString &line : lines) { - if (line.contains("Distributor ID:")) { - distributor_id = line.split(":").last().trimmed(); - } else if (line.contains("Release:")) { - release = line.split(":").last().trimmed(); + // Read /etc/os-release file + QFile osReleaseFile("/etc/os-release"); + if (osReleaseFile.open(QIODevice::ReadOnly | QIODevice::Text)) { + QTextStream in(&osReleaseFile); + while (!in.atEnd()) { + QString line = in.readLine(); + if (line.startsWith("ID=")) { + distributor_id = line.mid(3).remove('"').trimmed(); + } else if (line.startsWith("VERSION_ID=")) { + release = line.mid(11).remove('"').trimmed(); + } } + osReleaseFile.close(); + } else { + qWarning() << "Could not open /etc/os-release file"; } // Execute uname -m to get the architecture @@ -58,8 +61,6 @@ void DataCollectorAndUploader::collectData() json.insert("Store_Version", version); json.insert("UUID", uuid); - - // Convert to byte array QJsonDocument doc(json); QByteArray jsonData = doc.toJson(); diff --git a/tool/ssaudit b/tool/ssaudit index 02b44ae..5cf07ad 100755 --- a/tool/ssaudit +++ b/tool/ssaudit @@ -66,7 +66,7 @@ case $(arch) in esac # 帮助函数 function show_help() { - echo "Spark Store Audit script. 星火商店审核脚本" + echo "Spark Store Anstall script. 星火商店审核脚本" echo "用法: $0 [选项] " echo "选项:" echo " -h, --help 显示帮助信息" @@ -448,7 +448,7 @@ function main_install() { package_name=$(dpkg-deb -f "$DEBPATH" Package) local install_success=1 - if [ "$FORCE_NATIVE" -eq 1 ]; then + if [ "$FORCE_NATIVE" -eq 1 ] || [ "$IS_ACE_ENV" = "1" ]; then # 优先使用主机安装,忽略所有ACE参数 echo "忽略ACE,使用主机安装 $package_name" install_in_host "$DEBPATH" @@ -458,7 +458,7 @@ function main_install() { create_desktop_file fi - elif [ ${#ACE_PARAMS[@]} -gt 0 ]; then + elif [ ${#ACE_PARAMS[@]} -gt 0 ] && [ "$IS_ACE_ENV" != "" ]; then # 用户指定了一个或多个ACE环境,且未要求原生安装 echo "使用ACE环境安装,已指定环境: ${ACE_PARAMS[*]}" diff --git a/tool/ssinstall b/tool/ssinstall index c2fec21..5437e31 100755 --- a/tool/ssinstall +++ b/tool/ssinstall @@ -460,7 +460,7 @@ function main_install() { package_name=$(dpkg-deb -f "$DEBPATH" Package) local install_success=1 - if [ "$FORCE_NATIVE" -eq 1 ]; then + if [ "$FORCE_NATIVE" -eq 1 ] || [ "$IS_ACE_ENV" = "1" ]; then # 优先使用主机安装,忽略所有ACE参数 echo "忽略ACE,使用主机安装 $package_name" install_in_host "$DEBPATH" @@ -470,7 +470,7 @@ function main_install() { create_desktop_file fi - elif [ ${#ACE_PARAMS[@]} -gt 0 ]; then + elif [ ${#ACE_PARAMS[@]} -gt 0 ] && [ "$IS_ACE_ENV" != "" ]; then # 用户指定了一个或多个ACE环境,且未要求原生安装 echo "使用ACE环境安装,已指定环境: ${ACE_PARAMS[*]}"