From: Jin Qian Date: Tue, 20 Jun 2017 20:49:53 +0000 (-0700) Subject: AOSP: e2fsdroid: use libselinux function to read file context on device X-Git-Tag: v1.44.0-rc1~28 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=99c4785d7d823e3eb9d03432db35c8b73ab9f66d;p=tools%2Fe2fsprogs.git AOSP: 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 From AOSP commit: c0bd89b31a7719dd3d51137b3d47a9597ba6b038 --- diff --git a/contrib/android/perms.c b/contrib/android/perms.c index b9b2463..1a822cf 100644 --- a/contrib/android/perms.c +++ b/contrib/android/perms.c @@ -291,6 +291,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) { @@ -300,6 +301,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 9955bb5..c404cb9 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