########################### Start of libnfc-st.conf ###########################

###############################################################################
# Application options
APPL_TRACE_LEVEL=0x05
# HAL trace flag: 0x00200000
# HAL NDLC trace flag: 0x00400000
PROTOCOL_TRACE_LEVEL=0x00600000

###############################################################################
# File used for NFA storage
NFA_STORAGE="/data/nfc"

###############################################################################
# Keep the nfa storage file.
PRESERVE_STORAGE=1

###############################################################################
# Force UICC to only listen to the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B.
# NOTE 1: P2P_LISTEN_TECH_MASK has also an impact on programmed listen mask
# NOTE 2: If using android 4.4, the listen mode A is always programmed.
UICC_LISTEN_TECH_MASK=0x00

###############################################################################
# Inform the system of the maximum number of SE supported.
# Minimum value is 1 has the UICC may always be used.
# eSE may not be used depending on phone configuration.
MAX_NUMBER_OF_SE=0x3

###############################################################################
# AID for Empty Select command
# If specified, this AID will be substituted when an Empty SELECT command is
# detected.  The first byte is the length of the AID.  Maximum length is 16.
AID_FOR_EMPTY_SELECT={08:A0:00:00:01:51:00:00:00}

###############################################################################
# Force tag polling for the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B |
#            NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ISO15693.
#
# Notable bits:
# NFA_TECHNOLOGY_MASK_A	        0x01    /* NFC Technology A             */
# NFA_TECHNOLOGY_MASK_B	        0x02    /* NFC Technology B             */
# NFA_TECHNOLOGY_MASK_F	        0x04    /* NFC Technology F             */
# NFA_TECHNOLOGY_MASK_V       	0x08    /* NFC Technology V             */
# NFA_TECHNOLOGY_MASK_KOVIO	    0x20    /* Proprietary Technology       */
# NFA_TECHNOLOGY_MASK_ACTIVE    0x40    /* NFC Technology ACM active mode */
POLLING_TECH_MASK=0x6F

###############################################################################
# Force P2P to only listen for the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ACTIVE.
P2P_LISTEN_TECH_MASK=0x45

###############################################################################
# When screen is turned OFF, specify the desired CE mode to the controller.
# 0: No card-emulation; DEFAULT
# 1: Screen-off card-emulation enabled
CE_ON_SCREEN_OFF_STATE=1

###############################################################################
# In Switch OFF mode (phone switched-off), specify the desired CE mode to
# the controller.
# 0: No card-emulation; DEFAULT
# 1: Switch-off card-emulation enabled
CE_ON_SWITCH_OFF_STATE=1

###############################################################################
# Choose the presence-check algorithm for type-4 tag.  If not defined,
# the default value is 1.
# 0  NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm
# 1  NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block
# 2  NFA_RW_PRES_CHK_RESET; Deactivate to Sleep, then re-activate
# 3  NFA_RW_PRES_CHK_RB_CH0; Type-4 tag protocol's ReadBinary command on channel 0
# 4  NFA_RW_PRES_CHK_RB_CH3; Type-4 tag protocol's ReadBinary command on channel 3
PRESENCE_CHECK_ALGORITHM=3

###############################################################################
# Name of the NCI HAL module to use
# If unset, falls back to nfc_nci.bcm2079x
NCI_HAL_MODULE="nfc_nci.st21nfc"

###############################################################################
# White list to be set at startup.
DEVICE_HOST_WHITE_LIST={2:c0}

###############################################################################
# When screen is turned off, specify the desired power state of the controller.
# 0: power-off-sleep state; DEFAULT
# 1: full-power state
# 2: screen-off card-emulation (CE4/CE3/CE1 modes are used)
SCREEN_OFF_POWER_STATE=1

###############################################################################
# Default Secure Element route id
DEFAULT_OFFHOST_ROUTE=0x81

###############################################################################
# Default Secure Element route id for F technology
DEFAULT_NFCF_ROUTE=0x0

###############################################################################
# AID_MATCHING constants
# AID_MATCHING_EXACT_ONLY 0x00
# AID_MATCHING_EXACT_OR_PREFIX 0x01
# AID_MATCHING_PREFIX_ONLY 0x02
AID_MATCHING_MODE=0x1

###############################################################################
# ST HAL log level
STNFC_HAL_LOGLEVEL=3
