From 2fff6fb036cbbb6dedd7da3d208b312a9038a5ce Mon Sep 17 00:00:00 2001 From: Jin Qian Date: Tue, 20 Jun 2017 13:49:53 -0700 Subject: e2fsdroid: use libselinux function to read file context on device When e2fsdroid runs on device, location of selinux file contexts should be determined by libselinux instead of using arbitrary paths. Bug: 35219933 Change-Id: I413b198422eddb212599498b532ba2c4d8bb36c6 Merged-In: I413b198422eddb212599498b532ba2c4d8bb36c6 --- contrib/android/perms.c | 9 +++++++++ contrib/android/perms.h | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) 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 # include -# if !defined(HOST) +# if defined(__ANDROID__) # include # endif # include -- cgit v1.2.3