Feature #1988

Updated by doak complex almost 2 years ago

h3. TL;DR 

 _Safe Mode_ is triggered too easily. 

 h3. Details 

 _Safe Mode_ will delete all not-yet-synced data which is connected to an account. This is harmful if you are unable or don't want to be online (i.e. connected to the provider) all the time. 
 I was hit by this several times because I have used a _calDAV_ / _cardDAV_ server within a local VM which was only started from time to time to "backup" that data. 

 The (updated) Wiki [1] states: 
 > To boot into Safe Mode, press and hold down the @Volume Down@ _Volume Down_ button during boot. 
 > In fact it is enough to hold the button for approximately one second during the short vibration near the end of the boot sequence. It does not matter if the key was hold down all the time nor if other keys are pressed/held as, press and hold down the @Volume Down@ _Volume Down_ button during boot. 

 That sounds hard, but imho it is not. _Safe Mode_ is triggered quite too easy by accident. At least it happened for me several times: 
 # Phone rebooted due of an SW crash and was placed in the "drawer" between driving and passenger seat of my car which is quite narrow. It seems some button had been pressed which led to -- tadaa -- _Safe Mode_ purging my account data. 
 # My mobile fell into water, I got it out of it pretty fast. After some cleaning it seems to be dry. I tried to boot it, which works. Unfortunately some buttons were short circuited which led to -- tadaa -- _Safe Mode_ purging my account data. 
 # Small kids, getting their bruteforce hands on some device, are a great opportunity to boot into _Safe Mode_ as well, though it did not (yet) happen to me. 

 Anyway, imho it's just to easy to purge data. Even in case it had been synchronised, you would need to setup all accounts, restore a backup etc. Very annoying if you are on the road. Furthermore this can be done by any malicious person flying by. 

 I would suggest to add a patch which enforces another confirmation before purging user data or, alternatively, make it possible to restore these data afterwards. 
 I don't know how hard it is to implement such a patch but it guess it should be straight forward. But I can be wrong, for sure. Any comments?