[Fire Original Android Development] marrco:
FlashFire v0.33 released

FlashFire v0.33: backup/restore through ADB, even over Wi-Fi

Today's FlashFire update brings a major new feature and many smaller fixes and improvements.

adb backup/restore, using USB or Wi-Fi

By utilizing adb, you can now stream backups directly to and restore them from your computer. This also supports adb over Wi-Fi.

To backup, create a new backup action, and as location choose "Android Debug Bridge (ADB)" instead of the default "Internal Storage", and select the partitions you want to backup.

To restore, create a new restore action, and tap the USB icon at the backup selection screen. Then select the partitions you want to restore if present in the backup.

After tapping the Flash button, you will be presented with on-screen instructions as needed.

Please note that these backups are the same as the ones stored on your Android device, but wrapped in a ZIP container in a specific order. So while you can unZIP them and place them on your Android device to use, as of yet you cannot just ZIP up an existing backup from your Android device and restore it through adb.

Also note that while we are using the adb backup/restore commands, these backups are not in the same format as using adb backup/restore normally. We are just hijacking this command for convenience.

Adopted storage

There have been quite a number of changes in how adoptable storages are handled this version. Apparently there were some nuances to it that I previously misunderstood, which caused some strange behavior. This should now be fixed.

It is important to note that FlashFire should always treat your Internal Storage as your Internal Storage, and your Adopted Storage as Adopted Storage, even if you have migrated between the two so normal applications see your Adopted Storage as Internal Storage instead.

This means that if you select Internal Storage as a backup location, it will always go to your actual Internal Storage, and never to your Adopted Storage. If you want the latter, you need to select it specifically, that's why the option exists.

While this might seem perfectly logical to some, during development and testing of this feature, some users expected otherwise, hence the emphasis.

Other noteworthy changes

App startup performance has improved significantly, especially for users with many backups on their storages.

Back key behavior has changed somewhat throughout the app. This should cause less accidental app closes.

During operations, progress information is now shown more often, and more detailed. The current file that is being backed up or restored may be shown now where it wasn't before, as may total bytes read/written/transferred, the speed at which this happens, and how long it has taken so far.

Additional partition types are now supported, and additional OTA file locations are now automatically detected.

Last but not least, the embedded SuperSU has been updated to v2.72 BETA, and it outputs less information when being applied through EverRoot, giving you a better opportunity to see status information about the other actions you had FlashFire perform.

Future

While there are many features and fixes still on my to-do list - yes, including ODIN backups, stop asking! - after this update I think the first next thing is getting some documentation in order and taking the app out of Play BETA, so people can download and use the app without jumping through hoops.

Download

Please note that a lot of code has changed this release, and new bugs may have been introduced. Please report them to the XDA thread when you run in to them!

Google Play's awkward BETA program opt-in:

https://play.google.com/apps/testing/eu.chainfire.flash

Direct APK download:

https://download.chainfire.eu/961/FlashFire/FlashFire-v0.33-20160511115223.apk

Discussion, bug reports, feature requests, etc

XDA thread: http://xdaforums.com/general/paid-software/flashfire-t3075433

Changelog

- Add support for backing up to and restoring from ADB, through USB or Wi-Fi (special ZIP format)

- Completely reworked progress code, more info is shown in more places now (current file, speed, progress)

- Improved back key handling

- Improved app startup performance

- If sdcard is adopted, reflect that in location display name

- Fix adopted SD card sometimes not showing up in mixed partition mode

- Attempt to identify external sdcard (rather than calling it USB)

- Adjust storage location display order

- Add warning when using adopted storage

- Rewrote file creation routines to cope better with adopted storages

- Fix reboot card popup title

- Refactor shell commands as root

- Change install location to internal-only

- Fix backup of internal storage not skipping backups in some cases

- Adjust ZIP parser so it can cope with Samsung FOTA ZIPs

- Added warning for Huawei users about brickability

- Add OEM partition to TWRP emergency restore

- Fix backup/restore per-file progress freezing

- Archives: Add suppport for Huawei's UPDATE.APP format

- OTA: Add detection for Samsung

- OTA: Add detection for Huawei

- OTA: Add detection for HTC

- OTA: Add detection for Letv

- OTA: Add multi-zip-file capability

- Partitions: Add various Tegra-specific partitions

- Partitions: Add various Mtk64-specific partitions

- Partitions: Add various Huawei-specific partitions

- Partitions: Add various Pixel-C-specific partitions

- Partitions: Add generic Factory Reset Protection partition

- Partitions: Add support for eMMC boot and general purpose partitions

- Partitions: Attempt r/w unlock before writing

- EverRoot: Updated embedded SuperSU to v2.72 BETA

- EverRoot: Use LESSLOGGING mode, reduces SuperSU output﻿

Download

download.chainfire.eu