]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
AOSP: e2fsdroid: use libselinux function to read file context on device
authorJin Qian <jinqian@google.com>
Tue, 20 Jun 2017 20:49:53 +0000 (13:49 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 26 Feb 2018 17:22:52 +0000 (12:22 -0500)
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

contrib/android/perms.c
contrib/android/perms.h

index b9b2463f4a38b61d4b2add5adf142d5cad99d4e6..1a822cfea4fa2673539a95f233fa905f96759cae 100644 (file)
@@ -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) {
index 9955bb56b20c4d2816f103af537be00e6f672cbb..c404cb9056ea783d56fde7132bc16619b33d07a5 100644 (file)
@@ -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>