/*********************** NEXGO tech team 20260522 modify(SDK 3.08.014) *********************************/
1. EMV EmvHandler2 support new card brand Interac
2. Fix JCB Contactless API EmvHandler2.getEmvContactlessCardType failed issue
3. EMV add DF8129 tag, app can read DF8129 with getTlv API
4. Fix the issue where Scanner2 cannot automatically focus when scanning codes for N96
5. Optimize the configuration and processing of the front and rear cameras of Scanner 2


/*********************** NEXGO tech team 20260415 modify(SDK 3.08.013) *********************************/
1.	Platform add API enableIccPsamPPSControl to control enable or disable PPS
2.	Platform add API enablePinpadBeep to control enable or disable beep during pin enter
3.	GPIO add openGpio and closeGpio for UN10
4.	Cpace kernel add API to decide the pin enter is processed by app or by kernel:
EmvTransConfigurationEntity add CpaceTransDataEntity.isKernelTriggerPinEnter
5.	Cpace contactless refund return AAC with online process instead of decline
6.	Optimize EMV contactless card process with K110
7.	Optimize platform usage for PSS to avoid the restriction of system broadcast


/*********************** NEXGO tech team 20260109 modify(SDK 3.08.012) *********************************/
1.	Fix CPACE Kernel TAG 9F37 RRP issue
2.	EMV add API getPureKernelCapab
3.	Optimize the ExpressPay kernel process. When CDA fails and 9F4B verification fails, the transaction is rejected
4.	JCB support onRemoveCard callback
5.	Poweroff RF contactless read during onRemoveCard callback
6.	DPAS support config contactless limit in onTransInitBeforeGPO
7.	SDK native so library meet the requirement for uploading to Google Play Store
8.	GPIO API support N6202 new base
9.	N86 DPAS kernel version update to XGD-DPAS V2.1
10.	Optimize the initialization of the work key index to prevent false detection of work keys


/*********************** NEXGO tech team 20251011 modify(SDK 3.08.011) *********************************/
1. Compatible with P300, P300MINI, EF20, N96P
2. SerialPortDriver add detail description for portNum with different models and base.
3. Compatible for N92(with second LCD) print
4. Printer add API setInvert(boolean invert); it works for text print only
Printer LineOptionEntity add setInvert.
5. UsbSerial add API write(byte[] data, int dataLen, int timeout) which is integrated with KD69
6. Pinpad add DUKPT AES APIs
	setDukptAlgorithmMode
	setDukptAESGenerateKeyType
7. Pinpad add API dukptKsnIncreaseV2 can return the KSN increase status
8. Pinpad support AES-MAC for N96
9. Blind PIN support play .mp3 audio file
10. ExtendLcd add big FONT
11. ExtendLcd add API isExtendLcdExist to check if second LCD exist
12. ExtendLcd add APIs showBitmap(Bitmap bitmap) and getExtendLcdSize()
13. MdbSerialPortDriver add API for Capturing MDB logs
14. MdbSerialPortDriver add API mdbSetACKMode, application can set the poll ACK is reponsed by application or by MDB kernel
15. EmvHandler2 add API configPrivateTag to get private tags with getTlv method
16. EmvHandler2 add API getLastApduCommand to get the last EMV APDU command
17. EmvTransConfigurationEntity add setTerminalDecisionForFirstGAC to config first GAC terminal decision. See EmvContactTerminalDecisionForFirstGAC definition.
18. Pure kernel transfer errorcode ONDEVICECVMREQUESTED to Emv_Plz_See_Phone
19. Platform add APIs isSupportBlindPinPad and isSupportRkl
20. Update N86 EMV L2 kernel version to XGD-EMVCT Version V4.4
21. Optimize EMV contact script processing



