Attempt to automatically identify data/media devices

Change-Id: Ia3007fbced9ce3bc94efdb3dacc582a5e68a49a4
Check sehandle before fixing permissions

Change-Id: I73ba5519bf650f0c7f0a683f311099ff13747155
ADB sideload command not work

In kernel(3.10) USB ADB gadget driver is removed.
Using Functionfs for USB adb gadget.

Android recovery uses a stripped down version
of adb command for sideload only. It's missing
the ffs function support, so add the ffs
support to allow sideload command to work

b/12608946

Change-Id: I4ad024723dfc5bdb544548391f99637c390b171e
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
recovery: Fix adb with linux 3.10

In kernel 3.10, f_adb has been removed and adbd can use functionfs
instead. Mount functionfs on boot for adbd. On older kernels, mount
will fail silently and adbd will revert to f_adb.

Change-Id: I5db57aaf35b35859ea88c7d0e0661d8c553e5811
Fixes for exfat-fuse

Change-Id: I46a1e7bf115c45616774b0571b17e38777ba87f8
Remove extra slashes from zip path in openrecovery

TWFunc::Get_Path() returns a path with a trailing slash and the substr
method is returning a string with a leading slash, so we don't need to
specify additional slashes for wholePath in Locate_Zip_File().

Also, put 'value' readout to log on its own line if it exists.

Change-Id: I2a4db6dbde5552f5a803eabb0599fd983d683fca
atime is access time, let's just use mtime

Change-Id: I828bc473a263868bd82b042c4009701d09a77a1f
applypatch: add support for BML partitions

This actually uses the EMMC partition access code. In order for this
to work, the BML partition name is changed back to the block
device name (e.g. "boot" -> "/dev/block/bml9"), and the
BML_UNLOCK_ALL ioctl is called before writing.

Change-Id: I012f1eca0b486b7465ca38b5db1f513ee8a246ea
Attempt to fix md5 issue with backups

thanks @bigbiff for the suggestion

Change-Id: Ie9b55537b7fa300461b015d2b9523d4250e755a9
Update RECOVERY_VARIANT blocking to use project-path-for

Using RECOVERY_VARIANT to allow recovery to reside at
bootable/recovery-(variant) has changed at CM. project-path-for now
handles all the path re-mapping. This is simply a compatibility update
to be able to continue using RECOVERY_VARIANT with TWRP in a CM tree.

Change-Id: I66769d85b2a111e837f206b1c9a5bc07d6ac0d86
mtp: cleanup, fixes and performance improvements

- use std::map instead of linked list
- read directories on demand
- fix writing zip files to storage root
- fix creating directories
- lots of minor fixes
- simplify generation of storage IDs and make them spec compliant

Change-Id: I2137c27549ddbdc58466f2e3aeda464fac70a3c5
performance profile support

Many device trees support the recovery.perf.mode property to
set various core frequencies and online/offline mode. TWRP is
highly threaded, and support for multiple cores on many operations
dramatically recudes the time, e.g., backups, zip flashes, etc.

p2: removed user notifications

Change-Id: I957b8ca40b241c0af0471327eeb329cce1816017