diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk
index 788d80d..fd69760 100644
--- a/BoardConfigCommon.mk
+++ b/BoardConfigCommon.mk
@@ -49,6 +49,10 @@ MAX_EGL_CACHE_KEY_SIZE := 12*1024
# of the device.
MAX_EGL_CACHE_SIZE := 2048*1024
+# HIDL
+DEVICE_MANIFEST_FILE := device/samsung/msm8974-common/manifest.xml
+DEVICE_MATRIX_FILE := device/samsung/msm8974-common/compatibility_matrix.xml
+
# Init
TARGET_INIT_VENDOR_LIB := libinit_msm8974
TARGET_RECOVERY_DEVICE_MODULES := libinit_msm8974
diff --git a/compatibility_matrix.xml b/compatibility_matrix.xml
new file mode 100644
index 0000000..3082485
--- /dev/null
+++ b/compatibility_matrix.xml
@@ -0,0 +1,59 @@
+
+
+ android.frameworks.schedulerservice
+ 1.0
+
+ ISchedulingPolicyService
+ default
+
+
+
+ android.frameworks.sensorservice
+ 1.0
+
+ ISensorManager
+ default
+
+
+
+ android.hidl.allocator
+ 1.0
+
+ IAllocator
+ ashmem
+
+
+
+ android.hidl.manager
+ 1.0
+
+ IServiceManager
+ default
+
+
+
+ android.hidl.memory
+ 1.0
+
+ IMapper
+ ashmem
+
+
+
+ android.hidl.token
+ 1.0
+
+ ITokenManager
+ default
+
+
+
+ android.system.wifi.keystore
+ 1.0
+
+ IKeystore
+ default
+
+
+
+
diff --git a/manifest.xml b/manifest.xml
new file mode 100644
index 0000000..16568c2
--- /dev/null
+++ b/manifest.xml
@@ -0,0 +1,162 @@
+
+
+ android.hardware.audio
+ passthrough
+ 2.0
+
+ IDevicesFactory
+ default
+
+
+
+ android.hardware.audio.effect
+ passthrough
+ 2.0
+
+ IEffectsFactory
+ default
+
+
+
+ android.hardware.bluetooth
+ passthrough
+ 1.0
+
+ IBluetoothHci
+ default
+
+
+
+ android.hardware.configstore
+ hwbinder
+ 1.0
+
+ ISurfaceFlingerConfigs
+ default
+
+
+
+ android.hardware.drm
+ hwbinder
+ 1.0
+
+ ICryptoFactory
+ widevine
+ default
+
+
+ IDrmFactory
+ widevine
+ default
+
+
+
+ android.hardware.gnss
+ passthrough
+ 1.0
+
+ IGnss
+ default
+
+
+
+ android.hardware.graphics.allocator
+ hwbinder
+ 2.0
+
+ IAllocator
+ default
+
+
+
+ android.hardware.graphics.composer
+ passthrough
+
+ 2.1
+
+ IComposer
+ default
+
+
+
+ android.hardware.graphics.mapper
+ passthrough
+ 2.0
+
+ IMapper
+ default
+
+
+
+ android.hardware.ir
+ passthrough
+ 1.0
+
+ IConsumerIr
+ default
+
+
+
+ android.hardware.keymaster
+ passthrough
+ 3.0
+
+ IKeymasterDevice
+ default
+
+
+
+ android.hardware.memtrack
+ passthrough
+ 1.0
+
+ IMemtrack
+ default
+
+
+
+ android.hardware.power
+ passthrough
+ 1.0
+
+ IPower
+ default
+
+
+
+ android.hardware.sensors
+ passthrough
+ 1.0
+
+ ISensors
+ default
+
+
+
+ android.hardware.usb
+ hwbinder
+ 1.0
+
+ IUsb
+ default
+
+
+
+ android.hardware.wifi
+ hwbinder
+ 1.1
+
+ IWifi
+ default
+
+
+
+ android.hardware.wifi.supplicant
+ hwbinder
+ 1.0
+
+ ISupplicant
+ default
+
+
+
diff --git a/msm8974.mk b/msm8974.mk
index c44ca20..f473622 100644
--- a/msm8974.mk
+++ b/msm8974.mk
@@ -18,6 +18,7 @@ DEVICE_PACKAGE_OVERLAYS += device/samsung/msm8974-common/overlay
# Permissions
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.bluetooth_le.xml:system/etc/permissions/android.hardware.bluetooth_le.xml \
+ frameworks/native/data/etc/android.hardware.consumerir.xml:system/etc/permissions/android.hardware.consumerir.xml \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:system/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.front.xml:system/etc/permissions/android.hardware.camera.front.xml \
frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml \
@@ -71,6 +72,11 @@ PRODUCT_PACKAGES += \
libqcomvoiceprocessing \
tinymix
+# Bluetooth
+PRODUCT_PACKAGES += \
+ android.hardware.bluetooth@1.0-impl \
+ libbt-vendor
+
# Display
PRODUCT_PACKAGES += \
android.hardware.graphics.allocator@2.0-impl \
@@ -83,12 +89,30 @@ PRODUCT_PACKAGES += \
hwcomposer.msm8974 \
memtrack.msm8974
+# DRM
+PRODUCT_PACKAGES += \
+ android.hardware.drm@1.0-impl \
+ android.hardware.drm@1.0-service
+
+# GPS
+PRODUCT_PACKAGES += \
+ android.hardware.gnss@1.0-impl
+
+# IR Blaster
+PRODUCT_PACKAGES += \
+ android.hardware.ir@1.0-impl \
+ consumerir.msm8974
+
# Keylayouts
PRODUCT_COPY_FILES += \
device/samsung/msm8974-common/keylayout/cyttsp-i2c.kl:system/usr/keylayout/cyttsp-i2c.kl \
device/samsung/msm8974-common/keylayout/keypad_8960.kl:system/usr/keylayout/keypad_8960.kl \
device/samsung/msm8974-common/keylayout/Vendor_04e8_Product_7021.kl:system/usr/keylayout/Vendor_04e8_Product_7021.kl
+# Keymaster
+PRODUCT_PACKAGES += \
+ android.hardware.keymaster@3.0-impl
+
# Media
PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
@@ -113,5 +137,21 @@ PRODUCT_PACKAGES += \
android.hardware.power@1.0-impl \
power.msm8974
+# Sensors
+PRODUCT_PACKAGES += \
+ android.hardware.sensors@1.0-impl
+
+# USB
+PRODUCT_PACKAGES += \
+ android.hardware.usb@1.0-service
+
+# Wifi
+PRODUCT_PACKAGES += \
+ android.hardware.wifi@1.0-service \
+ hostapd \
+ wificond \
+ wpa_supplicant \
+ wpa_supplicant.conf
+
# common msm8974
$(call inherit-product, device/samsung/qcom-common/qcom-common.mk)