AOSP: e2fsdroid and mke2fs are dynamic executable in recovery partition

The two utilities are now converted to dynamic executables as shared
libraries are supported in recovery mode.

As part of the conversion, shared libraries that are depended from them
are also marked as recovery_available: true.

Bug: 79146551
Test: adb reboot recovery, and select 'Wipe data/factory reset'. The
data partition is formatted and there is no selinux denial.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>

Change-Id: I22fbc83a4ff0496096efca90721b0db1237c32cd
From AOSP commit: df1f088849ed3336bb4f6f200c29b30682f15948
This commit is contained in:
Jiyong Park 2018-06-20 14:21:54 +09:00 committed by Theodore Ts'o
parent 8cec4acdc0
commit 722b9ca4ca
10 changed files with 9 additions and 83 deletions

View File

@ -49,3 +49,4 @@
# ************************************************
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libext2_uuid_intermediates)
$(call add-clean-step, rm -rf $(TARGET_RECOVERY_OUT)/root/sbin)

View File

@ -6,6 +6,7 @@
cc_binary {
name: "e2fsdroid",
host_supported: true,
recovery_available: true,
defaults: ["e2fsprogs-defaults"],
srcs: [

View File

@ -1,41 +0,0 @@
LOCAL_PATH := $(call my-dir)
#########################################################################
# Build statically linked e2fsdroid for recovery
e2fsdroid_src_files := \
e2fsdroid.c \
block_range.c \
fsmap.c \
block_list.c \
base_fs.c \
perms.c \
basefs_allocator.c \
e2fsdroid_cflags := -W -Wall -Werror -Wno-error=macro-redefined
e2fsdroid_static_libraries := \
libext2_com_err \
libext2_misc \
libcutils \
libselinux \
libcrypto \
libsparse \
liblog \
libz \
e2fsdroid_whole_static_libraries := \
libbase \
libext2fs \
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(e2fsdroid_src_files)
LOCAL_CFLAGS := $(e2fsdroid_cflags)
LOCAL_WHOLE_STATIC_LIBRARIES := $(e2fsdroid_whole_static_libraries)
LOCAL_STATIC_LIBRARIES := $(e2fsdroid_static_libraries)
LOCAL_MODULE := e2fsdroid_static
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
LOCAL_FORCE_STATIC_EXECUTABLE := true
include $(BUILD_EXECUTABLE)

View File

@ -3,6 +3,7 @@
cc_library {
name: "libext2_blkid",
host_supported: true,
recovery_available: true,
unique_host_soname: true,
defaults: ["e2fsprogs-defaults"],
srcs: [

View File

@ -3,6 +3,7 @@
cc_library {
name: "libext2_e2p",
host_supported: true,
recovery_available: true,
unique_host_soname: true,
defaults: ["e2fsprogs-defaults"],
srcs: [

View File

@ -3,6 +3,7 @@
cc_library {
name: "libext2_com_err",
host_supported: true,
recovery_available: true,
unique_host_soname: true,
defaults: ["e2fsprogs-defaults"],
srcs: [

View File

@ -3,6 +3,7 @@
cc_library {
name: "libext2fs",
host_supported: true,
recovery_available: true,
unique_host_soname: true,
defaults: ["e2fsprogs-defaults"],
srcs: [

View File

@ -3,6 +3,7 @@
cc_library {
name: "libext2_quota",
host_supported: true,
recovery_available: true,
unique_host_soname: true,
defaults: ["e2fsprogs-defaults"],
srcs: [

View File

@ -5,6 +5,7 @@
cc_library {
name: "libext2_misc",
host_supported: true,
recovery_available: true,
defaults: ["e2fsprogs-defaults"],
target: {
@ -33,6 +34,7 @@ cc_library {
cc_binary {
name: "mke2fs",
host_supported: true,
recovery_available: true,
defaults: ["e2fsprogs-defaults"],
srcs: [

View File

@ -1,42 +0,0 @@
LOCAL_PATH := $(call my-dir)
#########################################################################
# Build statically linked mke2fs for recovery
mke2fs_src_files := \
mke2fs.c \
util.c \
mk_hugefiles.c \
default_profile.c \
create_inode.c \
mke2fs_c_includes := \
external/e2fsprogs/e2fsck
mke2fs_cflags := -W -Wall -Werror -Wno-macro-redefined
mke2fs_static_libraries := \
libext2_blkid \
libext2_uuid \
libext2_quota \
libext2_com_err \
libext2_e2p \
libsparse \
libz \
mke2fs_whole_static_libraries := \
libbase \
libext2fs \
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(mke2fs_src_files)
LOCAL_C_INCLUDES := $(mke2fs_c_includes)
LOCAL_CFLAGS := $(mke2fs_cflags)
LOCAL_WHOLE_STATIC_LIBRARIES := $(mke2fs_whole_static_libraries)
LOCAL_STATIC_LIBRARIES := $(mke2fs_static_libraries)
LOCAL_MODULE := mke2fs_static
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
LOCAL_FORCE_STATIC_EXECUTABLE := true
include $(BUILD_EXECUTABLE)