Auto detect vndk based on vendor SELinux policy
diff --git a/base.mk b/base.mk
index 9b1c6e5..5e2d3d8 100644
--- a/base.mk
+++ b/base.mk
@@ -28,6 +28,7 @@
 
 #VNDK config files
 PRODUCT_COPY_FILES += \
+	device/phh/treble/vndk-detect:system/bin/vndk-detect \
 	device/phh/treble/vndk.rc:system/etc/init/vndk.rc \
 	device/phh/treble/ld.config.26.txt:system/etc/ld.config.26.txt \
 	device/phh/treble/ld.config.27.txt:system/etc/ld.config.27.txt \
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 15ebca2..10bc0ce 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -1 +1,2 @@
 /system/bin/phh-su                   u:object_r:phhsu_exec:s0
+/system/bin/vndk-detect			u:object_r:vndk_detect_exec:s0
diff --git a/sepolicy/vndk_detect.te b/sepolicy/vndk_detect.te
new file mode 100644
index 0000000..ef4c7bf
--- /dev/null
+++ b/sepolicy/vndk_detect.te
@@ -0,0 +1,11 @@
+type vndk_detect, coredomain, domain;
+type vndk_detect_exec, exec_type, file_type;
+
+init_daemon_domain(vndk_detect);
+allow vndk_detect sepolicy_file:file r_file_perms;
+set_prop(vndk_detect,system_prop);
+
+allow vndk_detect shell_exec:file rx_file_perms;
+allow vndk_detect toolbox_exec:file rx_file_perms;
+#/system/bin/grep
+allow vndk_detect system_file:file rx_file_perms;
diff --git a/vndk-detect b/vndk-detect
new file mode 100644
index 0000000..b92de6c
--- /dev/null
+++ b/vndk-detect
@@ -0,0 +1,10 @@
+#!/system/bin/sh
+
+grep -oE 'init_[0-9_]+' /vendor/etc/selinux/nonplat_sepolicy.cil | \
+	uniq | \
+	sort -n | \
+	head -n 1 | \
+	sed -E 's/.*init_([0-9]+).*/\1/g' | \
+while read version;do
+	setprop persist.sys.vndk $version
+done
diff --git a/vndk.rc b/vndk.rc
index 17ec0d6..f9dce09 100644
--- a/vndk.rc
+++ b/vndk.rc
@@ -1,22 +1,3 @@
-on property:ro.vendor.vndk.version=26.0.0
-	export LD_CONFIG_FILE /system/etc/ld.config.26.txt
-
-on property:ro.vendor.vndk.version=26.1.0
-	export LD_CONFIG_FILE /system/etc/ld.config.26.txt
-
-on property:ro.vendor.vndk.version=27.0.0
-	export LD_CONFIG_FILE /system/etc/ld.config.27.txt
-
-on property:ro.vendor.vndk.version=27.1.0
-	export LD_CONFIG_FILE /system/etc/ld.config.27.txt
-
-on property:ro.vendor.product.device=mido
-	export LD_CONFIG_FILE /system/etc/ld.config.27.txt
-
-on property:ro.board.platform=mt6737t
-	export LD_CONFIG_FILE /system/etc/ld.config.26.txt
-
-#Both 27 and 26 exist for this device
-#Assume 27
-on property:ro.vendor.product.device=sailfish
-	export LD_CONFIG_FILE /system/etc/ld.config.27.txt
+on post-fs
+	exec - root -- /system/bin/vndk-detect
+	export LD_CONFIG_FILE /system/etc/ld.config.${persist.sys.vndk}.txt