2022-04-01 10:30:59 +08:00
|
|
|
|
## kylin-nm介绍
|
|
|
|
|
### 简介
|
2022-04-01 10:29:04 +08:00
|
|
|
|
麒麟网络工具(kylin-network-manager,简称kylin-nm)是操作系统的网络前端,其主要功能有:
|
|
|
|
|
1、托盘栏图标及右键菜单
|
|
|
|
|
查看当前网络状态
|
|
|
|
|
左键点击托盘网络图标显示kylin-nm主界面
|
|
|
|
|
右键点击托盘网络图标显示右键菜单
|
|
|
|
|
2、对有线网络的管理
|
|
|
|
|
有线网络界面管理
|
|
|
|
|
连接/断开网络
|
|
|
|
|
网线拔插
|
|
|
|
|
多有线网卡支持
|
|
|
|
|
打开或关闭有线开关
|
|
|
|
|
查看或修改无线网络基本信息
|
|
|
|
|
3、对无线网络的管理
|
|
|
|
|
切换及刷新无线界面
|
|
|
|
|
查看无线网络列表
|
|
|
|
|
连接/断开无需密码的无线网
|
|
|
|
|
连接/断开有密码类型的无线网
|
|
|
|
|
无线网卡插拔
|
|
|
|
|
多无线网卡支持
|
|
|
|
|
打开或关闭无线开关
|
|
|
|
|
查看或修改无线网络基本信息
|
|
|
|
|
4、连接隐藏无线网络
|
|
|
|
|
连接无安全性的无线网络
|
|
|
|
|
连接WPA及WPA2个人安全性的无线网络
|
|
|
|
|
连接WPA及WPA2企业安全性的无线网络
|
|
|
|
|
连接WPA3个人安全性的无线网络
|
|
|
|
|
5、窗口样式调节
|
|
|
|
|
深色与浅色窗口样式切换
|
|
|
|
|
调节网络工具窗口透明度
|
|
|
|
|
普通窗口与具有毛玻璃效果的窗口的切换
|
2022-04-01 10:30:59 +08:00
|
|
|
|
### 运行
|
2022-04-01 10:29:04 +08:00
|
|
|
|
麒麟网络工具的进程为kylin-nm,默认开机自启,依赖NetworkManger
|
2022-04-01 10:30:59 +08:00
|
|
|
|
### 命令行和dbus接口
|
2022-04-01 10:29:04 +08:00
|
|
|
|
|
|
|
|
|
kylin-nm进程的命令行如下:
|
|
|
|
|
Usage: kylin-nm
|
|
|
|
|
|
2022-04-01 10:30:59 +08:00
|
|
|
|
#### dbus接口:
|
2022-04-01 10:29:04 +08:00
|
|
|
|
DBUS类型:SESSION BUS
|
|
|
|
|
DBUS名称:com.kylin.network
|
|
|
|
|
OBJECT路径:/
|
|
|
|
|
接口名称:com.kylin.network
|
|
|
|
|
|
2022-04-01 10:30:59 +08:00
|
|
|
|
#### dbus方法
|
2022-04-01 10:29:04 +08:00
|
|
|
|
getWirelessList
|
|
|
|
|
参数:无
|
|
|
|
|
返回值:QMap<QString, QVector<QStringList>>
|
|
|
|
|
键:网卡名称
|
|
|
|
|
值:无线网络的集合(第一项为已连接网络信息,若无连接则为"--",否则为"名称/信号强度/加密类型/Uuid/是否为本机开放热点";其余为未连接的网络信息,为"名称/信号强度/加密类型/是否为本机开放热点"
|
|
|
|
|
功能:获取无线列表及每个对应无线网络的信号强度、加密类型等信息。
|
|
|
|
|
|
|
|
|
|
getWiredList
|
|
|
|
|
参数:无
|
|
|
|
|
返回值:QMap<QString, QVector<QStringList>>
|
|
|
|
|
键:网卡名称
|
|
|
|
|
值:有线网络的集合("名称/UUID/对应DBUS路径"),若无已连接网络则第一项默认为"--"
|
|
|
|
|
功能:获取有线列表及每个对应的有线网络的uuid及dbus路径
|
|
|
|
|
|
|
|
|
|
setWiredSwitchEnable(bool enable)
|
|
|
|
|
参数:(bool)开启有线总开关(true)关闭有线总开关(false)
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:打开或关闭有线总开关
|
|
|
|
|
|
|
|
|
|
setWirelessSwitchEnable(bool enable)
|
|
|
|
|
参数:(bool)开启无线总开关(true)关闭无线总开关(false)
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:打开或关闭无线总开关
|
|
|
|
|
|
|
|
|
|
setDeviceEnable(QString devName, bool enable)
|
|
|
|
|
参数:(QString)devName 设备名称,(bool) enable 开启/关闭
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:打开或关闭单个有线网卡开关
|
|
|
|
|
|
|
|
|
|
activateConnect(int type, QString devName, QString ssid)
|
|
|
|
|
参数:根据网卡类型 参数1 0:lan 1:wlan 参数2:网卡名称 参数3:uuid/ssid
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:激活一个网络连接
|
|
|
|
|
|
|
|
|
|
deActivateConnect(int type, QString devName, QString ssid)
|
|
|
|
|
参数:根据网卡类型 参数1 0:lan 1:wlan 参数2:网卡名称 参数3:uuid/ssid
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:断开一个网络连接
|
|
|
|
|
|
|
|
|
|
getDeviceListAndEnabled(int devType)
|
|
|
|
|
参数:int devType 0:lan 1:wlan
|
|
|
|
|
返回值:QMap<QString, bool>
|
|
|
|
|
键:设备名称
|
|
|
|
|
值:bool 开启(true)关闭 (false)
|
|
|
|
|
功能:获取设备列表和启用/禁用状态
|
|
|
|
|
|
|
|
|
|
getWirelessDeviceCap
|
|
|
|
|
返回值:QMap<QString, int>
|
|
|
|
|
键:设备名称
|
|
|
|
|
值:int 0:不支持热点 3:支持2.4GHz 7:支持5GHz&&2.4Ghz
|
|
|
|
|
功能:获取无线设备能力(2.4G/5G)
|
|
|
|
|
|
|
|
|
|
showPropertyWidget(QString devName, QString ssid)
|
|
|
|
|
参数:QString devName 设备名称 QString ssid 根据网卡类型 有线为uuid/无线为ssid
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:唤起对应网络连接的属性页,可以对基础信息的显示或修改
|
|
|
|
|
|
|
|
|
|
showCreateWiredConnectWidget(QString devName)
|
|
|
|
|
参数:QString devName 有线网卡名称
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:唤起新建有线连接界面
|
|
|
|
|
|
|
|
|
|
activeWirelessAp(const QString apName,
|
|
|
|
|
const QString apPassword,
|
|
|
|
|
const QString band,
|
|
|
|
|
const QString apDevice)
|
|
|
|
|
参数:QString apName 热点名称
|
|
|
|
|
QString apPassword 热点密码
|
|
|
|
|
QString band 频带
|
|
|
|
|
QString apDevice
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:开启移动热点
|
|
|
|
|
|
|
|
|
|
deactiveWirelessAp(const QString apName, const QString uuid)
|
|
|
|
|
参数:QStringList(名称/密码/设备名称/状态/UUID/频带)
|
|
|
|
|
返回值:无
|
|
|
|
|
功能: 断开移动热点
|
|
|
|
|
|
|
|
|
|
getStoredApInfo
|
|
|
|
|
参数:QStringList(名称/密码/设备名称/状态/UUID/频带)
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:获取已保存的移动热点信息
|
2022-04-01 09:37:30 +08:00
|
|
|
|
|
2022-04-01 10:29:04 +08:00
|
|
|
|
getApInfoBySsid(QString devName, QString ssid)
|
|
|
|
|
参数:QString devName 设备名称 QString ssid
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:通过名称获取已保存的移动热点信息
|
2022-04-01 09:37:30 +08:00
|
|
|
|
|
2022-04-01 10:29:04 +08:00
|
|
|
|
reScan()
|
|
|
|
|
参数:无
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:申请重新进行无线扫描
|
2022-04-01 09:37:30 +08:00
|
|
|
|
|
2022-04-01 10:29:04 +08:00
|
|
|
|
keyRingInit()
|
|
|
|
|
参数:QString apName 热点名称 QString uuid
|
|
|
|
|
返回值:无
|
|
|
|
|
功能:断开移动热点
|
2022-04-01 09:37:30 +08:00
|
|
|
|
|
2022-04-01 10:29:04 +08:00
|
|
|
|
keyRingClear()
|
|
|
|
|
参数:无
|
|
|
|
|
返回值:无
|
|
|
|
|
功能: 断开移动热点
|
2022-04-01 09:37:30 +08:00
|
|
|
|
|
|
|
|
|
|
2022-04-01 10:30:59 +08:00
|
|
|
|
### 原理与主要使用的技术
|
2022-04-01 10:29:04 +08:00
|
|
|
|
kylin-nm主要与NetworkManager进行交互,通过对应的dbus信号驱动UI界面的更新。并通过提供的dbus方法来进行网络相关功能的调用。
|
2022-04-01 09:37:30 +08:00
|
|
|
|
|
2022-04-01 10:29:04 +08:00
|
|
|
|
麒麟网络工具按照功能划分成两层:UI层和逻辑层。UI层实现网络资源的显示,以及用户的交互,逻辑层通过NetworkManager提供的Dbus接口,完成网络资源的管理及其配置。
|
2022-04-01 10:30:59 +08:00
|
|
|
|
### 配置文件
|
2022-04-01 10:29:04 +08:00
|
|
|
|
kylin-nm的配置文件保存在如下路径:
|
|
|
|
|
~/.config/ukui/kylin-nm.conf 有线无线开关状态 设备状态
|
|
|
|
|
org.ukui.kylin-nm.switch 对应的gsetting值 (有线无线开关状态)
|
2022-04-01 10:30:59 +08:00
|
|
|
|
### 编译
|
2022-04-01 10:29:04 +08:00
|
|
|
|
cd kylin-nm
|
|
|
|
|
mkdir build
|
|
|
|
|
cd build
|
|
|
|
|
qmake ..
|
|
|
|
|
make
|
|
|
|
|
sudo make install
|
2022-04-01 10:30:59 +08:00
|
|
|
|
### 运行命令
|
2022-04-01 10:29:04 +08:00
|
|
|
|
./kylin-nm
|
2022-04-01 10:30:59 +08:00
|
|
|
|
### 调试
|
2022-04-01 10:29:04 +08:00
|
|
|
|
kylin-nm目前并采用ukui-log4qt模块的日志功能。日志默认保存在~/.log/kylin-nm.log中
|
2022-04-01 09:37:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-30 16:14:34 +08:00
|
|
|
|
|
2022-04-01 09:37:30 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|