/*********************** NEXGO tech team 20250421 modify(SDK 3.08.010) *********************************/
1.	Added beep, setBeepVolume, inputText interfaces in ExtPinPad
2.	Added dukpt decrypted interface
3.	Added mifare sam class
4.	Pinpad add getBlindPinPadCapability to check device support Blind pinpad or not
5.	Blind Pinpad support customized layout for separating “cancel” button and “clear” button
6.	Pinpad encryptByMKey support AES encryption
7.	Optimize TR31 API to support inject work key
8.	Update EMV L1/L2 kernel version
9.	EMV add setPayPassForceEmvMode to for paypass run EMV mode.
10.	EMV add setPureImplOptions, setPureMTOL, contactlessConfigKernelId APIs
11.	Cardreader add setSearchReader, getRfDriverVersion, getIccDriverVersion APIs
12.	Platform Add enableDataRoaming, enableMobileData, executeGeneralMethod APIs
13. EMV add  onSetPinInputResponseV2 to identify the pin enter status
14.	Add P2PE API;currently only works for N96
Pinpad add below APIs:
isP2PEMode, isP2PEAppInWhitelist, inputOnlinePinP2PE, manualInput, setManualEntryTypeMode, setManualInputCardLayout, P2PEGetSustomizedCipherText

Cardreader add below APIs:
SetP2PEConfiguration

Emvhandler2 add below APIs:
P2PEGetSustomizedCipherText


/*********************** NEXGO tech team 20250321 modify(SDK 3.08.009) *********************************/
1.	Update extend lcd interface



/*********************** NEXGO tech team 20241216 modify(SDK 3.08.008) *********************************/
1.	Add initPlatform interface in Platform, use for getDeviceEngine and getPlatform at the same time, then call interfaces in Platform immediately
2.	Change the setSystemClock interface into Platform
3.	Updated CardEmulationHanlder interfaces



/*********************** NEXGO tech team 20250314 modify(SDK 3.08.007) *********************************/
1.	Compatible with N86 Pro, N6 Pro, N6 Lite
2.	Support N92 ExtendLcd(second display screen)
3.	Add API: CardEmulationHandler, support models: N86 Pro, N6 Pro, N6 Lite, N92


/*********************** NEXGO tech team 20241216 modify(SDK 3.08.006) *********************************/
1. Pinpad injectTr31 support DUKPT AES
2. Add N92 EMV kernel version
3. Update EMV L1/L2 kernel version
4. Optimize EMV response code process
5. Optimize EMV onFinish error code
6. Fix CPACE reselection application initialization issue
7. Fix CPACE issue when GPO not return AFL

/*********************** NEXGO tech team 20241030 modify(SDK 3.08.004) *********************************/
1. EMV contactless PPSE return Cardblock error incase card return 6A81
2. EMVSupport Extended Selection
3. EMV support read TAG 87，5F2D，9F29, BF0C
4. Fix EMV auth code
5. EMV Add API to check card type is Physical card or mobile phone
6. Optimize expresspay response code process
7. PinPad add "dukptDeleteKey", only apply to N96
8. Add CT20 and N80 emv kernel version
9. Platfrom add forceStopApp stop application
10. Platfrom add grantLogPermission get log permission
11. Pinpad add injectTr31KeyWithTMK


/*********************** NEXGO tech team 20240613 modify(SDK 3.08.003) *********************************/
1. EMV add Emv_CTLS_TransTryAgain，Emv_CTLS_CardInException error code


/*********************** NEXGO tech team 20240410 modify(SDK 3.08.002) *********************************/
1. DUKPT support AES algorithm
2. Optimize EMV random number processing
3. EMV second GAC add paramater "EmvTerminalDecisionForSecondGAC" ,to force TC regardless of host response code
4. Add API contactlessConfigKernelId to assign EMV contactless flow if card return kernel ID
5. Optimize K110 display text and image API
6. DPAS add setDpasVersion to support DPAS 2.0 if needed
7. Pinpad add injectKBPK , injectTr31Key to support TR31 key injection.
8. Optimize DPAS MSD



/*********************** NEXGO tech team 20231122 modify(SDK 3.07.002) *********************************/
1. DPAS support read 9F6E tag
2. MADA support read 9F19,9F24,9F25,9F52 and DF4B tags


