Merge "Add build flags for libselinux" into main am: c23cbe8ca5

Original change: https://android-review.googlesource.com/c/platform/external/selinux/+/2971894

Change-Id: Iab88e01241410a5803177f30093e5b444692af6a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/libselinux/Android.bp b/libselinux/Android.bp
index 766c90e..eaefc97 100644
--- a/libselinux/Android.bp
+++ b/libselinux/Android.bp
@@ -52,6 +52,7 @@
 
 cc_defaults {
     name: "libselinux_defaults",
+    defaults: ["libselinux_flags_defaults"],
 
     cflags: common_CFLAGS,
 
@@ -157,6 +158,28 @@
     stl: "none",
 }
 
+soong_config_module_type {
+    name: "cc_defaults_libselinux_flags",
+    module_type: "cc_defaults",
+    config_namespace: "ANDROID",
+    bool_variables: [
+        "release_selinux_data_data_ignore",
+    ],
+    properties: [
+        "cflags",
+    ],
+}
+
+cc_defaults_libselinux_flags {
+    name: "libselinux_flags_defaults",
+    host_supported: true,
+    soong_config_variables: {
+        release_selinux_data_data_ignore: {
+            cflags: ["-DSELINUX_FLAGS_DATA_DATA_IGNORE"],
+        }
+    }
+}
+
 cc_library {
     name: "libselinux",
     defaults: ["libselinux_defaults"],
diff --git a/libselinux/src/android/android_device.c b/libselinux/src/android/android_device.c
index 5d1c4d3..63f3355 100644
--- a/libselinux/src/android/android_device.c
+++ b/libselinux/src/android/android_device.c
@@ -281,6 +281,11 @@
  */
 static bool is_app_data_path(const char *pathname) {
     int flags = FNM_LEADING_DIR|FNM_PATHNAME;
+#ifdef SELINUX_FLAGS_DATA_DATA_IGNORE
+    if (!strcmp(pathname, DATA_DATA_PATH)) {
+        return true;
+    }
+#endif
     return (!strncmp(pathname, DATA_DATA_PREFIX, sizeof(DATA_DATA_PREFIX)-1) ||
         !strncmp(pathname, DATA_USER_PREFIX, sizeof(DATA_USER_PREFIX)-1) ||
         !strncmp(pathname, DATA_USER_DE_PREFIX, sizeof(DATA_USER_DE_PREFIX)-1) ||