From 961d20e09c6cf067043c1d7a85f277e4fd4663fd Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Mon, 29 Jun 2015 14:00:03 -0500 Subject: 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 --- data.cpp | 4 ++-- gui/devices/landscape/res/landscape.xml | 2 +- gui/devices/portrait/res/portrait.xml | 2 +- gui/devices/watch/res/watch.xml | 2 +- twrp.cpp | 17 ++++++++--------- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/data.cpp b/data.cpp index 6e39bc3f9..d7b02f1d6 100644 --- a/data.cpp +++ b/data.cpp @@ -65,7 +65,7 @@ extern "C" void gui_notifyVarChange(const char *name, const char* value); } -#define FILE_VERSION 0x00010001 +#define FILE_VERSION 0x00010010 using namespace std; @@ -881,7 +881,7 @@ void DataManager::SetDefaultValues() mConstValues.insert(make_pair("tw_has_mtp", "0")); mConstValues.insert(make_pair("tw_mtp_enabled", "0")); #endif - mValues.insert(make_pair("tw_mount_system_ro", make_pair("1", 1))); + mValues.insert(make_pair("tw_mount_system_ro", make_pair("2", 1))); mValues.insert(make_pair("tw_never_show_system_ro_page", make_pair("0", 1))); pthread_mutex_unlock(&m_valuesLock); diff --git a/gui/devices/landscape/res/landscape.xml b/gui/devices/landscape/res/landscape.xml index b41669113..c75be3c6f 100644 --- a/gui/devices/landscape/res/landscape.xml +++ b/gui/devices/landscape/res/landscape.xml @@ -3664,7 +3664,7 @@ - TWRP has detected an unmodified system partition. + Keep System Read Only? diff --git a/gui/devices/portrait/res/portrait.xml b/gui/devices/portrait/res/portrait.xml index cf113efd7..969044c19 100644 --- a/gui/devices/portrait/res/portrait.xml +++ b/gui/devices/portrait/res/portrait.xml @@ -3675,7 +3675,7 @@ - TWRP has detected an unmodified system partition. + Keep System Read Only? diff --git a/gui/devices/watch/res/watch.xml b/gui/devices/watch/res/watch.xml index 7fae5f3d7..28198fb2d 100644 --- a/gui/devices/watch/res/watch.xml +++ b/gui/devices/watch/res/watch.xml @@ -3664,7 +3664,7 @@ - TWRP has detected an unmodified system partition. + Keep System Read Only? 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); } -- cgit v1.2.3