Custom ROM users are probably familiar with the process of making regular backups and restorations because of unexpected hiccups causing your phone to enter into a bootloop. It's imperative to backup your device in the off chance that such an event were to occur or you'll have to deal with the frustration of resetting all your app's preferences.

However, if you're the kind of user who likes to root and wants to retain the ability to immediately receive OTA updates, then you're likely not flashing custom ROMs or custom recoveries. Sure, you can fastboot boot a recovery to make periodic backups of your precious data, but it's a bit of a hassle to have to plug your phone in to your computer every time you want to run a backup. Your other option is to just rely on full application backups through methods like Titanium Backup, but nothing beats the ease of clicking restore on a full system backup and everything returning to the state it was once in. Thankfully, XDA Senior Recognized Developer Chainfire has solved this dilemma with version 0.32 of his FlashFire app in beta. You can now create fastboot flashable backups within the application.

Now, you can manage your periodic backups right from your phone. And if you are unfortunate enough to require restoring a previous backup for whatever reason, then you can simply plug your phone into your computer just once to flash the backup images you've created to fully restore your device to its previous state. There are currently some caveats, however, due to the app being in beta as Chainfire lays out in his Google+ post about the update.

"Only the main Android-related partitions are able to be backed up: boot, recovery, system, vendor, oem, userdata (including internal storage), and cache. Radio/modem partitions need some further investigation and testing, while bootloader (and other not mentioned) partitions will probably never be supported."

In other words, it's not a perfect replication of a backup from within the recovery environment, but it should suit the vast majority of cases out there. If you really need to, you can always download and fastboot flash the radio/modem and bootloader manually as these partitions are overall device-dependent and not unique to any individual device. Chainfire notes that although you can make full user-data backups by selecting the "internal storage" option, FlashFire will be smart enough to skip backing up any backup files it detects from recovery environments such as TWRP or CWM. However, if you choose to do so, then your backup will be unencrypted.

"The backup of userdata is currently always in unencrypted ext4 format (even if you are currently running encrypted f2fs). If you restore it, you will end up with an unencrypted ext4 device - a pro for some, a con for others. You need to be aware that stock Marshmallow+ kernels may refuse to work with an unencrypted userdata partition."

If you are worried about a potential security issue here, then you should always lock the bootloader and store the fastboot flashable backups in a safe environment to prevent anyone from simply booting a custom recovery and bypassing whatever protection you've enabled on your phone. Indeed, for now it is actually recommended to store your fastboot-flashable backups off your phone as FlashFire does not support restoring internal storage from within the app itself.

"Fastboot backups are truly meant to be restored from your PC using fastboot. While you can 'install' the backup ZIP file using the '_Flash firmware package_' option, that currently does not support flashing the userdata partition, which is usually the most important partition to backup/restore."

As noted previously, the application is in beta and Chainfire is looking into solving many of the current limitations within the implementation of this new feature. Given his extensive work in this field, we're confident in his ability to work out the kinks in his app. If you have any thoughts, bug reports, or feature requests you can visit the official XDA thread dedicated to FlashFire here.