fix or jcb

This commit is contained in:
moon 2026-06-02 13:58:44 +06:30
parent 2eac171a6c
commit 7145000175
3 changed files with 45 additions and 13 deletions

View File

@ -560,6 +560,27 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
@Override @Override
public void onTransInitBeforeGPO() { public void onTransInitBeforeGPO() {
byte[] tag9F15 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x15}, EmvDataSourceEnum.FROM_KERNEL);
Log.d(TAG, "tag9F15 (MCC)-->" + ByteUtils.byteArray2HexString(tag9F15));
if (tag9F15 != null) {
emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F15"), ByteUtils.hexString2ByteArray("0000"));
tag9F15 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x15}, EmvDataSourceEnum.FROM_KERNEL);
Log.d(TAG, "after tag9F15-->" + ByteUtils.byteArray2HexString(tag9F15));
} else {
Log.d(TAG, "tag9F15 not found in kernel");
}
byte[] tag9F01 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x01}, EmvDataSourceEnum.FROM_KERNEL);
Log.d(TAG, "tag9F01-->" + ByteUtils.byteArray2HexString(tag9F15));
if (tag9F01 != null) {
emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F01"), ByteUtils.hexString2ByteArray("000000000000"));
tag9F01 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x01}, EmvDataSourceEnum.FROM_KERNEL);
Log.d(TAG, "after tag9F01-->" + ByteUtils.byteArray2HexString(tag9F01));
} else {
Log.d(TAG, "tag9F01 not found in kernel");
}
if (mMPUContactlessConfigured) { if (mMPUContactlessConfigured) {
LogUtil.d(TAG, "onTransInitBeforeGPO: skipping — MPU contactless already configured"); LogUtil.d(TAG, "onTransInitBeforeGPO: skipping — MPU contactless already configured");
@ -1018,7 +1039,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
"9F2A", "9F26", "9F27", "9F10", "9F37", "9F36", "95", "9A", "9C", "9F02", "5F2A", "5F34", "82", "9F1A", //field 55 tag "9F2A", "9F26", "9F27", "9F10", "9F37", "9F36", "95", "9A", "9C", "9F02", "5F2A", "5F34", "82", "9F1A", //field 55 tag
"9F03", "9F33", "4F", "9F08", "9F34", "9F35", "9F1E", "9F52","9F53", "84", "9F09", "9F41", //field55 tag "9F03", "9F33", "4F", "9F08", "9F34", "9F35", "9F1E", "9F52","9F53", "84", "9F09", "9F41", //field55 tag
"9F5B", "8A", "9B", "9F6E", "9F7C", "9F4C", "50", "9F12", "DF01", "9F63", "5F20", "9F0B", "9F42", "9F5B", "8A", "9B", "9F6E", "9F7C", "9F4C", "50", "9F12", "DF01", "9F63", "5F20", "9F0B", "9F42",
"FF31", "9F7B", "8E","9F15" "FF31", "9F7B", "8E","9F15", "9F01", "9F1B"
}; };
try { try {
@ -1416,6 +1437,17 @@ private void configJcbContactlessParameter() {
Log.d("nexgo", "tag9F53->:" + ByteUtils.byteArray2HexString(tag9F53)); Log.d("nexgo", "tag9F53->:" + ByteUtils.byteArray2HexString(tag9F53));
} }
byte[] tag9F15 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x15}, EmvDataSourceEnum.FROM_KERNEL);
Log.d(TAG, "tag9F15 (MCC)-->" + ByteUtils.byteArray2HexString(tag9F15));
if (tag9F15 != null) {
emvHandler.setTlv(ByteUtils.hexString2ByteArray("9F15"), ByteUtils.hexString2ByteArray("0000"));
tag9F15 = emvHandler.getTlv(new byte[]{(byte) 0x9F, (byte) 0x15}, EmvDataSourceEnum.FROM_KERNEL);
Log.d(TAG, "after tag9F15-->" + ByteUtils.byteArray2HexString(tag9F15));
} else {
Log.d(TAG, "tag9F15 not found in kernel");
}
} }
private byte setBitValue(byte originalByte, int bitPosition, byte bitValue) { private byte setBitValue(byte originalByte, int bitPosition, byte bitValue) {

View File

@ -533,7 +533,7 @@
"aidEnable": true, "aidEnable": true,
"aid": "A00000006510", "aid": "A00000006510",
"cardScheme": "JCB", "cardScheme": "JCB",
"applicationVersion": "0030", "applicationVersion": "0200",
"emvDDOL": "9F3704", "emvDDOL": "9F3704",
"emvTDOL": "9F3704", "emvTDOL": "9F3704",
"partialAidSelection": false, "partialAidSelection": false,
@ -556,7 +556,7 @@
"aidEnable": true, "aidEnable": true,
"aid": "A0000000651010", "aid": "A0000000651010",
"cardScheme": "JCB", "cardScheme": "JCB",
"applicationVersion": "0030", "applicationVersion": "0200",
"emvDDOL": "9F3704", "emvDDOL": "9F3704",
"emvTDOL": "9F3704", "emvTDOL": "9F3704",
"partialAidSelection": false, "partialAidSelection": false,
@ -579,7 +579,7 @@
"aidEnable": true, "aidEnable": true,
"aid": "A0000001570040", "aid": "A0000001570040",
"cardScheme": "JCB", "cardScheme": "JCB",
"applicationVersion": "0030", "applicationVersion": "0200",
"emvDDOL": "9F3704", "emvDDOL": "9F3704",
"emvTDOL": "9F3704", "emvTDOL": "9F3704",
"partialAidSelection": false, "partialAidSelection": false,

View File

@ -593,15 +593,15 @@ public class KernelDataProcessUtil {
// /* // /*
// * merchant category code // * merchant category code
// * */ // * */
if (tlvMap.get("9F52") != null) { // if (tlvMap.get("9F52") != null) {
f55DataStr += "9F5201" + tlvMap.get("9F52").getValue(); // f55DataStr += "9F5201" + tlvMap.get("9F52").getValue();
f55WaveDataStr += "9F5201" + tlvMap.get("9F52").getValue(); // f55WaveDataStr += "9F5201" + tlvMap.get("9F52").getValue();
} // }
//
if (tlvMap.get("9F53") != null) { // if (tlvMap.get("9F53") != null) {
f55DataStr += "9F5301" + tlvMap.get("9F53").getValue(); // f55DataStr += "9F5301" + tlvMap.get("9F53").getValue();
f55WaveDataStr += "9F5301" + tlvMap.get("9F53").getValue(); // f55WaveDataStr += "9F5301" + tlvMap.get("9F53").getValue();
} // }
// else { // else {
// f55DataStr += "9F530150"; // f55DataStr += "9F530150";
// } // }