/*********************** NEXGO tech team 20231016 modify(SDK 3.07.001) *********************************/
SDK update:
1. Fix compatible with MasterCard tag BF0C during final application selection
2. Add setNetworkStatusListener in Platform
3. Compatible with N96, N82, N6 android 10
4. Fix the issue of Null applabel in the multi application selection list(onSelApp)
5. Fix the issue of EMV country code and currency code
6. Add Paypass new aid in old API EmvHandler
7. UN20 Add GPIO API
8. Add rfu Member variable in CandidateAppInfoEntity, it is used for returning extro EMV tags such as 42, 5F55 during the multi application selection list(onSelApp) for EMV contact. Application can select specify application by these tags.
9. Fix Scanner1 init failed issue
10. Scanner1 add “hideFrame”(set in Bundle) to hide the Preview box during scan
11. Scanner1 add List<SymbolEnum> in ScannerCfgEntity to support the specify Codes
12. N96 add DECORATIVE_LIGHT
13. Optimize EMV contactless refund flow
14. Emvhandler2 add initReader to support exteral reader to read contactless card
15. Add ExtPinpad class to support use external pinpad inject key, encryption , pin enter or calculate PinBlock
16. Optimize CBC mode iv issue with new model（N82/new N6）
17. Optimize pure kernel CDCVM
18. Fix CDA issue of DPAS
19. Paywave add API skip Process Restrict
20. UN20 MdbSerialPortDriver support Master mode and Slave mode read and write at same time
21. DeviceInfo add secure chip Core version and Boot version

note:
Points 10 and 11 need latest firmware to support.

Sample code:
1. add sample code for controlling LED for N96
2. add sample code for adding gray level
3. add sample code for external pinpad(K110)
4. add sample code for controlling beep mode in platform
5. add sample code for showing emv tags and external reader(K110) for reading contactless card
6. Update build.gradle versions

/*********************** NEXGO tech team 20221108 modify(SDK 3.0.6) *********************************/
SDK update:
1. SDK version update to v3.06.001_20221108
2. Fix MIR card issue 
3. Add Capce Kernel
4. Paypass support Tag 9F0A
5. Paywave and Pure contctless refund kernel return Online Approve instead of Offline Approve if terminal request AAC
6. Optimize print function
7.  Platfrom adds switchMobileDataNetwork, switch SIM card
8.  JCB contactless support PIN bypass
9.  Fix EMV cancel issue.
10. Aid Maximum number change from 50 to 100 compatible
11. Update MDB API
12. Other issue fixed

/*********************** NEXGO tech team 20220803 modify(SDK 3.0.5) *********************************/
SDK update:
1. SDK version update to v3.05.001_20220803
2. Compatible with UN20: 
    Add PSAM4 for UN20
    Add MDB MdbSerialPortDriver and MdbLEDDriver
    Add MDB cashless protocol SDK ,sample code, ducoment
3. Add new API NTAGCardHandler to process the NTAG card
4. Support extended APDU(Expand to 2K) for CPU card
5. Fix type 9C issue of RUPAY card
6. Add EMV error code: Emv_CTLS_EndApplication and Emv_CTLS_Torn
7. Pinpad add inputPinExternal to support External Pinpad to enter the PIN
8. Fix TVR(online pin set) for DPAS
9. Add support type B cards :CTS512 and  SRT512(only N86)
10. Compatible with External Pinpad K110
11. Add setRupayForceOnline for Rupay
12. BeepVolumeModeEnum add BEEP_MODE_SYSTEM_VOLUME. Beep sound following system volume
13. Optimize the printing of Qr-code and Bar-code
14. Platform add showNavigationBar and hideNavigationBar API
15. Add EMV contactless L3 Certificate Guide document.
16. Other issue fixed

Sample code:
1. add sample code for master paypass process Tag 9F1D
2. add sample code for iso8583 and spdh 
3. add sample code for MDB led and MDB serial port
4. add sample code for platform



/*********************** NEXGO tech team 20211012 modify(SDK 3.0.4) *********************************/
SDK update:
1. SDK version update to v3.04.001_20211014
2. Add new API UsbSerial
3. Fix the Paypass 9F7B tag process issue for emvHandler
4. Optimize the process with card power on and power off 
5. Platform adds shutDownDevice , enableUsbCdc, disableUsbCdc, getUsbCdcStatus, executeGeneralMethod
6. Update the EMV L1 , L2 version code in emvKernelVersionInfo
7. Fix get device model for N5 with getDeviceInfo method
8. Add get firmWareFullVersion in getDeviceInfo
9. Integrate NexgoSystemSdk library
10.Other issue fixed


/*********************** NEXGO tech team 20210412 modify(SDK 3.0.3) *********************************/
SDK update:
1. SDK version update to v3.03.001_20210412
2. Add arm64 library for N86 and P200.
3. Add platform object, includes API Install, Uninstall, Reboot, UpdateFirmware ..etc
4. Emvhandler2 ,EMV contactless add read application data mode
5. Emvhandler1 add onAfterFinalSelectedApp callback for MIR,RUPAY
6. Add API dukptCipherKeyInject, inject the cipher BDK/IPEK key
7. other issue fixed 


/*********************** NEXGO tech team 20201028 modify(SDK 3.0.2) *********************************/
SDK update:
1. SDK version update to v3.02.001_20201028
2. Optimize EMV kernel retcode
3. Optimize EMV flow
3. N86 production support
4. add MB contactless kernel
5. other issue fixed 



/*********************** NEXGO tech team 20200713 modify(SDK 3.0.1) *********************************/
SDK update:
1. SDK version update 
2. Optimize Pure card Flow
3. Add emvhandler2 API, recommend use new EMV API
4. ADD API get EMV L1,L2 kernel version
5. other issue fixed 

Demo code update:
1. Add EmvActivity2 to implement how to process EMV flow(use new emvhandler2 API)
2. Pin len support 12 digital


/*********************** NEXGO tech team 20200511 modify(SDK 2.3.3) *********************************/
SDK update:
1. SDK version update 
2. Optimize MAC algorithm
3. Fix paypass RRP issue
4. Optimize emv flow 
5. other issue fixed


Demo code update:
1. Add how to process with the EMV return code.

/*********************** NEXGO tech team 20191220 modify(SDK 2.3.1) *********************************/
SDK update:
1. SDK version update 
2. Add scanner 2 for customized UI scan
3. Add Mifare Ultralight API
4. Add DRL for paywave and amex
5. fixed Pure card issue
6. other issue fixed


Demo code update:
1. Add how to process with the EMV return code.

/*********************** NEXGO tech team 20190620 modify(SDK 2.2.1) *********************************/
SDK update:
1. SDK version update v2.2.1_20190527
2. Fix if script execute failed, but transaction return approve
3. EMV add new function for Pure kernel
4. Add new API for set pure kernel Aid and Capk
5. Add new API for set pure enable aid select first 
6. Fix custom layout pinpad issue
7. Paypass add RRP function
8. Add new API for get signature statue . 
9. Add new API for security 

Demo code update:
1. Add how to process with the EMV return code.


/*********************** NEXGO tech team 20190614 modify(SDK 2.1.1) *********************************/
 
1.  improve the performance and other bug fixed


/*********************** NEXGO tech team 20190415 modify(SDK 2.1.1) *********************************/
 
1. Fixed EMV setTlv method
2. Fixed the TVR issue of the AMEX card
3. Fixed JCB card issue
5. Fixed TLV parse method
4. Other issue fixed



/*********************** NEXGO tech team 20190319 modify(SDK 2.1.1) *********************************/
 
add desfire API 



/*********************** NEXGO tech team 20190124 modify(SDK 2.1.1) *********************************/
 
2.1.1_20190111
1. Fixed mag-stripe reader issue
2. Fixed emv onRequestAmount method
3. Other fix

/*********************** NEXGO tech team 20181030 modify(SDK 2.0.9) *********************************/
1.  document update :
	1. update SDK version to 2.0.9
	
	2. Change SDK package format: 
		jar->aar; 
		remove armeabi(include libnexgo_emvjni.so, libnexgo_gencode.so, libnexgo_sdkemvjni.so)
		
	3. modify how to add the aar package into the project
	
	4. CardReader add Felica method, if support Felica card 
	    void setSupportFelica(boolean var1);
		void setFelicaSystemCode(byte[] var1);
		void setFelicaRequestCode(byte var1);

	5. CardReader add Read Mag Stripe original Track data method:
		void setMagReaderRawData(boolean var1);
		
	6. Delete methods loadKeyByCom and cancelLoadKey
	
	7. OnEmvProcessListener add callback: 
		void onPrompt(PromptEnum var1);
		void onRemoveCard();
		
	8. EmvHandler add method: 
		void onSetRemoveCardResponse();
		void onSetPromptResponse(boolean var1);
		
	9. implement JCB contactless function
	
	10. fix AMEX contactless issue.
	
	11. other update
	

2.  sample code update:
	1.	change the SDK package format, use aar package
		config app.build to load the aar package
		
	2.	NexgoApplication modify :
		deviceEngine = APIProxy.getDeviceEngine(this);
		
	3.  getScanner method remove the parameter Context
		final Scanner scanner = deviceEngine.getScanner();
	
	4.  EmvActivity.java implement methods onRemoveCard and onPrompt
		
	5.  Add iso8583 jar, and spdh jar. 
		Add iso8583 and spdh demo code.

		
/*********************** NEXGO tech team 20180530 added(SDK 2.0.7) *********************************/
1.  document update :
	1.	printer , add API "appendPrnStr" 
		public int appendPrnStr(String text,int fontsize,AlignEnum align,  LineOptionEntity ops);

	2.	printer, add API "appendQRcode" to print QR code
		public int appendQRcode(String content,int height, int version, int level,AlignEnum align);

	3.	pinpad , add API "setPinpadLayout", to set the pinpad layout by the application
		public byte[] setPinpadLayout(PinpadLayoutEntity pinpadLayout);

	4.	card reader ,add API "open" to open specified slot; add API "close" to close specified slot.
		public void open(CardSlotTypeEnum cardSlotType);
		public void close(CardSlotTypeEnum cardSlotType);

	5.	CPU card, add API "exchangeAPDUCmd" :exchange APDU commands
		public byte[] exchangeAPDUCmd(byte[] cmd);

	6.	EMV, add API "setAidParaList" :set EMV aid ; add API "setCAPKList" :set EMV capk
		public int setAidParaList(List<AidEntity> aidParaTlvList);
		public int setCAPKList(List<CapkEntity> capkTlvList);

	7.	EMV , add API "onReadCardAgain" : EmvProcess executing the method, Callback the second read card .(When host response the script with contactless EMV transaction.) The application should re-search contactless card, then call
		EmvHandler.onSetReadCardAgainResponse to notify EMV continue procress.
		public  void onReadCardAgain();

	8.	EMV , add API "getEmvContactlessMode" : get EMV contactless flow mode, EMV mode or MSD mode
		public EmvModeEnum getEmvContactlessMode();

	9.	EMV, add API "getTlvByTags"
		public String getTlvByTags(String[] tags);

	10.	M1 card , add API "readblockValue" and "writeblock"
		public int readblockValue(Blockentity entity);
		public int writeblock(Blockentity entity);

	11.	Memory card add API 
		public  int  reset(CardTypeEnum cardType);
		public  byte[]  read(ReadEntity read);  public  int  write(WriteEntity write);
		public  int earse(EraseEntity erase);
		public  int  verify(VerifyEntity verify);  public  int  readEC(ReadECEntity readEC);
		public  int  updateEC(UpdateECEntity updateEC);
		public  void  powerOff();

	12.	card reader , add callback API "onSwipeIncorrect"  and "onMultipleCards"
		public  void onSwipeIncorrect();
		public  void onMultipleCards();

	13.	SdkResult add value:
		public final static int Emv_Plz_See_Phone = EmvHandler_Base_Error - 27;
		public final static int Emv_Terminate = EmvHandler_Base_Error - 28;

2.  simple code update:
	1.	add demo code for operating CPU ,M1, PSAM card
	2.	fix setPinpadLayout function
	3.  add set AID and CAPK demo code

