hikey960: enable the bootcontrol hal for hikey960 build

so that it will be possible to work with the GSI image

Test: boot to homescreen
      console:/ # getprop init.svc.vendor.boot-hal-1-1
      running
      console:/ #
      VtsHalBootV1_0TargetTest and VtsHalBootV1_1TargetTest
      boot with the system image from build#8690703[1]

Note:
    As there is no misc partition with the current prm_ptable file
    using the vendor partition for the /misc mountpoint
    to work around temporarily

[1]: https://ci.android.com/builds/submitted/8690703/aosp_arm64-userdebug/latest

Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
Change-Id: Ie4672328fbdcb33f83f6a4b0995cc1a370cb9efa
diff --git a/hikey960/device-hikey960.mk b/hikey960/device-hikey960.mk
index fba39a4..1f307a0 100644
--- a/hikey960/device-hikey960.mk
+++ b/hikey960/device-hikey960.mk
@@ -24,6 +24,12 @@
 
 $(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk)
 
+# BootControl HAL
+PRODUCT_PACKAGES += \
+    android.hardware.boot@1.1-impl \
+    android.hardware.boot@1.1-impl.recovery \
+    android.hardware.boot@1.1-service
+
 PRODUCT_COPY_FILES +=	$(TARGET_PREBUILT_KERNEL):kernel \
 			$(TARGET_PREBUILT_DTB):hi3660-hikey960.dtb
 
diff --git a/hikey960/fstab.hikey960 b/hikey960/fstab.hikey960
index ae250da..96f9703 100644
--- a/hikey960/fstab.hikey960
+++ b/hikey960/fstab.hikey960
@@ -7,7 +7,13 @@
 #/dev/block/platform/soc/ff3b0000.ufs/by-name/cache       /cache     ext4    discard,noauto_da_alloc,data=ordered,user_xattr,barrier=1    wait
 #/dev/block/platform/soc/ff3b0000.ufs/by-name/userdata    /data      ext4    discard,noauto_da_alloc,data=ordered,user_xattr,barrier=1    wait
 /dev/block/by-name/userdata    /data      ext4    discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1    latemount,wait,formattable,fileencryption=aes-256-xts,keydirectory=/metadata/vold/metadata_encryption,quota
+# Use the old cache partition for /metadata in order to support metadata encryption
 /dev/block/by-name/cache	/metadata       ext4    noatime,nosuid,nodev,discard     wait,formattable,first_stage_mount,check
+# since there is no misc partition created by the current prm_ptable file,
+# and the vendor partition is not used after the dynamic partition support
+# here use the vendor partition for the misc mountpoint as a temporary
+# workaround for the bootcontrol hal enablement
+/dev/block/by-name/vendor /misc emmc defaults defaults
 /devices/platform/soc/ff37f000.dwmmc1/mmc_host/mmc*      auto       auto    defaults    voldmanaged=sdcard1:auto,encryptable=userdata
 /devices/platform/soc/ff200000.hisi_usb/ff100000.dwc3/xhci-hcd.*.auto/usb*               auto               auto      defaults  voldmanaged=usbdisk:auto,encryptable=userdata
 /devices/platform/soc/f4000000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/nvme/nvme*      auto       auto    defaults    voldmanaged=nvmedisk:auto,encryptable=userdata
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 9592d82..0d147d5 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -36,9 +36,11 @@
 /dev/block/platform/soc/f723d000\.dwmmc0/by-name/userdata u:object_r:userdata_block_device:s0
 
 # for HiKey960 Board
+# temporary workaround for metadata encryption support
 /dev/block/platform/soc/ff3b0000\.ufs/by-name/cache u:object_r:metadata_block_device:s0
 /dev/block/platform/soc/ff3b0000\.ufs/by-name/userdata u:object_r:userdata_block_device:s0
-
+# temporary workaround for the bootcontrol hal support after the dynamic partititon support
+/dev/block/platform/soc/ff3b0000\.ufs/by-name/vendor u:object_r:misc_block_device:s0
 
 /vendor/bin/hw/android\.hardware\.gatekeeper@1\.0-service\.software         u:object_r:hal_gatekeeper_default_exec:s0
 /vendor/bin/hw/android\.hardware\.power@1\.1-service\.hikey-common          u:object_r:hal_power_default_exec:s0