Make system read only show no matter what on first TWRP boot
Initial value for tw_mount_system_ro is now 2. If the value of
tw_mount_system_ro is 2 during boot, then we will show the system
read only prompt and ignore the value from the lifetime writes
check.
Note: Changed the value of FILE_VERSION which will trigger the
data manager to throw out previous settings and start with default
values so that existing TWRP users will get the prompt at least
once.
Change-Id: I447767b64617f855156a19a5dc15c4ece6dff7b8
diff --git a/twrp.cpp b/twrp.cpp
index e34c9b3..091de19 100644
--- a/twrp.cpp
+++ b/twrp.cpp
@@ -335,18 +335,17 @@
// 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);
}