[-]
[+]
|
Changed |
_service:tar_git:libsfosdevenc.spec
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,7 +2,7 @@
<service name="tar_git">
<param name="url">https://github.com/sailfishos-open/libsfosdevenc.git</param>
<param name="branch"></param>
- <param name="revision"></param>
+ <param name="revision">1.0.0</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Changed |
_service:tar_git:libsfosdevenc-1.0.0.tar.bz2/CMakeLists.txt
^
|
@@ -18,6 +18,7 @@
set(CONFIG_DIR "/etc/sailfish-device-encryption-community" CACHE STRING "Full path for system configuration directory")
set(RECOVERY_PASSWORD_FILE ".sailfish-device-encryption-community/recovery-password" CACHE STRING "Relative path for recovery password")
set(DECRYPT_CMD "/usr/libexec/sailfish-device-encryption-community/decrypt" CACHE STRING "Device decryption command")
+set(MOUNTTMP_CMD "/usr/libexec/sailfish-device-encryption-community/mount-tmp" CACHE STRING "Mounttmp command")
set(HWCRYPT_CMD "/usr/libexec/droid-hybris/system/bin/hwcrypt" CACHE STRING "HWCrypt command")
set(HWCRYPT_KEY_CMD "/usr/libexec/sailfish-device-encryption-community/hwcrypt-key" CACHE STRING "HWCrypt Key command")
set(HWCRYPT_KEY_GEN_CMD "/usr/libexec/sailfish-device-encryption-community/hwcrypt-key-generate" CACHE STRING "HWCrypt Key generation command")
@@ -38,6 +39,7 @@
-DCONFIG_DIR="${CONFIG_DIR}"
-DRECOVERY_PASSWORD_FILE="${RECOVERY_PASSWORD_FILE}"
-DDECRYPT_CMD="${DECRYPT_CMD}"
+ -DMOUNTTMP_CMD="${MOUNTTMP_CMD}"
-DHWCRYPT_CMD="${HWCRYPT_CMD}"
-DHWCRYPT_KEY_CMD="${HWCRYPT_KEY_CMD}"
-DHWCRYPT_KEY_GEN_CMD="${HWCRYPT_KEY_GEN_CMD}"
|
[-]
[+]
|
Changed |
_service:tar_git:libsfosdevenc-1.0.0.tar.bz2/src/device.cpp
^
|
@@ -353,13 +353,16 @@
QString mount = m_mount.mid(1);
// cleanup and remove possibly present units
- etc.remove(mount + ".mount");
- etc.remove("late-mount.target.requires/" + mount + ".mount");
-
- etc.remove("decrypt-" + m_mapper + "service");
- etc.remove("late-mount.target.requires/decrypt-" + m_mapper + ".service");
-
- etc.remove("dev-mapper-" + m_mapper + ".device");
+ QStringList conffilelist;
+ conffilelist << mount + ".mount"
+ << "late-mount.target.requires/" + mount + ".mount"
+ << "decrypt-" + m_mapper + "service"
+ << "late-mount.target.requires/decrypt-" + m_mapper + ".service"
+ << "dev-mapper-" + m_mapper + ".device"
+ << "mounttmp-" + mount + ".service"
+ << "late-mount.target.requires/mounttmp-" + mount + ".service";
+ for (const QString &i: conffilelist)
+ etc.remove(i);
// new units
@@ -381,7 +384,6 @@
<< "[Mount]\n"
<< "What=" << m_device.toStdString() << "\n"
<< "Where=" << m_mount.toStdString() << "\n"
- << "Type=ext4\n"
<< "Options=defaults,noatime\n\n"
<< "[Install]\n"
<< "RequiredBy=late-mount.target\n";
@@ -404,7 +406,6 @@
<< "[Mount]\n"
<< "What=/dev/mapper/" << m_mapper.toStdString() << "\n"
<< "Where=" << m_mount.toStdString() << "\n"
- << "Type=ext4\n"
<< "Options=defaults,noatime\n\n"
<< "[Install]\n"
<< "RequiredBy=late-mount.target\n";
@@ -426,7 +427,9 @@
fservice << "[Unit]\n"
<< "Description=Decrypt " << m_mapper.toStdString() << "\n"
<< "Before=late-mount.target\n"
- << "After=late-mount-pre.target\n\n"
+ << "After=late-mount-pre.target\n"
+ << "ConditionPathExists=!/run/systemd/boot-status/ACT_DEAD\n"
+ << "ConditionPathExists=!/run/systemd/boot-status/TEST\n\n"
<< "[Service]\n"
<< "Type=oneshot\n"
<< "RemainAfterExit=yes\n"
@@ -440,5 +443,26 @@
etc.absoluteFilePath("late-mount.target.requires/decrypt-" + m_mapper + ".service")),
"Failed to enable SystemD decryption service unit");
+ // mount service unit used in ACT_DEAD mode
+ std::ofstream fmnttmp(etc.absoluteFilePath("mounttmp-" + mount + ".service").toLatin1().data());
+ fmnttmp << "[Unit]\n"
+ << "Description=Mount " << m_mount.toStdString() << " replacement\n"
+ << "Before=late-mount.target\n"
+ << "After=late-mount-pre.target\n"
+ << "ConditionPathExists=|/run/systemd/boot-status/ACT_DEAD\n"
+ << "ConditionPathExists=|/run/systemd/boot-status/TEST\n\n"
+ << "[Service]\n"
+ << "Type=oneshot\n"
+ << "RemainAfterExit=yes\n"
+ << "ExecStart=" << MOUNTTMP_CMD << " " << m_mount.toStdString() << "\n\n"
+ << "Restart=no\n\n"
+ << "[Install]\n"
+ << "RequiredBy=late-mount.target\n";
+ OPCHECK(fmnttmp, "Failed to write ACT_DEAD mount service unit");
+
+ OPCHECK(QFile::link("../mounttmp-" + mount + ".service",
+ etc.absoluteFilePath("late-mount.target.requires/mounttmp-" + mount + ".service")),
+ "Failed to enable SystemD ACT_DEAD mount service unit");
+
return true;
}
|