Skip to content

Commit e227a34

Browse files
GongHeng2017deepin-bot[bot]
authored andcommitted
fix: [part-encrypt] Set the device to partUuid.
Set the device to partUuid. Log: fix issue Bug: https://pms.uniontech.com/bug-view-263863.html
1 parent d665f21 commit e227a34

5 files changed

Lines changed: 18 additions & 5 deletions

File tree

src/dde-file-manager-daemon/daemonplugin-file-encrypt/encrypt/diskencrypt.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -774,6 +774,7 @@ bool disk_encrypt_utils::bcReadEncryptConfig(disk_encrypt::EncryptConfig *config
774774
config->configPath = encryptConfigPath;
775775
config->clearDevUUID = obj.value("clear-device-uuid").toString();
776776
config->isDetachedHeader = obj.value("is-detached-header").toBool();
777+
config->fsUuid = obj.value("file-system-uuid").toString();
777778

778779
return true;
779780
}

src/dde-file-manager-daemon/daemonplugin-file-encrypt/encrypt/encryptworker.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,11 @@ int PrencryptWorker::writeEncryptParams(const QString &device)
129129
QString dmDev = QString("dm-%1").arg(dev.mid(5));
130130
if (params.value(encrypt_param_keys::kKeyIsDetachedHeader).toBool())
131131
dmDev = params.value(encrypt_param_keys::kKeyPrefferDevice).toString();
132-
QString uuid = QString("UUID=%1").arg(params.value(encrypt_param_keys::kKeyUUID).toString());
132+
QString fsUuid = QString("UUID=%1").arg(params.value(encrypt_param_keys::kKeyUUID).toString());
133+
QString partUuid = QString("PARTUUID=%1").arg(params.value(encrypt_param_keys::kKeyPartUUID).toString());
133134

134135
obj.insert("volume", dmDev); // used to name a opened luks device.
135-
obj.insert("device", uuid); // used to locate the backing device.
136+
obj.insert("device", partUuid); // used to locate the backing device.
136137
obj.insert("device-path", dev); // used to locate the backing device by device path.
137138
obj.insert("device-name", params.value(encrypt_param_keys::kKeyDeviceName).toString()); // the device name display in dde-file-manager
138139
obj.insert("device-mountpoint", params.value(encrypt_param_keys::kKeyMountPoint).toString()); // the mountpoint of the device
@@ -141,6 +142,7 @@ int PrencryptWorker::writeEncryptParams(const QString &device)
141142
obj.insert("mode", encMode.value(params.value(encrypt_param_keys::kKeyEncMode).toInt()));
142143
obj.insert("clear-device-uuid", params.value(encrypt_param_keys::kKeyClearDevUUID).toString());
143144
obj.insert("is-detached-header", params.value(encrypt_param_keys::kKeyIsDetachedHeader).toBool());
145+
obj.insert("file-system-uuid", fsUuid);
144146

145147
QString expPath = params.value(encrypt_param_keys::kKeyRecoveryExportPath).toString();
146148
if (!expPath.isEmpty()) {

src/dde-file-manager-daemon/daemonplugin-file-encrypt/globaltypesdefine.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ inline constexpr char kKeyBackingDevUUID[] { "backingDevUUID" };
3535
inline constexpr char kKeyClearDevUUID[] { "clearDevUUID" };
3636
inline constexpr char kKeyIsDetachedHeader[] { "isDetachedHeader" };
3737
inline constexpr char kKeyPrefferDevice[] { "prefferDevice" };
38+
inline constexpr char kKeyPartUUID[] { "partUuid" };
3839
} // namespace encrypt_param_keys
3940

4041
inline const QStringList kDisabledEncryptPath {
@@ -127,6 +128,7 @@ struct EncryptConfig
127128
QString configPath;
128129
QString clearDevUUID;
129130
bool isDetachedHeader;
131+
QString fsUuid;
130132

131133
QVariantMap keyConfig()
132134
{
@@ -135,8 +137,9 @@ struct EncryptConfig
135137
{ "device-path", devicePath },
136138
{ "device-name", deviceName },
137139
{ "volume", clearDev },
140+
{ "file-system-uuid", fsUuid }
138141
};
139-
};
142+
}
140143
};
141144

142145
enum EncryptState {

src/dde-file-manager/dfmplugin-disk-encrypt-entry/events/eventshandler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ void EventsHandler::onRequestEncryptParams(const QVariantMap &encConfig)
248248
disk_encrypt::DeviceEncryptParam param;
249249
param.devDesc = devPath;
250250
param.initOnly = false;
251-
param.clearDevUUID = encConfig.value("device").toString().remove("UUID=");
251+
param.clearDevUUID = encConfig.value("file-system-uuid").toString().remove("UUID=");
252252
param.backingDevUUID = blkDev ? blkDev->getProperty(dfmmount::Property::kBlockIDUUID).toString() : "";
253253
param.deviceDisplayName = encConfig.value("device-name").toString();
254254
auto dlg = new EncryptParamsInputDialog(param, qApp->activeWindow());

src/dde-file-manager/dfmplugin-disk-encrypt-entry/menu/diskencryptmenuscene.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,12 @@ void DiskEncryptMenuScene::doEncryptDevice(const DeviceEncryptParam &param)
302302
kDaemonBusIface,
303303
QDBusConnection::systemBus());
304304
if (iface.isValid()) {
305+
auto blkDev = device_utils::createBlockDevice(param.devID);
306+
if (!blkDev) {
307+
qCritical() << "Create block device failed, the object is: " << param.devID;
308+
return;
309+
}
310+
QString partUuid { blkDev->getProperty(dfmmount::Property::kPartitionUUID).toString() };
305311
QVariantMap params {
306312
{ encrypt_param_keys::kKeyDevice, param.devDesc },
307313
{ encrypt_param_keys::kKeyUUID, param.uuid },
@@ -314,7 +320,8 @@ void DiskEncryptMenuScene::doEncryptDevice(const DeviceEncryptParam &param)
314320
{ encrypt_param_keys::kKeyMountPoint, param.mountPoint },
315321
{ encrypt_param_keys::kKeyIsDetachedHeader, param.isDetachedHeader },
316322
{ encrypt_param_keys::kKeyPrefferDevice, param.prefferDevName },
317-
{ encrypt_param_keys::kKeyClearDevUUID, param.clearDevUUID }
323+
{ encrypt_param_keys::kKeyClearDevUUID, param.clearDevUUID },
324+
{ encrypt_param_keys::kKeyPartUUID, partUuid }
318325
};
319326
if (!tpmConfig.isEmpty()) params.insert(encrypt_param_keys::kKeyTPMConfig, tpmConfig);
320327
if (!tpmToken.isEmpty()) params.insert(encrypt_param_keys::kKeyTPMToken, tpmToken);

0 commit comments

Comments
 (0)