|
|
@ -8,11 +8,14 @@ |
|
|
|
#include "qt_window.hpp" |
|
|
|
#include "qt_window.hpp" |
|
|
|
|
|
|
|
|
|
|
|
#define USERDATA "/dev/disk/by-partlabel/userdata" |
|
|
|
#define USERDATA "/dev/disk/by-partlabel/userdata" |
|
|
|
|
|
|
|
#define NVME "/dev/nvme0n1" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void do_reset() { |
|
|
|
void do_reset() { |
|
|
|
std::system("sudo umount " USERDATA); |
|
|
|
std::system("sudo umount " USERDATA); |
|
|
|
std::system("yes | sudo mkfs.ext4 " USERDATA); |
|
|
|
std::system("yes | sudo mkfs.ext4 " USERDATA); |
|
|
|
|
|
|
|
std::system("sudo umount " NVME); |
|
|
|
|
|
|
|
std::system("yes | sudo mkfs.ext4 " NVME); |
|
|
|
std::system("sudo reboot"); |
|
|
|
std::system("sudo reboot"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -26,17 +29,15 @@ int main(int argc, char *argv[]) { |
|
|
|
|
|
|
|
|
|
|
|
QLabel *title = new QLabel("System Reset"); |
|
|
|
QLabel *title = new QLabel("System Reset"); |
|
|
|
title->setStyleSheet(R"( |
|
|
|
title->setStyleSheet(R"( |
|
|
|
|
|
|
|
font-weight: 500; |
|
|
|
font-size: 100px; |
|
|
|
font-size: 100px; |
|
|
|
font-weight: bold; |
|
|
|
|
|
|
|
)"); |
|
|
|
)"); |
|
|
|
layout->addWidget(title, 0, Qt::AlignTop); |
|
|
|
layout->addWidget(title, 0, Qt::AlignTop); |
|
|
|
|
|
|
|
|
|
|
|
QLabel *body = new QLabel("System reset triggered. Press confirm to erase all content and settings. Press cancel to resume boot."); |
|
|
|
QLabel *body = new QLabel("System reset triggered. Press confirm to erase all content and settings. Press cancel to resume boot."); |
|
|
|
body->setWordWrap(true); |
|
|
|
body->setWordWrap(true); |
|
|
|
body->setAlignment(Qt::AlignCenter); |
|
|
|
body->setAlignment(Qt::AlignCenter); |
|
|
|
body->setStyleSheet(R"( |
|
|
|
body->setStyleSheet("font-size: 65px;"); |
|
|
|
font-size: 65px; |
|
|
|
|
|
|
|
)"); |
|
|
|
|
|
|
|
layout->addWidget(body, 1, Qt::AlignCenter); |
|
|
|
layout->addWidget(body, 1, Qt::AlignCenter); |
|
|
|
|
|
|
|
|
|
|
|
QHBoxLayout *btn_layout = new QHBoxLayout(); |
|
|
|
QHBoxLayout *btn_layout = new QHBoxLayout(); |
|
|
@ -48,13 +49,14 @@ int main(int argc, char *argv[]) { |
|
|
|
QPushButton *confirm_btn = new QPushButton("Confirm"); |
|
|
|
QPushButton *confirm_btn = new QPushButton("Confirm"); |
|
|
|
btn_layout->addWidget(confirm_btn, 0, Qt::AlignRight); |
|
|
|
btn_layout->addWidget(confirm_btn, 0, Qt::AlignRight); |
|
|
|
QObject::connect(confirm_btn, &QPushButton::released, [=]() { |
|
|
|
QObject::connect(confirm_btn, &QPushButton::released, [=]() { |
|
|
|
QString confirm_txt = "Are you sure you want to reset your device?"; |
|
|
|
const QString confirm_txt = "Are you sure you want to reset your device?"; |
|
|
|
if (body->text() != confirm_txt) { |
|
|
|
if (body->text() != confirm_txt) { |
|
|
|
body->setText(confirm_txt); |
|
|
|
body->setText(confirm_txt); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
body->setText("Resetting device..."); |
|
|
|
body->setText("Resetting device..."); |
|
|
|
cancel_btn->hide(); |
|
|
|
cancel_btn->hide(); |
|
|
|
confirm_btn->hide(); |
|
|
|
confirm_btn->hide(); |
|
|
|
|
|
|
|
QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); |
|
|
|
#ifdef __aarch64__ |
|
|
|
#ifdef __aarch64__ |
|
|
|
do_reset(); |
|
|
|
do_reset(); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|