Dtk相关配置目录
# DSysInfo涉及到的枚举
// 产品类型
enum ProductType {
UnknownType = 0,
Deepin,
ArchLinux,
CentOS,
Debian,
Fedora,
LinuxMint,
Manjaro,
openSUSE,
SailfishOS,
Ubuntu,
Uos
}
// 系统类型
enum DeepinType {
UnknownDeepin = 0,
DeepinDesktop, //桌面版
DeepinProfessional, //专业版
DeepinServer, //服务器版
DeepinPersonal //个人版
}
以上两个枚举将废弃。
// Logo类型
enum LogoType {
Normal = 0,
Light,
Symbolic,
Transparent
}
enum OrgType {
Distribution, //!< distribution itself
Distributor, //!< distributer of the current distribution
Manufacturer //!< manufacturer of the current distribution or device
};
enum UosType {
UosTypeUnknown,
UosDesktop,
UosServer,
UosDevice,
UosTypeCount // must at last
};
enum UosEdition {
UosEditionUnknown,
UosProfessional,
UosHome,
UosCommunity,
UosMilitary,
UosEnterprise,
UosEnterpriseC,
UosEuler,
UosMilitaryS, // for Server
UosEditionCount // must at last
};
// 注意:此处架构是从OsBuild获取的系统版本的Arch信息,并不是指硬件的Arch信息
enum UosArch {
UosArchUnknown,
UosAMD64 = 1 << 0,
UosARM64 = 1 << 1,
UosMIPS64 = 1 << 2,
UosSW64 = 1 << 3
};
# 系统信息相关配置文件
# /usr/share/deepin/distribution.info
distribution.info文件内容类似下面这样:
[Distribution]
Name=UOS
WebsiteName=www.chinauos.com
Website=https://www.chinauos.com
Logo=/usr/share/deepin/distribution/distribution_logo.svg
LogoLight=/usr/share/deepin/distribution/distribution_logo_light.svg
LogoTransparent=/usr/share/deepin/distribution/distribution_logo_transparent.svg
# /etc/os-release或/usr/lib/os-release
os-release文件内容类似下面这样:
PRETTY_NAME="UOS 20 Home"
NAME="uos"
VERSION_ID="20 Home"
VERSION="20 Home"
ID=uos
HOME_URL="https://www.chinauos.com/"
BUG_REPORT_URL="http://bbs.chinauos.com"
主要是从PRETTY_NAME
、VERSION_ID
、ID
读取信息。
# 需要从os-release读取信息的接口
1、bool DSysInfo::isDeepin() // 根据ID判断是否是Deepin或者uos
2、QString DSysInfo::operatingSystemName() // 返回PRETTY_NAME的值
3、DSysInfo::ProductType DSysInfo::productType() // 返回ID对应的信息
4、QString DSysInfo::productVersion() // 返回VERSION_ID的值
5、QString DSysInfo::productTypeString() // 返回ID对应的信息
# /etc/lsb-release
lsb-release文件内容类似下面这样:
DISTRIB_ID=uos
DISTRIB_RELEASE=20
DISTRIB_DESCRIPTION="uos 20"
DISTRIB_CODENAME=plum
主要是从DISTRIB_ID
、DISTRIB_RELEASE
、DISTRIB_DESCRIPTION
读取信息。
# 需要从os-release读取信息的接口
1、bool DSysInfo::isDeepin() // 根据DISTRIB_DESCRIPTION判断是否是Deepin或者uos
2、QString DSysInfo::operatingSystemName() // 返回DISTRIB_ID的值
3、DSysInfo::ProductType DSysInfo::productType() // 返回DISTRIB_DESCRIPTION对应的信息
4、QString DSysInfo::productVersion() // 返回DISTRIB_RELEASE的值
5、QString DSysInfo::productTypeString() // 返回DISTRIB_DESCRIPTION对应的信息
# /etc/deepin-version
/etc/deepin-version
将废弃,被下面讲的os-version
取代。
# /etc/os-version
os-version文件包含的内容信息:
1、系统版本域。
2、系统名称。
3、系统类型,分为桌面和服务器两种。
4、版本名称,桌面分为专业版、个人版、社区版、军用版、专用设备,服务器分为企业版、行业版、欧拉版、军用版。
5、主版本号,按公司产品规划有【20】【23】【25】【26】【29】【30】。
6、小版本号。
7、OS Build。
# 获取系统信息的接口
1、DSysInfo::UosType DSysInfo::uosType() // 获取系统类型,根据OS Build判断
2、DSysInfo::UosEdition DSysInfo::uosEditionType() // 获取版本类型
3、DSysInfo::UosArch DSysInfo::uosArch() //获取架构信息
4、QString DSysInfo::uosProductTypeName(const QLocale &locale) // 获取系统类型,根据locale来返回对应的字符串,比如英文的话可能返回的是"Desktop"/"Server"/"Device"
5、QString DSysInfo::uosSystemName(const QLocale &locale) // 获取系统名称,比如英文的话返回"Uniontech OS"
6、QString DSysInfo::uosEditionName(const QLocale &locale) // 获取版本名称,比如英文的话返回"Professional"/"Home"/"Community"...
7、QString DSysInfo::spVersion() // 获取阶段版本名称
8、QString DSysInfo::udpateVersion() // 获取更新版本名称
9、QString DSysInfo::majorVersion() // 获取主版本号
10、QString DSysInfo::minorVersion() // 获取小版本号
11、QString DSysInfo::buildVersion() // 获取OS Build
# 获取系统硬件信息
系统硬件信息主要是通过读取/proc下的相关文件获取的,大致如下:
1、cpu信息:/proc/cpuinfo
2、存储设备信息:通过命令lshw、lsblk获取。
# 获取硬件信息接口
1、QString DSysInfo::computerName() // 获取计算机名
2、QString DSysInfo::cpuModelName() // 获取cpu型号
帮助编辑此页 (opens new window)
上次更新: 1/7/2021, 8:45:04 AM