Added support for flash image in both slots
Change-Id: Iafda62a5f77f7c1f564f1a2ec0a59aefaf5e1266
This commit is contained in:
3
data.cpp
3
data.cpp
@@ -928,6 +928,9 @@ void DataManager::SetDefaultValues()
|
||||
mConst.SetValue("tw_include_nano", "0");
|
||||
#endif
|
||||
|
||||
mData.SetValue("tw_flash_both_slots", "0");
|
||||
mData.SetValue("tw_is_slot_part", "0");
|
||||
|
||||
mData.SetValue("tw_enable_adb_backup", "0");
|
||||
|
||||
if (TWFunc::Path_Exists("/system/bin/magiskboot"))
|
||||
|
||||
@@ -1810,16 +1810,41 @@ int GUIAction::stopmtp(std::string arg __unused)
|
||||
int GUIAction::flashimage(std::string arg __unused)
|
||||
{
|
||||
int op_status = 0;
|
||||
bool flag = true;
|
||||
|
||||
operation_start("Flash Image");
|
||||
string path, filename;
|
||||
DataManager::GetValue("tw_zip_location", path);
|
||||
DataManager::GetValue("tw_file", filename);
|
||||
if (PartitionManager.Flash_Image(path, filename))
|
||||
op_status = 0; // success
|
||||
else
|
||||
op_status = 1; // fail
|
||||
|
||||
#ifdef AB_OTA_UPDATER
|
||||
string target = DataManager::GetStrValue("tw_flash_partition");
|
||||
unsigned int pos = target.find_last_of(';');
|
||||
string mount_point = pos != string::npos ? target.substr(0, pos) : "";
|
||||
TWPartition* t_part = PartitionManager.Find_Partition_By_Path(mount_point);
|
||||
bool flash_in_both_slots = DataManager::GetIntValue("tw_flash_both_slots") ? true : false;
|
||||
|
||||
if (t_part != NULL && (flash_in_both_slots && t_part->SlotSelect))
|
||||
{
|
||||
string current_slot = PartitionManager.Get_Active_Slot_Display();
|
||||
bool pre_op_status = PartitionManager.Flash_Image(path, filename);
|
||||
|
||||
PartitionManager.Set_Active_Slot(current_slot == "A" ? "B" : "A");
|
||||
op_status = (int) !(pre_op_status && PartitionManager.Flash_Image(path, filename));
|
||||
PartitionManager.Set_Active_Slot(current_slot);
|
||||
|
||||
DataManager::SetValue("tw_flash_both_slots", 0);
|
||||
flag = false;
|
||||
}
|
||||
#endif
|
||||
if (flag)
|
||||
{
|
||||
if (PartitionManager.Flash_Image(path, filename))
|
||||
op_status = 0; // success
|
||||
else
|
||||
op_status = 1; // fail
|
||||
}
|
||||
|
||||
operation_end(op_status);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -180,6 +180,8 @@ void GUIPartitionList::MatchList(void) {
|
||||
pos = variablelist.find(searchvalue);
|
||||
if (pos != string::npos) {
|
||||
mList.at(i).selected = 1;
|
||||
TWPartition* t_part = PartitionManager.Find_Partition_By_Path(mList.at(i).Mount_Point);
|
||||
DataManager::SetValue("tw_is_slot_part", t_part != NULL ? (int) t_part->SlotSelect : 0);
|
||||
} else {
|
||||
mList.at(i).selected = 0;
|
||||
}
|
||||
@@ -272,6 +274,8 @@ void GUIPartitionList::NotifySelect(size_t item_selected)
|
||||
mList.at(item_selected).selected = 0;
|
||||
else
|
||||
mList.at(item_selected).selected = 1;
|
||||
TWPartition* t_part = PartitionManager.Find_Partition_By_Path(mList.at(item_selected).Mount_Point);
|
||||
DataManager::SetValue("tw_is_slot_part", t_part != NULL ? (int) t_part->SlotSelect : 0);
|
||||
|
||||
int i;
|
||||
string variablelist;
|
||||
|
||||
@@ -372,7 +372,10 @@
|
||||
<condition var1="tw_selectimage" var2="1"/>
|
||||
<condition var1="tw_filename" op="modified"/>
|
||||
</conditions>
|
||||
<action function="page">flashimage_confirm</action>
|
||||
<actions>
|
||||
<action function="set">tw_is_slot_part=0</action>
|
||||
<action function="page">flashimage_confirm</action>
|
||||
</actions>
|
||||
</action>
|
||||
|
||||
<action>
|
||||
@@ -711,6 +714,30 @@
|
||||
<listtype name="flashimg"/>
|
||||
</partitionlist>
|
||||
|
||||
<button style="checkbox">
|
||||
<conditions>
|
||||
<condition var1="tw_is_slot_part" op="=" var2="1"/>
|
||||
<condition var1="tw_flash_both_slots" op="=" var2="0"/>
|
||||
<condition var1="tw_has_boot_slots" var2="1"/>
|
||||
</conditions>
|
||||
<placement x="%col1_x_left%" y="%row14a_y%" textplacement="6"/>
|
||||
<text>{@flash_ab_both_slots=Flash to both slots}</text>
|
||||
<image resource="checkbox_false"/>
|
||||
<action function="set">tw_flash_both_slots=1</action>
|
||||
</button>
|
||||
|
||||
<button style="checkbox">
|
||||
<conditions>
|
||||
<condition var1="tw_is_slot_part" op="=" var2="1"/>
|
||||
<condition var1="tw_flash_both_slots" op="=" var2="1"/>
|
||||
<condition var1="tw_has_boot_slots" var2="1"/>
|
||||
</conditions>
|
||||
<placement x="%col1_x_left%" y="%row14a_y%" textplacement="6"/>
|
||||
<text>{@flash_ab_both_slots=Flash to both slots}</text>
|
||||
<image resource="checkbox_true"/>
|
||||
<action function="set">tw_flash_both_slots=0</action>
|
||||
</button>
|
||||
|
||||
<slider>
|
||||
<text>{@swipe_flash=Swipe to confirm Flash}</text>
|
||||
<actions>
|
||||
|
||||
@@ -740,6 +740,7 @@
|
||||
<string name="unmount_system_err">Failed unmounting System</string>
|
||||
<string name="flash_ab_inactive">Flashing A/B zip to inactive slot: {1}</string>
|
||||
<string name="flash_ab_reboot">To flash additional zips, please reboot recovery to switch to the updated slot.</string>
|
||||
<string name="flash_ab_both_slots">Flash to both slots</string>
|
||||
<string name="ozip_decrypt_decryption">Starting Ozip Decryption...</string>
|
||||
<string name="ozip_decrypt_finish">Ozip Decryption Finished!</string>
|
||||
<string name="fbe_wipe_msg">WARNING: {1} wiped. FBE device should be booted into Android and not Recovery to set initial FBE policy after wipe.</string>
|
||||
|
||||
@@ -329,7 +329,10 @@
|
||||
<condition var1="tw_selectimage" var2="1"/>
|
||||
<condition var1="tw_filename" op="modified"/>
|
||||
</conditions>
|
||||
<action function="page">flashimage_confirm</action>
|
||||
<actions>
|
||||
<action function="set">tw_is_slot_part=0</action>
|
||||
<action function="page">flashimage_confirm</action>
|
||||
</actions>
|
||||
</action>
|
||||
|
||||
<action>
|
||||
@@ -662,6 +665,30 @@
|
||||
<listtype name="flashimg"/>
|
||||
</partitionlist>
|
||||
|
||||
<button style="checkbox">
|
||||
<conditions>
|
||||
<condition var1="tw_is_slot_part" op="=" var2="1"/>
|
||||
<condition var1="tw_flash_both_slots" op="=" var2="0"/>
|
||||
<condition var1="tw_has_boot_slots" var2="1"/>
|
||||
</conditions>
|
||||
<placement x="%indent%" y="%row19a_y%" textplacement="6"/>
|
||||
<text>{@flash_ab_both_slots=Flash to both slots}</text>
|
||||
<image resource="checkbox_false"/>
|
||||
<action function="set">tw_flash_both_slots=1</action>
|
||||
</button>
|
||||
|
||||
<button style="checkbox">
|
||||
<conditions>
|
||||
<condition var1="tw_is_slot_part" op="=" var2="1"/>
|
||||
<condition var1="tw_flash_both_slots" op="=" var2="1"/>
|
||||
<condition var1="tw_has_boot_slots" var2="1"/>
|
||||
</conditions>
|
||||
<placement x="%indent%" y="%row19a_y%" textplacement="6"/>
|
||||
<text>{@flash_ab_both_slots=Flash to both slots}</text>
|
||||
<image resource="checkbox_true"/>
|
||||
<action function="set">tw_flash_both_slots=0</action>
|
||||
</button>
|
||||
|
||||
<slider>
|
||||
<text>{@swipe_flash=Swipe to confirm Flash}</text>
|
||||
<actions>
|
||||
|
||||
@@ -442,7 +442,10 @@
|
||||
<condition var1="tw_selectimage" var2="1"/>
|
||||
<condition var1="tw_filename" op="modified"/>
|
||||
</conditions>
|
||||
<action function="page">flashimage_type</action>
|
||||
<actions>
|
||||
<action function="set">tw_is_slot_part=0</action>
|
||||
<action function="page">flashimage_type</action>
|
||||
</actions>
|
||||
</action>
|
||||
|
||||
<action>
|
||||
@@ -860,6 +863,30 @@
|
||||
<listtype name="flashimg"/>
|
||||
</partitionlist>
|
||||
|
||||
<button style="checkbox">
|
||||
<conditions>
|
||||
<condition var1="tw_is_slot_part" op="=" var2="1"/>
|
||||
<condition var1="tw_flash_both_slots" op="=" var2="0"/>
|
||||
<condition var1="tw_has_boot_slots" var2="1"/>
|
||||
</conditions>
|
||||
<placement x="%col2_x_left%" y="%row11_y%" textplacement="6"/>
|
||||
<text>{@flash_ab_both_slots=Flash to both slots}</text>
|
||||
<image resource="checkbox_false"/>
|
||||
<action function="set">tw_flash_both_slots=1</action>
|
||||
</button>
|
||||
|
||||
<button style="checkbox">
|
||||
<conditions>
|
||||
<condition var1="tw_is_slot_part" op="=" var2="1"/>
|
||||
<condition var1="tw_flash_both_slots" op="=" var2="1"/>
|
||||
<condition var1="tw_has_boot_slots" var2="1"/>
|
||||
</conditions>
|
||||
<placement x="%col2_x_left%" y="%row11_y%" textplacement="6"/>
|
||||
<text>{@flash_ab_both_slots=Flash to both slots}</text>
|
||||
<image resource="checkbox_true"/>
|
||||
<action function="set">tw_flash_both_slots=0</action>
|
||||
</button>
|
||||
|
||||
<button>
|
||||
<placement x="%col1_x_left%" y="%row11_y%"/>
|
||||
<highlight color="%highlight_color%"/>
|
||||
|
||||
Reference in New Issue
Block a user