summaryrefslogtreecommitdiffstats
path: root/twrp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'twrp.cpp')
-rw-r--r--twrp.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/twrp.cpp b/twrp.cpp
index e34c9b381..091de19fd 100644
--- a/twrp.cpp
+++ b/twrp.cpp
@@ -335,18 +335,17 @@ int main(int argc, char **argv) {
// Check if system has never been changed
TWPartition* sys = PartitionManager.Find_Partition_By_Path("/system");
if (sys) {
- if (DataManager::GetIntValue("tw_mount_system_ro") != 0) {
- if (sys->Check_Lifetime_Writes() == 0) {
- if (DataManager::GetIntValue("tw_never_show_system_ro_page") == 0) {
- DataManager::SetValue("tw_back", "main");
- if (gui_startPage("system_readonly", 1, 1) != 0) {
- LOGERR("Failed to start system_readonly GUI page.\n");
- }
+ if ((DataManager::GetIntValue("tw_mount_system_ro") == 0 && sys->Check_Lifetime_Writes() == 0) || DataManager::GetIntValue("tw_mount_system_ro") == 2) {
+ if (DataManager::GetIntValue("tw_never_show_system_ro_page") == 0) {
+ DataManager::SetValue("tw_back", "main");
+ if (gui_startPage("system_readonly", 1, 1) != 0) {
+ LOGERR("Failed to start system_readonly GUI page.\n");
}
- } else {
- DataManager::SetValue("tw_mount_system_ro", 0);
+ } else if (DataManager::GetIntValue("tw_mount_system_ro") == 0) {
sys->Change_Mount_Read_Only(false);
}
+ } else if (DataManager::GetIntValue("tw_mount_system_ro") == 1) {
+ // Do nothing, user selected to leave system read only
} else {
sys->Change_Mount_Read_Only(false);
}