New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fail to read some Singapore cards (EZLink, NETS Flashpay) #366
Comments
Please provide the missing details from the About screen. I am unable to troubleshoot your issue without this information. |
@micolous Thanks for the attention. Do you need to see the log file? I tried to use Farebot to read those cards and the app can read and show the balance and/or routes but it crashes many times |
Yup, the log file would also help. Thanks! Can you read any card successfully (ie: cards other than the ones you mentioned)? Are you running any application that reads NFC cards from the background? (eg: Tasker) Do you have a case on the phone? Does the issue continue if you remove it from the case? What I'm thinking at the moment: The Octopus and KMT issues might be #41 (FeliCa cards seem to drop out more than others). I've accidentally broken EZ-Link in the past -- I don't have one of these cards, and its CEPAS implementation doesn't support ISO7816 application selection properly (so I have to try to check for this first). As you're building from |
FYI, I can't find any log from you in my emails. However, @phcoder and I have recently acquired some Singapore CEPAS cards (of different types), so we've had more opportunities to test this. I'm currently working from the merge of #370 with the rewrite of FeliCa and KS X 6924 support patched on it, but for CEPAS this shouldn't matter. Both of these CEPAS cards appear to be ISO 14B cards (I didn't realise this earlier).
I see similar behaviour on a Nexus 5X and a Pixel 1. I can't even make NXP TagInfo read the NETS FlashPay card, even when it is in "Reader Mode". Both cards are readable by a Proxmark3. A quick glance at the differences using
The whole process then restarts with another Compared to a working EZ-Link card:
Both of these traces are from a Nexus 5X. Based on what I can see:
This is a combination of Android bugs and card bugs -- which I don't think we can do anything about. I've been talking with @phcoder, and he also sees similar card reading failures on the Singapore Tourist Pass (also CEPAS and ISO 14443B). (Edited: I didn't notice at first, but the AID used for the NDEF application changed on the first and second attempts -- I updated the trace notes accordingly.) |
Also, I found this bug reported to Samsung, it appears their Broadcom NFC driver has a fair bit more debugging info, and the thread specifically mentions Singapore cards. The errors they're getting there in the NDEF check are consistent behaviour with CEPAS cards. I also found this other report which seems to indicate it may be a regression in Android 8.0, but given the traces, it doesn't appear that it's even getting to |
I've tried the NETS Flashpay card again with NXP TagInfo, but with Reader Mode, NDEF detection off, and force-restarted the app. TagInfo just repeatedly detects the card again and again...
On the traces, it still looks like there's no response to the command after
(Communications continue with different variations, and then repeat.) |
I've also found a plastic EZ-Link card which appears to have the same symptoms this NETS Flashpay card. It appears that this is a bug in the cards themselves. |
Please read the guidelines for contributions (CONTRIBUTING.md) before submitting new issues to this tracker. Failure to adhere to these guidelines may cause offense.
Unsupported card requests
If the card is not presently supported by Metrodroid:
Description of the issue
Singapore EZLink, Hong Kong Octopus and Indonesia KMT cards cannot be read but all of them can be read using Farebot.
For card-specific issues
For all issues reading a currently supported card format (eg: balance shown is incorrect), please export a card dump from Metrodroid and email it to me privately.
Steps to reproduce
Expected behaviour
It shows balance and/or (routes)
Actual behaviour
Data dump function is called but none is shown
Workarounds (if any)
Logs
Generate a bug report ZIP using the instructions here: https://developer.android.com/studio/debug/bug-report.html
Please do not attach it to this issue. You may be asked for a copy later via private email.
Details from About screen:
FYI: all those cards can be read using Farebot though the app is not stable and crashes many times until it can read the cards
The text was updated successfully, but these errors were encountered: