diff --git a/BoardConfig.mk b/BoardConfig.mk index e4f3ee9..eda30c9 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -74,6 +74,10 @@ BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive # Display TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS := 0x2000U +# HIDL +ODM_MANIFEST_SKUS += nfc +ODM_MANIFEST_NFC_FILES := $(DEVICE_PATH)/manifest_nfc.xml + # Init TARGET_INIT_VENDOR_LIB := //$(DEVICE_PATH):libinit_xiaomi_rosemary TARGET_RECOVERY_DEVICE_MODULES := libinit_xiaomi_rosemary diff --git a/device.mk b/device.mk index 4481dde..73466b5 100644 --- a/device.mk +++ b/device.mk @@ -247,6 +247,29 @@ PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/seccomp/mediaextractor.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaextractor.policy \ $(LOCAL_PATH)/configs/seccomp/mediaswcodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaswcodec.policy +# NFC +PRODUCT_PACKAGES += \ + com.android.nfc_extras \ + libchrome.vendor \ + NfcNci \ + SecureElement \ + Tag \ + android.hardware.nfc@1.0.vendor \ + android.hardware.nfc@1.1.vendor \ + android.hardware.nfc@1.2.vendor \ + android.hardware.secure_element@1.0.vendor \ + android.hardware.secure_element@1.1.vendor \ + android.hardware.secure_element@1.2.vendor + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_nfc/android.hardware.nfc.ese.xml \ + frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_nfc/android.hardware.nfc.hce.xml \ + frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_nfc/android.hardware.nfc.hcef.xml \ + frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_nfc/android.hardware.nfc.uicc.xml \ + frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_nfc/android.hardware.nfc.xml \ + frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_nfc/android.hardware.se.omapi.ese.xml \ + frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_nfc/com.android.nfc_extras.xml + # Overlays DEVICE_PACKAGE_OVERLAYS += \ $(LOCAL_PATH)/overlay-lineage @@ -344,6 +367,7 @@ PRODUCT_PACKAGES += \ init.mt6785.rc \ init.mt6785.usb.rc \ init.sensor_1_0.rc \ + init.stnfc.rc \ init.target.rc \ ueventd.mtk.rc diff --git a/manifest_nfc.xml b/manifest_nfc.xml new file mode 100644 index 0000000..2fb7ccd --- /dev/null +++ b/manifest_nfc.xml @@ -0,0 +1,12 @@ + + + android.hardware.nfc + hwbinder + 1.2 + + INfc + default + + @1.2::INfc/default + + diff --git a/rootdir/Android.bp b/rootdir/Android.bp index 08ac214..2ceaa24 100644 --- a/rootdir/Android.bp +++ b/rootdir/Android.bp @@ -51,6 +51,13 @@ prebuilt_etc { vendor: true, } +prebuilt_etc { + name: "init.stnfc.rc", + src: "etc/init.stnfc.rc", + sub_dir: "init/hw", + vendor: true, +} + prebuilt_etc { name: "init.target.rc", src: "etc/init.target.rc", diff --git a/rootdir/etc/init.stnfc.rc b/rootdir/etc/init.stnfc.rc new file mode 100644 index 0000000..9b07909 --- /dev/null +++ b/rootdir/etc/init.stnfc.rc @@ -0,0 +1,33 @@ +# This file needs to be executed by vendor_init at boot of the device, +# in normal and FM mode. + +# Start the HAL service in all modes (FM, meta, normal) +on post-fs && property:ro.boot.hwname=rosemary + start nfc_hal_service + setprop ro.vendor.se.type HCE,UICC + +# For factory mode, nfcstackp to create the socket as vendor here +on post-fs-data + mkdir /data/vendor/nfc_socket 0770 nfc nfc + +# start STFlashTool at boot to ensure a NFC FW is loaded for factory tests +service stflashtool /vendor/bin/STFlashTool + class late_start + user nfc + group nfc + disabled + oneshot + +service nfcstackp_vendor /vendor/bin/nfcstackp-vendor + class late_start + user nfc + group nfc + disabled + +# start nfcstackp_vendor by properties (FM or EM HIDL will set value) +on property:vendor.nfc.nfcstackp.enable=0 + stop nfcstackp_vendor + +on property:vendor.nfc.nfcstackp.enable=1 + start nfcstackp_vendor +