diff --git a/service/diskoperation/DeviceStorage.cpp b/service/diskoperation/DeviceStorage.cpp index e6f102c..ced1660 100755 --- a/service/diskoperation/DeviceStorage.cpp +++ b/service/diskoperation/DeviceStorage.cpp @@ -504,6 +504,20 @@ void DeviceStorage::getDiskInfoModel(const QString &devicePath, QString &model) } } + cmd = "udevadm info " + devicePath + " | grep ID_MODEL="; + proc.start("bash", QStringList() << "-c" << cmd); + proc.waitForFinished(-1); + outPut = proc.readAllStandardOutput(); + if (!outPut.isEmpty()) { + auto idModel = outPut.split("=", QString::SkipEmptyParts); + if (idModel.count() > 1) + model = idModel.at(1).trimmed(); + if (!model.isEmpty()) + return; + } + + qWarning() << "tried a lot but got nothing about model for" << devicePath; + // 若未获取到型号名,返回未知 model = "UnKnow"; return;