The system() call implemented in bionic/libc/unistd/system.c
depends on paths.h which sets _PATH_BSHELL to "/system/bin/sh"
which is incorrect for recovery - recovery cannot
depend on /system being mounted or even sane because /system
could be corrupt when recovery is used.
We need _PATH_BSHELL to be pointing to /sbin/sh - and
therefore bootable/recovery has its own __system() call
implemented in bootable/recovery/libcrecovery that sets
_PATH_BSHELL as well as makes sure environ is used in
the call to execve.
Change-Id: I2e5fd9c259e4fd0a9aad826a297fd3233a50a7c1
There is a max length for system property names at 32 characters. The
old recovery property name was over this length.
Renamed the property to one much shorter so it is read properly.
Change-Id: Iecadd1218a64cab0c4fb94c5e910b920217580f1
The change switches is_safe_to_format() from a hard coded list
to a list that can be overwritten by system property.
Change-Id: Ie536044a912c3e88462831851d288a60fdc30e2b
For the Power menu,
frameworks/base/core/jni/android_os_Power.cpp#L180
already uses TARGET_RECOVERY_PRE_COMMAND if
TARGET_RECOVERY_PRE_COMMAND is defined in the
BoardConfig.mk for a device to make a system() call before
calling __reboot() for recovery. This commit adds
the same thing to the other places that we know we are
getting into recovery using __reboot().
Change-Id: Ifd0394fed1e87b63d80d95e0e2a049004518e27e
Stock sd-card that ships with LG-P500 formatted with no partitions.
This issue can be handled with device2 in recovery.fstab.
But UMS didn't.
We will try to mount second device (if it was defined) if first failed.
Change-Id: Ia8b58b9fdfa3e63f703a1dd5870cb76936cec88e
The Samsung Galaxy S bootloader apparently expects the kernel to be flashed to BML-managed flash - bad erase blocks will be mapped from a reservoir area.
CWM however just skips bad blocks, the usual procedure for mtd-accessed flash.
Consequently, the bootloader sees a corrupt zImage, and will usually crash when the kernel initializes.
This of course will only happen when the "boot" partition has bad blocks.
This patch was written by "eifert" and adds a tool called "bml_over_mtd" for flashing boot images which takes care of bad blocks and maps them to a reservoir area, like BML does.
Change-Id: If570717a19b879d47d70d937a0751cd85853eacd