Files
android_bootable_recovery/bootloader_message/Android.mk
nailyk-fr 1021edf17e bootloader_message: Allow TWRP to ignore wipe-data command into misc
* Rebase of https://gerrit.omnirom.org/#/c/20750/ patch-set 3
 * Original commit message:

fix: recently a change in AOSP causes a bootloop to TWRP
(and therefore all ROM's based on it)
Reason: AOSP enables use of /misc partition and normally the fstab in
TWRP will not have /misc added. The problem is now when Android writes
a wipe command to /misc it will force TWRP to boot but TWRP will do
nothing - leaving the cmd in /misc. This results in a bootloop to TWRP.
Solution: I added a new var TW_IGNORE_MISC_WIPE_DATA which can be
set to "true" in Boardconfig.mk of a device requiring this which then
ignores /misc commands like it would be when /misc would be just not in
fstab BUT with this change TWRP clears the bit in /misc so a normal boot
can happen.
Besides that if the device do not have an own recovery key combo and
/misc is enabled we want to open TWRP after walking through the factory
reset screen - without actually doing a factory reset.
kudos to nailyk (and DevUt) for the help with the C++ code!

Change-Id: If6fed5872015f1a66304e3edbdb787c507236f69
2017-01-11 18:09:59 +01:00

46 lines
1.6 KiB
Makefile

# Copyright (C) 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
LOCAL_PATH := $(call my-dir)
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 25; echo $$?),0)
include $(CLEAR_VARS)
LOCAL_CLANG := true
LOCAL_SRC_FILES := bootloader_message.cpp
LOCAL_MODULE := libbootloader_message
LOCAL_STATIC_LIBRARIES := libfs_mgr
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
include $(BUILD_STATIC_LIBRARY)
endif
include $(CLEAR_VARS)
LOCAL_CLANG := true
LOCAL_SRC_FILES := bootloader_message.cpp
LOCAL_MODULE := libbootloader_message
LOCAL_C_INCLUDES += bionic $(LOCAL_PATH)/include
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23; echo $$?),0)
LOCAL_C_INCLUDES += external/stlport/stlport
LOCAL_SHARED_LIBRARIES += libstlport
else
LOCAL_SHARED_LIBRARIES += libc++
endif
LOCAL_CFLAGS := -DEXCLUDE_FS_MGR
# ignore bootloader's factory reset command even when written to /misc
ifeq ($(TW_IGNORE_MISC_WIPE_DATA), true)
LOCAL_CFLAGS += -DIGNORE_MISC_WIPE_DATA
endif
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
include $(BUILD_SHARED_LIBRARY)