recovery: Add support for performance control

 * Recovery will now set "recovery.perf.mode" to 1 before a
   backup/restore operation begins, and will set it back to 0
   when the operation is complete. It will also do this during
   package installations.
 * This allows devices to boot into recovery in a low-power mode,
   and bring up more cores and adjust other settings. Pigz is
   multithreaded, and enabling all cores vastly improves performance of
   compressed backups.
 * Device maintainers who wish to use this should configure their
   init.recovery script to trigger off of this property.

Change-Id: I174e45215ad1cd34a34b1af4486a64fb6e54134b
Define paths for recovery settings files in a separate header

Also, use get_primary_storage_path() to define the locations of .no_confirm,
.many_confirm, and .hidenandroidprogress instead of hard-coding /sdcard/.

Change-Id: I50442a226af1d102786c833c0b53c25bf63c67a6
(cherry picked from commit bd0fe453f6ca242f0ed868b4c0934af29d499bba)
Bump recovery to 6.0.4.6

Change-Id: Id2b373e5a356e7eaa8694e5d0300dff860762061
Merge "Define paths for recovery settings files in a separate header" into cm-11.0
Hide install icon after success as it is done for regular zip installs

Change-Id: I932a6ecff0fb64913842c1ea4624021b476f7d46
Nandroid menu fixes:
- fix memory overflow bug if vold managed volumes reach MAX_NUM_MANAGED_VOLUMES.
- easier editing: this completes previous two commits to clean up Install Zip menu and Advanced menu

Change-Id: I349cc7b04878b92d902e1ee826d9b4c5bc77cf83
(cherry picked from commit a88b701ccb0733ca5cdd51490b86707c8d19a1f4)
Free up memory from file menu pointers

* Cleanup sub-filemenu pointers after their results are copied.
* Cleanup file pointers after all operations have been performed on
the file.

Change-Id: Ie6c482c5ffddd7ebebdc99bbe8ae856e53e1405f
(cherry picked from commit 5360b52dba6b120b6e0ba5c775e2a961504a34a3)
Do not modify original items pointer when filtering NULL entries

get_filtered_menu_selection currently modifies the items menu passed
to it. This can be problematic if the items menu is needed later without
any filtering of NULL entries. Instead, let's modify a copy of the items
menu, leaving the original intact.

Change-Id: Ief6f538441ea78fcd8eba3a815354f06bda849a0
Loki updates:

* update to v2.1 + sync to latest sources
* fix broken LG devices + add new ones
* proper code for recovery
* do not lokify after a failed adb install
* use original loki format sources for easier future updates
* fix all compiler warnings

Change-Id: I4f19edc492a1105c2b91c579f295876a4dc313b2
recovery: Fix the configuration of default_backup_format

I believe that this was missed (and therefore broken) in this commit:

commit a46e1bd7b32dc3ab660518a1aeab2f99d1ec518b
Author: philz-cwm6 <phytowardt@gmail.com>
Date:   Sun Dec 1 22:26:45 2013 +0100

    Define paths for recovery settings files in a separate header

    Also, use get_primary_storage_path() to define the locations of .no_conf
    .many_confirm, and .hidenandroidprogress instead of hard-coding /sdcard/

    Change-Id: I50442a226af1d102786c833c0b53c25bf63c67a6
    (cherry picked from commit bd0fe453f6ca242f0ed868b4c0934af29d499bba)

Change-Id: Idee6d712ac55cdd4b2690011a48226af2ed20d96
Clean up c formatting - 1

There are several inconsistent coding styles in CWM source from years of
contributions. I tried to find parameters for 'indent' which change the
least amount of code but outputs a style most will feel at home with.

Most of these formatting changes come from:
indent -br -brf -brs -cdw -ce -i4 -l160 -nbap -nbc -nbfda -ncs -npcs \
 -npsl -nut -ts4 file.c

Some manual modifications after running indent:
1) a()? b : c    --->    a() ? b : c
2) retain existing pointer definition styles
3) indentation of structs
4) change { } wrapping of cases in switch statements

Change-Id: I7f34a2e769a9a3f397ad36b8e25676424780aa00
su: Update for latest su daemon compatibility

Change-Id: I6d2f36d9f01d7bc6004724458875b3dce850d00e
Merge "Clean up c formatting - 1" into cm-11.0
minui: do not use flexible array initialization

Avoiding the use of gnu extensions improves code portability

Change-Id: I441a49ce08b6ecb1d735ca453552fa92026c5016
Remove "Go Back" option from verify root and recovery options

These options only show when you are exiting recovery and there
is no where to "go back" to.

Patchset 1) initial
Patchset 2) change to ui_set_showing_back_button()
Patchset 3) revert settings before returning

Change-Id: I0aee8d0fbce9a5ff415b74b4a16e0d416042e307
Merge "Remove "Go Back" option from verify root and recovery options" into cm-11.0
do not use static type

Change-Id: I7baff2106a98d5246ea2ad619670dcb5575afeab
remove unused variable

Change-Id: Idb89503140a6a3385fe17990e3484fe71883885f
do not error on missing sd-ext when wiping dalvik cache

Change-Id: I4cf817f05bd708fe2b7d6a5f20aab6ef2413d117
Fix potential chmod failures

1) ensure_directory: only chmod if directory exists or is created
2) nandroid_backup: if the backup is stored on a different volume than
/sdcard, then these chmod commands will fail. Correct the backup paths.

Change-Id: Ia54c27fdf861c90a4de86346893f334420060090