diff options
author | Ethan Yonker <dees_troy@teamw.in> | 2014-12-20 22:38:29 +0100 |
---|---|---|
committer | maxwen <max.weninger@gmail.com> | 2014-12-21 23:30:17 +0100 |
commit | d79d9bceb36cebbcb926e414155489c6ce8fb741 (patch) | |
tree | 34a692a812da666be2b2b6dbaace17ce084c48c7 | |
parent | MTP add/remove storage instead of disabling MTP (diff) | |
download | android_bootable_recovery-d79d9bceb36cebbcb926e414155489c6ce8fb741.tar android_bootable_recovery-d79d9bceb36cebbcb926e414155489c6ce8fb741.tar.gz android_bootable_recovery-d79d9bceb36cebbcb926e414155489c6ce8fb741.tar.bz2 android_bootable_recovery-d79d9bceb36cebbcb926e414155489c6ce8fb741.tar.lz android_bootable_recovery-d79d9bceb36cebbcb926e414155489c6ce8fb741.tar.xz android_bootable_recovery-d79d9bceb36cebbcb926e414155489c6ce8fb741.tar.zst android_bootable_recovery-d79d9bceb36cebbcb926e414155489c6ce8fb741.zip |
-rw-r--r-- | crypto/lollipop/cryptfs.c | 2 | ||||
-rw-r--r-- | crypto/lollipop/cryptfs.h | 1 | ||||
-rw-r--r-- | gui/devices/landscape/res/landscape.xml | 29 | ||||
-rw-r--r-- | gui/devices/portrait/res/portrait.xml | 29 | ||||
-rw-r--r-- | gui/devices/watch/res/watch.xml | 29 | ||||
-rw-r--r-- | partition.cpp | 10 |
6 files changed, 87 insertions, 13 deletions
diff --git a/crypto/lollipop/cryptfs.c b/crypto/lollipop/cryptfs.c index c6586cc49..496b960ad 100644 --- a/crypto/lollipop/cryptfs.c +++ b/crypto/lollipop/cryptfs.c @@ -725,7 +725,7 @@ errout: return retval; } -static int delete_crypto_blk_dev(char *name) +int delete_crypto_blk_dev(char *name) { int fd; char buffer[DM_CRYPT_BUF_SIZE]; diff --git a/crypto/lollipop/cryptfs.h b/crypto/lollipop/cryptfs.h index 8cb8a7a32..bc8b463ee 100644 --- a/crypto/lollipop/cryptfs.h +++ b/crypto/lollipop/cryptfs.h @@ -213,6 +213,7 @@ extern "C" { int cryptfs_check_passwd(char *pw); int cryptfs_verify_passwd(char *newpw); int cryptfs_get_password_type(void); + int delete_crypto_blk_dev(char *name); #ifdef __cplusplus } #endif diff --git a/gui/devices/landscape/res/landscape.xml b/gui/devices/landscape/res/landscape.xml index cee7c1553..b8803026a 100644 --- a/gui/devices/landscape/res/landscape.xml +++ b/gui/devices/landscape/res/landscape.xml @@ -1057,10 +1057,7 @@ </object> <object type="button"> - <conditions> - <condition var1="tw_has_internal" var2="1" /> - <condition var1="tw_has_data_media" var2="1" /> - </conditions> + <condition var1="tw_has_data_media" var2="1" /> <highlight color="%highlight_color%" /> <placement x="%col3_x%" y="%wipe_button_y%" /> <font resource="font" color="%button_text_color%" /> @@ -1071,6 +1068,30 @@ </actions> </object> + <object type="button"> + <conditions> + <condition var1="tw_is_encrypted" var2="1" /> + <condition var1="tw_has_data_media" var2="0" /> + </conditions> + <highlight color="%highlight_color%" /> + <placement x="%col3_x%" y="%wipe_button_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Wipe Encryption</text> + <image resource="main_button" /> + <actions> + <action function="set">tw_back=wipe</action> + <action function="set">tw_action=wipe</action> + <action function="set">tw_action_param=DATAMEDIA</action> + <action function="set">tw_has_action2=0</action> + <action function="set">tw_text1=Wipe Encryption from Data?</action> + <action function="set">tw_text2=</action> + <action function="set">tw_action_text1=Formatting Data...</action> + <action function="set">tw_complete_text1=Data Format Complete</action> + <action function="set">tw_slider_text=Swipe to Format Data</action> + <action function="page">confirm_action</action> + </actions> + </object> + <object type="text" color="%text_color%"> <font resource="font" /> <placement x="%center_x%" y="%row12_text_y%" placement="5" /> diff --git a/gui/devices/portrait/res/portrait.xml b/gui/devices/portrait/res/portrait.xml index 9a9571012..a7fbbf460 100644 --- a/gui/devices/portrait/res/portrait.xml +++ b/gui/devices/portrait/res/portrait.xml @@ -769,10 +769,7 @@ </object> <object type="button"> - <conditions> - <condition var1="tw_has_internal" var2="1" /> - <condition var1="tw_has_data_media" var2="1" /> - </conditions> + <condition var1="tw_has_data_media" var2="1" /> <highlight color="%highlight_color%" /> <placement x="%col2_x%" y="%wipe_button_y%" /> <font resource="font" color="%button_text_color%" /> @@ -783,6 +780,30 @@ </actions> </object> + <object type="button"> + <conditions> + <condition var1="tw_is_encrypted" var2="1" /> + <condition var1="tw_has_data_media" var2="0" /> + </conditions> + <highlight color="%highlight_color%" /> + <placement x="%col2_x%" y="%wipe_button_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Wipe Encryption</text> + <image resource="main_button" /> + <actions> + <action function="set">tw_back=wipe</action> + <action function="set">tw_action=wipe</action> + <action function="set">tw_action_param=DATAMEDIA</action> + <action function="set">tw_has_action2=0</action> + <action function="set">tw_text1=Wipe Encryption from Data?</action> + <action function="set">tw_text2=</action> + <action function="set">tw_action_text1=Formatting Data...</action> + <action function="set">tw_complete_text1=Data Format Complete</action> + <action function="set">tw_slider_text=Swipe to Format Data</action> + <action function="page">confirm_action</action> + </actions> + </object> + <object type="slider"> <placement x="%slider_x%" y="%slider_y%" /> <resource base="slider" used="slider-used" touch="slider-touch" /> diff --git a/gui/devices/watch/res/watch.xml b/gui/devices/watch/res/watch.xml index d3ddc5417..23795695f 100644 --- a/gui/devices/watch/res/watch.xml +++ b/gui/devices/watch/res/watch.xml @@ -712,10 +712,7 @@ </object> <object type="button"> - <conditions> - <condition var1="tw_has_internal" var2="1" /> - <condition var1="tw_has_data_media" var2="1" /> - </conditions> + <condition var1="tw_has_data_media" var2="1" /> <highlight color="%highlight_color%" /> <placement x="%col2_x%" y="%wipe_button_y%" /> <font resource="font" color="%button_text_color%" /> @@ -726,6 +723,30 @@ </actions> </object> + <object type="button"> + <conditions> + <condition var1="tw_is_encrypted" var2="1" /> + <condition var1="tw_has_data_media" var2="0" /> + </conditions> + <highlight color="%highlight_color%" /> + <placement x="%col2_x%" y="%wipe_button_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Wipe Encryption</text> + <image resource="main_button" /> + <actions> + <action function="set">tw_back=wipe</action> + <action function="set">tw_action=wipe</action> + <action function="set">tw_action_param=DATAMEDIA</action> + <action function="set">tw_has_action2=0</action> + <action function="set">tw_text1=Wipe Encryption from Data?</action> + <action function="set">tw_text2=</action> + <action function="set">tw_action_text1=Formatting Data...</action> + <action function="set">tw_complete_text1=Data Format Complete</action> + <action function="set">tw_slider_text=Swipe to Format Data</action> + <action function="page">confirm_action</action> + </actions> + </object> + <object type="slider"> <placement x="%slider_x%" y="%slider_y%" /> <resource base="slider" used="slider-used" touch="slider-touch" /> diff --git a/partition.cpp b/partition.cpp index b20367f77..409a688d5 100644 --- a/partition.cpp +++ b/partition.cpp @@ -1371,6 +1371,15 @@ bool TWPartition::Wipe_Encryption() { Has_Data_Media = false; Decrypted_Block_Device = ""; +#ifdef TW_INCLUDE_CRYPTO + if (Is_Decrypted) { + if (!UnMount(true)) + return false; + if (delete_crypto_blk_dev("userdata") != 0) { + LOGERR("Error deleting crypto block device, continuing anyway.\n"); + } + } +#endif Is_Decrypted = false; Is_Encrypted = false; Find_Actual_Block_Device(); @@ -1381,6 +1390,7 @@ bool TWPartition::Wipe_Encryption() { if (Mount(false)) PartitionManager.Add_MTP_Storage(MTP_Storage_ID); } + DataManager::SetValue(TW_IS_ENCRYPTED, 0); #ifndef TW_OEM_BUILD gui_print("You may need to reboot recovery to be able to use /data again.\n"); #endif |