diff options
-rw-r--r-- | contrib/android/Android.mk | 42 | ||||
-rw-r--r-- | contrib/android/perms.c | 9 | ||||
-rw-r--r-- | contrib/android/perms.h | 2 | ||||
-rw-r--r-- | misc/Android.bp | 3 | ||||
-rw-r--r-- | misc/Android.mk | 42 |
5 files changed, 97 insertions, 1 deletions
diff --git a/contrib/android/Android.mk b/contrib/android/Android.mk new file mode 100644 index 00000000..98ce01d8 --- /dev/null +++ b/contrib/android/Android.mk @@ -0,0 +1,42 @@ +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 \ + hashmap.c \ + +e2fsdroid_cflags := -W -Wall + +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) + diff --git a/contrib/android/perms.c b/contrib/android/perms.c index 9a7a93f5..9ae8e586 100644 --- a/contrib/android/perms.c +++ b/contrib/android/perms.c @@ -297,6 +297,7 @@ errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, char *target_out, struct selabel_handle *sehnd = NULL; /* Retrieve file contexts */ +#if !defined(__ANDROID__) if (nopt > 0) { sehnd = selabel_open(SELABEL_CTX_FILE, seopts, nopt); if (!sehnd) { @@ -306,6 +307,14 @@ errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, char *target_out, return -EINVAL; } } +#else + sehnd = selinux_android_file_context_handle(); + if (!sehnd) { + com_err(__func__, -EINVAL, + _("while opening android file_contexts")); + return -EINVAL; + } +#endif /* Load the FS config */ if (fs_config_file) { diff --git a/contrib/android/perms.h b/contrib/android/perms.h index 9955bb56..c404cb90 100644 --- a/contrib/android/perms.h +++ b/contrib/android/perms.h @@ -25,7 +25,7 @@ static inline errcode_t android_configure_fs(ext2_filsys fs, # else # include <selinux/selinux.h> # include <selinux/label.h> -# if !defined(HOST) +# if defined(__ANDROID__) # include <selinux/android.h> # endif # include <private/android_filesystem_config.h> diff --git a/misc/Android.bp b/misc/Android.bp index ad419e22..5183981f 100644 --- a/misc/Android.bp +++ b/misc/Android.bp @@ -31,6 +31,9 @@ cc_binary { "mk_hugefiles.c", "default_profile.c", ], + required: [ + "mke2fs.conf", + ], cflags: ["-W", "-Wall", "-Wno-macro-redefined"], shared_libs: [ "libext2fs", diff --git a/misc/Android.mk b/misc/Android.mk new file mode 100644 index 00000000..d3bb8207 --- /dev/null +++ b/misc/Android.mk @@ -0,0 +1,42 @@ +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 -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) + |