Hello everybody,
I created a tool - initially for the nexus 9 (flounder|flounder_lte) - that gets rid of the ForceEncrypt flag in a generic way (meaning it should work no matter what rom you are on). It does that by patching the currently installed boot.img.
I enhanced that tool to make it work for other devices too. (See the list below to see if your device is supported)
Disclaimer
Code:
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about the features in this tool
* before using it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.
*/
Background
The Android CDD (Compatibility Definition Document) suggests demands that all devices with the appropriate horse power SHOULD MUST enable full disk-encryption (FDE) by default. Even though I support every step towards more security I have to criticize this approach. Full-disk-encryption comes at a price. Encryption takes time because some component has to de- and encrypt the stuff on the disk at some point and in current devices it's the CPU's task. Even though modern devices have quite fast CPU cores you can still easily feel the difference between FDE in the on- or off-state. The I/O is faster and boot-times take only half as long. (I did not do any scientific measurements though)
There is an ongoing discussion about this topic in cyanogenmod's gerrit for the nexus 9. Although it's a fun read it is pretty clear that this exchange of views is not going anywhere near a useful outcome. Additionally, Google's stock ROMs always have forced encryption enabled on newer devices.
Because performance is important to me and at least my tablet does not need the extra security I created the FED-Patcher (ForceEncrypt Disable Patcher).
How does it work?
FED-Patcher is a simple flashable ZIP that is supposed to be run in a recovery that has busybox integrated (like TWRP or CWM). This is what it does:
Checks if your device is compatible
Dumps the currently installed boot.img.
Unpacks the dump of your currently installed boot.img. The unpacking process is done via a self-compiled, statically linked version of unmkbootimg.
It patches the filesystem tables which include the force-encrypt flags. This process will change "forceencrypt" to "encryptable".
Then, if necessary, it patches the filesystem tables to not use dm-verity. This is done by removing the "verify" mount-parameter.
Creates a new boot.img. The unpacking process is done via a self-compiled, statically linked version of mkbootimg.
Flashes the modified boot.img
Supported devices
HTC Nexus 9 WiFi (flounder)
HTC Nexus 9 LTE (flounder_lte)
Motorola Nexus 6 (shamu)
LG Nexus 5X (bullhead)
Huawei Nexus 6P (angler)
Version History
v1 - Initial version with HTC Nexus 9 WiFi (flounder) support
v2 - Added Motorola Nexus 6 (shamu) support
v3 - Added support for HTC Nexus 9 LTE (flounder_lte)
v4 - Added support for signed boot-images
v5 - Changed error handling to compensate for missing fstab files. Some roms seem not to ship with the complete set of boot-files from AOSP.
v6 - FED-Patcher will enforce the same structure for the patched boot.img that the original boot.img had. Additionally, the kernel commandline will also be taken over. This should fix pretty much every case where devices would not boot after patching.
v7 - FED-Patcher will now disable dm-verity in fstab to get rid of the red error sign on marshmallow roms.
v8 - Added support for LG Nexus 5X (bullhead) and Huawei Nexus 6P (angler)
What do I need to make this work?
A supported device
An unlocked bootloader
An already installed ROM with forceencrypt flag. (like cyanogenmod CM12.1)
A recovery that includes busybox (TWRP, CWM)
How do I use it?
Make a thorough, conservative backup of your data if there is any on your device
Go into your recovery (TWRP, CWM)
Flash fed_patcher-signed.zip
If your device is already encrypted (You booted your ROM at least once) you need to do a full wipe to get rid of the encryption. This full wipe will clear all your data on your data-partition (where your apps as well as their settings are stored) as well as on your internal storage so please, do a backup before. If you don't do a backup and want to restore your data... well... Call obama.
How do I know if it worked?
Go into your "Settings"-App. In "Security", if it offers you to encrypt your device it is unencrypted. If it says something like "Device is encrypted" it indeed is encrypted.
IMPORTANT: If you update your ROM you have to run FED-Patcher again because ROM-updates also update the boot-partition which effectively removes my patch. So, if you are on CM12.1 for example and you used my patch and do an update to a newer nightly you have to run FED-Patcher again. If you don't do so Android will encrypt your device at the first boot.
Is it dangerous?
Well, I implemented tons of checks that prevent pretty much anything bad from happening. But, of course, we're dealing with the boot-partition here. Even though I tested FED-Patcher quite a lot there is still room for crap hitting the fan.
Screenshot
Scroll down to the attached thumbnails.
Credits
* pbatard for making (un)mkbootimg (dunno if he is on xda)
* @rovo89 for his xposed framework - I used some of his ideas by reading the source of his xposed installer flashable ZIP for FED-Patcher.
GibHub: https://github.com/gladiac1337/fed-patcher
XDA:DevDB Information
FED-Patcher, Tool/Utility for all devices (see above for details)
Contributors
gladiac, rovo89
Version Information
Status: Beta
Current Beta Version: v8
Beta Release Date: 2015-10-27
Created 2015-10-27
Last Updated 2016-10-23
Hi @gladiac and first of all thanks for the work and time spent developing this amazing tool.
I'm currently running stock Marshmallow on my Nexus 6 and i plan to stay like that, but would like to test my device with ForceEncrypt disabled. Here are my doubts.
1 - Does this work on stock?
2 - Would i be able to flash the monthly security update images without having to wipe my device every time?
3 - In your opinion, do the speed gains justify the all the work?
Thanks in advance.
cyberon said:
Hi @gladiac and first of all thanks for the work and time spent developing this amazing tool.
I'm currently on stock Marshmallow and i plan to stay like that, but would like to test my device with forcencrypt disabled. Here are my doubts.
1 - Does this work on stock?
2 - Would i be able to flash the monthly security update images without having to wipe my device every time?
3 - In your opinion, do the speed gains justify the all the work?
Thanks in advance.
Click to expand...
Click to collapse
Hi @cyberon,
good questions!
Yes, FED-Patcher works on stock! Marshmallow made it necessary to do a new release, v7, to get rid of an error message at boot but other than that, FED-Patcher works just fine on Android 6.
Well, I don't know how the monthly security-updates will be deployed. I guess it will be done by OTA (Over the Air) updates. OTA will probably not work after modifying the boot-image. However, flashing factory images should work just fine. Additionally, most of the time, OTA-zips are being posted here on xda or androidpolice whenever they become available so doing manual OTA updates is another possibility to do updates.
To get back to your question - wiping should not be necessary after an upgrade - be it via OTA or factory images. Google did a fantastic job with the upgrade-functionality in newer Android versions. However, whenever you do an update, be sure to run FED-Patcher afterwards because, in case the boot-partitions got updated, forced encryption will be in place again and on the first boot it will encrypt you device.
Well, I do all my tests on a HTC Nexus 9 (flounder). It is a pretty fast beast. However, on an unmodified stock rom, it was clearly tangible that the GUI had more latency than necessary. Apps loaded pretty slowly - compared to my Sony Xperia Z1 (honami) it took like twice as long to start youtube - and in general it just did not behave like a beast. This was why I started writing FED-Patcher. In my opinion it was worth my time. (it wasn't that much actually)
I hope I could help.
Enjoy, gladiac
Thanks for the quick and detailed answer @gladiac, now regarding point number 2.
I never wait for the OTA, but always flash the images manually.
As far as i understand from your answer, it would it be ok to flash all the img files manually, then flash TWRP and finally flash FED without booting the OS.
Am i missing something?
cyberon said:
Thanks for the quick and detailed answer @gladiac, now regarding point number 2.
I never wait for the OTA, but always flash the images manually.
As far as i understand from your answer, it would it be ok to flash all the img files manually, then flash TWRP and finally flash FED without booting the OS.
Click to expand...
Click to collapse
That's pretty much how I would do it. You don't even have to flash TWRP if you just skip flashing the recovery.img which is included in the factory-image package.
Thanks @gladiac, will try that way.
PS: I have a feeling that if we had this option added to a toolkit like Wugfresh Nexus Root Toolkit, it would be an instant success.
hi @gladiac
first of all thanks for your patch
I'm on Nexus 6 with stock Marshmallow and all I want to do is disable encryption and enable root.
Is your patch + SuperSU enough or I need something else?
Thanks a lot
Worked on my N9 - thanks!
provolinoo said:
hi @gladiac
first of all thanks for your patch
I'm on Nexus 6 with stock Marshmallow and all I want to do is disable encryption and enable root.
Is your patch + SuperSU enough or I need something else?
Thanks a lot
Click to expand...
Click to collapse
Hi @provolinoo,
well, FED Patcher will disable the forced encryption for you. However, SuperSU will not work so easily. The reason for that is that the stock ROM has SeLinux enabled in "enforcing" mode. SuperSU does not work without adding more SeLinux Policies to the stock ROM. Unfortunately, it's not in the scope of FED Patcher to add SeLinux policies for SuperSU. This should be done inside the flashable ZIP of SuperSU instead.
The last time I tested SuperSU with marshmallow stock was with version 2.52 BETA. It did not work. The result was a boot-loop because of one or more SeLinux denials. A little more info on that matter is here.
So, to get SuperSU working you would have to set SeLinux to "permissive" mode. Alternatively, you can use @Chainfire's boot.imgs to make SuperSU work.
Have fun, gladiac
Thank you gladiac. Your FED patcher (v8) works flawlessly on my Nexus 9. Edit: I am using TWRP 2.8.7.1
The gerrit conversation you linked is interesting. I am grateful that someone with your skills decided to support our ability to choose whether or not to encrypt. CM thinks I am smart enough for root priveleges but I am too stupid to be trusted with decryption?
Don't some major vendors allow the disabling of encryption from within Android?
Anyway, thanks for the patcher.
dmantilal said:
Thank you gladiac. Your FED patcher (v8) works flawlessly on my Nexus 9.
The gerrit conversation you linked is interesting. I am grateful that someone with your skills decided to support our ability to choose whether or not to encrypt. CM thinks I am smart enough for root priveleges but I am too stupid to be trusted with decryption?
Don't some major vendors allow the disabling of encryption from within Android?
Anyway, thanks for the patcher.
Click to expand...
Click to collapse
I agree, I love CM roms but their decision to force encryption when most of cm users are power-user is a nonsense
Sooo....basically, I cannot use a stock Marshmallow that is FEDpatched and with root (using SuperSU, unless there is alternative)? If I want those, I have to get one of the custom ROMs?
EDIT: also, I tried using Chainfire's modified boot. It is stated that it will disable the forceencrypt. It didn't work in mine, still encrypted.
jamesalfred said:
Sooo....basically, I cannot use a stock Marshmallow that is FEDpatched and with root (using SuperSU, unless there is alternative)? If I want those, I have to get one of the custom ROMs?
EDIT: also, I tried using Chainfire's modified boot. It is stated that it will disable the forceencrypt. It didn't work in mine, still encrypted.
Click to expand...
Click to collapse
Did you follow the directions and format the entire "data" partition?
dmantilal said:
Did you follow the directions and format the entire "data" partition?
Click to expand...
Click to collapse
I too have the same problem didnt work for me.
im on the the new 6.0 L build but went ahead and flashed the modified boot image for K build just so I could flash the TWRP img.
Once TWRP was installed, I installed the Fed path ZIP and that went well supposedly. and then after that I did a factory reset, then I WIPED the DATA, CACHE and Dalvik.. I rebooted setup my device and it still shows encrypted.
nextelbuddy said:
I too have the same problem didnt work for me.
im on the the new 6.0 L build but went ahead and flashed the modified boot image for K build just so I could flash the TWRP img.
Once TWRP was installed, I installed the Fed path ZIP and that went well supposedly. and then after that I did a factory reset, then I WIPED the DATA, CACHE and Dalvik.. I rebooted setup my device and it still shows encrypted.
Click to expand...
Click to collapse
It did not work because you did not follow the directions.
Flash TWRP. Flash FED. Full wipe (or format, depending on your choice of terminology). OP goes on to clarify by saying "This full wipe will clear all your data on your data-partition (where your apps as well as their settings are stored) as well as on your internal storage so please, do a backup before.", meaning if you did not lose everything on data, which includes "/sdcard", you most likely did it wrong.
Give us more info so we can help (assuming you fid it right initially).
P.S. - 6.0 is M(arshmallow), not L(ollipop).
dmantilal said:
Did you follow the directions and format the entire "data" partition?
Click to expand...
Click to collapse
dmantilal said:
It did not work because you did not follow the directions.
Flash TWRP. Flash FED. Full wipe (or format, depending on your choice of terminology). OP goes on to clarify by saying "This full wipe will clear all your data on your data-partition (where your apps as well as their settings are stored) as well as on your internal storage so please, do a backup before.", meaning if you did not lose everything on data, which includes "/sdcard", you most likely did it wrong.
Give us more info so we can help (assuming you fid it right initially).
P.S. - 6.0 is M(arshmallow), not L(ollipop).
Click to expand...
Click to collapse
i solved my issue. i was wiping DATA but not choosing internal storage. i did that and rebooted and now it says ENCRYPT not ENCRYPTED
THANKS!
so currently I have a modified boot image from the K build, TWRP and now a modifier boot.img kernel for no force encrypt BUT I am not rooted and dont plan on it. does this mean I can still get OTAs?> i would guess not since my boot image has been modified and i am unlocked? would i even want an OTA? wouldnt that just give me a stock boot.img again causing me to get encrypted on the next boot after OTA?
nextelbuddy said:
i solved my issue. i was wiping DATA but not choosing internal storage. i did that and rebooted and now it says ENCRYPT not ENCRYPTED
THANKS!
so currently I have a modified boot image from the K build, TWRP and now a modifier boot.img kernel for no force encrypt BUT I am not rooted and dont plan on it. does this mean I can still get OTAs?> i would guess not since my boot image has been modified and i am unlocked? would i even want an OTA? wouldnt that just give me a stock boot.img again causing me to get encrypted on the next boot after OTA?
Click to expand...
Click to collapse
Side-loading the OTA then following that with a FED flash seems much safer.
Loading an OTA directly would over-write the boot.img with a ForceEncrypt boot.img, logically Forcing Encryption (derp) at boot.
I am using chroma ROM which doesn't force encryption and my device is still encrypted. Can I still use this?
jamespat93 said:
I am using chroma ROM which doesn't force encryption and my device is still encrypted. Can I still use this?
Click to expand...
Click to collapse
You can if you want But if you want to unencrypt your phone, backup your ROM, copy sd content to your computer, wipe everything! in recovery (twrp) including Format Data, Factory reset, internal storage etc. Connect your phone while in recovery to your computer (you'll see 25.98GB instead of 23.03GB), copy sd content back to your phone, restore your rom backup and you'll be fine.
I can't get it work on Nexus 6 and chroma rom r26.
My steps: wipe everything, push folder (rom,patcher and gapps), flash chroma, flash gapps, flash patcher, wipe everything but system
after boot in setting/security it is again encrypted. what I am doing wrong?
Hello.. I have the Galaxy S6, Android 6.0.1 and it has the auto update for it's software so it's the latest available online.. The device is encrypted, and i want to decrypt it, but i couldn't find the Encryption settings at all, besides under Screen Lock and security / Protect encrypted data, Which as you probably know is not the solution..
How is it possible to decrypt my device?..
Thanks ahead and have a nice day!
Really? nothing?..
Jeff1976A1 said:
Hello.. I have the Galaxy S6, Android 6.0.1 and it has the auto update for it's software so it's the latest available online.. The device is encrypted, and i want to decrypt it, but i couldn't find the Encryption settings at all, besides under Screen Lock and security / Protect encrypted data, Which as you probably know is not the solution..
How is it possible to decrypt my device?..
Thanks ahead and have a nice day!
Click to expand...
Click to collapse
Really? nothing?..
I've searched but the answers seem mixed.
Does Mate 9/Mate 9 Pro have device encryption out of the box? I'm not talking about the fingerprint or PIN lock but the real device encryption in case you lost your phone and the person picked it up tries to bypass locks to get your data.
Have anyone done some serious science to test or verify this?
supposedly all android >= 6.0 are encrypted. Just trust google & huawei
The german Huawei Support say it isnt. You also cant change the decryption Type in the developer section. There is no Option. Any Experts can answer?
Nexus-Nerd said:
The german Huawei Support say it isnt. You also cant change the decryption Type in the developer section. There is no Option. Any Experts can answer?
Click to expand...
Click to collapse
This made me curious since the device can be used without any password or pattern lock, what would be encryption key it uses if there is any?
It uses file-based encryption on /data by default.
https://source.android.com/security/encryption/file-based.html
However, the flag in Mate 9's kernel is fileencryptioninline.
Might be something Huawei changed.
The other thing protecting the partitions is DM-Verity.
Both encryption and verity can be disabled.
The stock image of huawei doesn't use the default android encryption method. However, if you flash a so-called "decrypted" image from https://forum.xda-developers.com/mate-9/development/boot-force-encryption-boot-images-t3558679 , you get all the standard android encryption tools.
Hey,
how to get rid off encryption of the storage but in WORKING way? A lot of people say to format data but that is bull****. Whenever I install Superman rom I get encryption back after reboot. There is no way to prevent that?
Instruction in rom's thread for beginner is quite misleading, even if written for beginner.
Burgscheinkerkdeiktraast said:
Hey,
how to get rid off encryption of the storage but in WORKING way? A lot of people say to format data but that is bull****. Whenever I install Superman rom I get encryption back after reboot. There is no way to prevent that?
Instruction in rom's thread for beginner is quite misleading, even if written for beginner.
Click to expand...
Click to collapse
Samsung added quota support in their Oreo update for the /data partition.
You should check out this post of Tkkg1994:
https://forum.xda-developers.com/gal...2#post77296102
Tkkg1994 added quota support in that TWRP version he links in his post.
Don't use the official or twrp version in the 1st post, because those don't have the quota support yet.
https://forum.xda-developers.com/ga...rp-herolte-t3333770/post77296102#post77296102
Thank you guys, it worked.
My first impression of the Oreo is mixed, especially camera which has terrible UI compared to Nougat. Gonna test it
Hi,
just got a HTC U11 Life phone running already Android 10.
I read and serached the forum for quite a while now and I couldn't figure out how to root the phone
According to this there is no working TWRP, but then again I find comments from people who say got TWRP working (here for instance).
In this HowTo Collection there are instructions, but I can't find the referenced patched image
Now I'm wondering if the problem is that my phone is already on Android 10 or did I just miss some important things?
Help appreciated!
Greetings from Greece, is there anything new? with htc u11 life running already Android 10
there is twrp recovery and root for device ?
Ξne more question please, the device with android 10 has sense home ui ?
thank you very much and sorry for my bad English.
[A10][TWRP]WWE Google One edition
Hello guys, after so time as i start working on proper twrp for my HTC u11 life, which working on android one 10, it's finally done β
Os - 4.73.401.2 It's completely possible to make backup/flash *System *System_Image *Vendor *Vendor_Image *Boot...
forum.xda-developers.com
Root by flashing boot.img by magisk/lygisk.
@Trymitius great news bro ,thank you very much.
Btw your device probably (dont know for sure, cuz didn't test yet) need to be unencrypted. I've provide correct path in fstab for FBE but as i mentioned before it wasn't tested. Just in case, if you need to decrypt your devices, simply edit fstab.qcom + fstab.htc which you can find in /vendor/etc and change "filencryption=" to "encryptable" at system mounting line.
Just be careful, after that you'll need to reboot your device and wipe data or userdata partition. If you going to have any issues about/system partition you can fix it by editing fstab.qcom + fstab.htc and change "ro" --γγ "rw" at /system line.
thanks trymitius but I haven't bought the device yet. I believe in a few days it will be in my hands
sorry for my bad English.