/metrodroid

Read data from public transit cards using your NFC Android phone!

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

logo Metrodroid

Translation status Build Status

Direct APK download

Version: 2.9.43

View remaining balance, recent trips, and other info from contactless public transit cards using NFC on Android.

View the presentation of work undergone to support a number of Australian agencies' cards, given at linux.conf.au 2018, in the talk Tap on to reverse engineering.

Thanks to

Translated by

Thanks to those who have helped to make Metrodroid available in languages other than English:

Supported card protocols

Supported cards / agencies

Card / Agency Location Notes
Amiibo ๐ŸŒ worldwide ๐Ÿ†•
AT HOP ๐Ÿ‡ณ๐Ÿ‡ฟ Auckland, New Zealand ๐Ÿ†• ๐Ÿ†”
Beijing Municipal Card ๐Ÿ‡จ๐Ÿ‡ณ Beijing, China ๐Ÿ†•
bip! ๐Ÿ‡จ๐Ÿ‡ฑ Santiago de Chile, Chile ๐Ÿ†• ๐Ÿ” MFC
Bilhete รšnico ๐Ÿ‡ง๐Ÿ‡ท Sรฃo Paulo, Brazil ๐Ÿ” MFC
BUS-IT ๐Ÿ‡ณ๐Ÿ‡ฟ Greater Hamilton (Waikato), New Zealand ๐Ÿ†• ๐Ÿ” MFC
Carta Mobile ๐Ÿ‡ฎ๐Ÿ‡น Pisa, Italy ๐Ÿ†•
CharlieCard ๐Ÿ‡บ๐Ÿ‡ธ Boston, MA, USA ๐Ÿ†• ๐Ÿ” MFC
City Union ๐Ÿ‡จ๐Ÿ‡ณ Mainland China ๐Ÿ†•
Clipper ๐Ÿ‡บ๐Ÿ‡ธ San Francisco, CA, USA
Compass ๐Ÿ‡จ๐Ÿ‡ฆ Vancouver, BC, Canada ๐Ÿ†• 1๏ธโƒฃ
Crimea Trolleybus Crimea ๐Ÿ†• ๐Ÿ” MFC
Cubic Nextfare ๐ŸŒŽ many locations ๐Ÿ†• ๐Ÿ” MFC
EasyCard Taipei ๐Ÿ” MFC
Edy ๐Ÿ‡ฏ๐Ÿ‡ต Japan
Ekarta ๐Ÿ‡ท๐Ÿ‡บ Ekaterinburg, Russia ๐Ÿ†• ๐Ÿ” MFC
Electronic Barnaul ๐Ÿ‡ท๐Ÿ‡บ Barnaul, Russia ๐Ÿ†• ๐Ÿ” MFC
EMV ๐ŸŒ worldwide ๐Ÿ†•
Envibus ๐Ÿ‡ซ๐Ÿ‡ท Sophia Antipolis, France ๐Ÿ†•
ERG ๐ŸŒ many locations ๐Ÿ†• ๐Ÿ” MFC
EZ-Link ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore
Go card ๐Ÿ‡ฆ๐Ÿ‡บ Brisbane and South East Queensland, Australia ๐Ÿ†• ๐Ÿ” MFC
GoCard ๐Ÿ‡ณ๐Ÿ‡ฟ Otago, including Greater Dunedin and Queenstown, New Zealand ๐Ÿ†• MFC
Go-to card ๐Ÿ‡บ๐Ÿ‡ธ Minneapolis-St. Paul, MN, USA ๐Ÿ†• ๐Ÿ” MFC
Hafilat ๐Ÿ‡ฆ๐Ÿ‡ช Abu Dhabi, UAE ๐Ÿ†•
Hop Fastpass ๐Ÿ‡บ๐Ÿ‡ธ Portland, OR, USA ๐Ÿ†• ๐Ÿ†”
HSL, Matkakortti ๐Ÿ‡ซ๐Ÿ‡ฎ Finland
IstanbulKart ๐Ÿ‡น๐Ÿ‡ท Istanbul, Turkey ๐Ÿ†• ๐Ÿ†”
Kartu Multi Trip ๐Ÿ‡ฎ๐Ÿ‡ฉ Jakarta, Indonesia KMT
Kazan transport card ๐Ÿ‡ท๐Ÿ‡บ Kazan, Russia ๐Ÿ†• ๐Ÿ” MFC
Kiev Metro ๐Ÿ‡บ๐Ÿ‡ฆ Kiev, Ukraine ๐Ÿ†• ๐Ÿ” MFC
Kirov transport card ๐Ÿ‡ท๐Ÿ‡บ Kirov, Russia ๐Ÿ†• ๐Ÿ” MFC
KomuterLink ๐Ÿ‡ฒ๐Ÿ‡พ Malaysia ๐Ÿ†• ๐Ÿ” MFC
Krasnodar ETK ๐Ÿ‡ท๐Ÿ‡บ Krasnodar, Russia ๐Ÿ†• ๐Ÿ” MFC
Leap ๐Ÿ‡ฎ๐Ÿ‡ช Ireland ๐Ÿ†• ๐Ÿ”“
Lisboa Viva ๐Ÿ‡ต๐Ÿ‡น Lisbon, Portugal
Manly Fast Ferry ๐Ÿ‡ฆ๐Ÿ‡บ Sydney, NSW, Australia ๐Ÿ†• ๐Ÿ” MFC
Metrocard ๐Ÿ‡ฆ๐Ÿ‡บ Adelaide, SA, Australia ๐Ÿ†•
Metrocard ๐Ÿ‡ณ๐Ÿ‡ฟ Christchurch, New Zealand ๐Ÿ†• ๐Ÿ” MFC
Metromoney ๐Ÿ‡ฌ๐Ÿ‡ช Tbilisi, Georgia ๐Ÿ†• ๐Ÿ” MFC
Mobib ๐Ÿ‡ง๐Ÿ‡ช Brussels, Belgium ๐Ÿ†•
Myki ๐Ÿ‡ฆ๐Ÿ‡บ Melbourne (and surrounds), VIC, Australia ๐Ÿ†• ๐Ÿ†”
MyWay ๐Ÿ‡ฆ๐Ÿ‡บ Australian Capital Territory, Australia ๐Ÿ†• ๐Ÿ” MFC
Navigo ๐Ÿ‡ซ๐Ÿ‡ท Paris, France ๐Ÿ†•
NETS FlashPay ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore
Nol ๐Ÿ‡ฆ๐Ÿ‡ช Dubai, UAE ๐Ÿ†• ๐Ÿ†”
Octopus ๐Ÿ‡ญ๐Ÿ‡ฐ Hong Kong ๐Ÿ†•
Opal ๐Ÿ‡ฆ๐Ÿ‡บ Sydney (and surrounds), NSW, Australia ๐Ÿ†•
Opus ๐Ÿ‡จ๐Ÿ‡ฆ Quรฉbec, Canada ๐Ÿ†•
ORCA ๐Ÿ‡บ๐Ÿ‡ธ Seattle, WA, USA
Orenburg EKG ๐Ÿ‡ท๐Ÿ‡บ Orenburg, Russia ๐Ÿ†• ๐Ÿ” MFC
OรนRA ๐Ÿ‡ซ๐Ÿ‡ท Grenoble, France ๐Ÿ†•
OV-chipkaart ๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands ๐Ÿ” MFC
Oyster ๐Ÿ‡ฌ๐Ÿ‡ง London, United Kingdom ๐Ÿ†• ๐Ÿ” MFC
Penza transport card ๐Ÿ‡ท๐Ÿ‡บ Penza, Russia ๐Ÿ†• ๐Ÿ” MFC
Podorozhnik ๐Ÿ‡ท๐Ÿ‡บ Saint Petersburg, Russia ๐Ÿ†• ๐Ÿ” MFC
Rav-Kav ๐Ÿ‡ฎ๐Ÿ‡ฑ Israel ๐Ÿ†•
Rejsekort ๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark ๐Ÿ†• ๐Ÿ” MFC
RicaricaMi ๐Ÿ‡ฎ๐Ÿ‡น Milan, Italy ๐Ÿ†• ๐Ÿ” MFC
Samara ETK ๐Ÿ‡ท๐Ÿ‡บ Samara, Russia ๐Ÿ†• ๐Ÿ” MFC
Selecta ๐Ÿ‡ซ๐Ÿ‡ท France ๐Ÿ†•
Shenzhen Tong ๐Ÿ‡จ๐Ÿ‡ณ Shenzhen, Guangdong Province, China ๐Ÿ†•
Siticard ๐Ÿ‡ท๐Ÿ‡บ Nizhniy Novgorod, Russia ๐Ÿ†• ๐Ÿ” MFC
SLAccess ๐Ÿ‡ธ๐Ÿ‡ช Stockholm, Sweden ๐Ÿ†• ๐Ÿ” MFC
Smartride ๐Ÿ‡ณ๐Ÿ‡ฟ Rotorua, New Zealand ๐Ÿ†• MFC
SmartRider ๐Ÿ‡ฆ๐Ÿ‡บ Western Australia, Australia ๐Ÿ†• ๐Ÿ” MFC
Snapper ๐Ÿ‡ณ๐Ÿ‡ฟ Wellington, New Zealand ๐Ÿ†•
Strelka ๐Ÿ‡ท๐Ÿ‡บ Moscow, Russia ๐Ÿ” ๐Ÿ†” MFC
Strizh ๐Ÿ‡ท๐Ÿ‡บ Izhevsk, Russia ๐Ÿ†• ๐Ÿ” MFC
Suica, ICOCA, PASMO ๐Ÿ‡ฏ๐Ÿ‡ต Japan
SunCard ๐Ÿ‡บ๐Ÿ‡ธ Orlando, FL, USA ๐Ÿ†• ๐Ÿ” ๐Ÿ†” MFC
TaM ๐Ÿ‡ซ๐Ÿ‡ท Montpellier, France ๐Ÿ†•
Tartu Bus ๐Ÿ‡ช๐Ÿ‡ช Tartu, Estonia ๐Ÿ†• ๐Ÿ†” MFC
T-Money ๐Ÿ‡ฐ๐Ÿ‡ท South Korea ๐Ÿ†•
T-Union ๐Ÿ‡จ๐Ÿ‡ณ Mainland China ๐Ÿ†•
TransGironde ๐Ÿ‡ซ๐Ÿ‡ท Gironde, France ๐Ÿ†•
Transit Access Pass ๐Ÿ‡บ๐Ÿ‡ธ Los Angeles, CA, USA ๐Ÿ†• ๐Ÿ” MFC
Troika ๐Ÿ‡ท๐Ÿ‡บ Moscow, Russia ๐Ÿ†• ๐Ÿ” MFC
Umarsh ๐Ÿ‡ท๐Ÿ‡บ multiple cities in Russia ๐Ÿ†• ๐Ÿ” MFC
Ventra ๐Ÿ‡บ๐Ÿ‡ธ Chicago, IL, USA ๐Ÿ†• 1๏ธโƒฃ
Warszawska Karta Miejska ๐Ÿ‡ต๐Ÿ‡ฑ Warsaw, Poland ๐Ÿ†• ๐Ÿ†” ๐Ÿ” MFC
Wuhan Tong ๐Ÿ‡จ๐Ÿ‡ณ Wuhan, Hubei Province, China ๐Ÿ†•
Yaroslavl ETK ๐Ÿ‡ท๐Ÿ‡บ Yaroslavl, Russia ๐Ÿ†• ๐Ÿ” MFC
Yoshkar-Ola ๐Ÿ‡ท๐Ÿ‡บ Yoshkar-Ola, Russia ๐Ÿ†• ๐Ÿ” MFC
Zolotaya Korona ๐Ÿ‡ท๐Ÿ‡บ multiple cities in Russia ๐Ÿ†• ๐Ÿ” MFC
Note Meaning
๐Ÿ†• New in Metrodroid.
๐Ÿ” Encryption keys required to read this card.
๐Ÿ”“ Encryption keys are downloaded from the operator.
๐Ÿ‡ธ๐Ÿ‡ฌ CEPAS cards (Singapore) are not compatible with all devices (ISO 14443-B).
MFC MIFARE Classic card; requires NXP NFC chipset in your device.
๐Ÿ†” Only the card number can be read.
KMT Only new FeliCa-based cards can be read.
1๏ธโƒฃ Only single-use tickets can be read.

This project will only read data from the card itself, without having to connect to the agency's back-office systems. In some cases, limited data is available, so balance information and trip history might not be available.

Note: The Leap card reader connects to Transport for Ireland's server for challenge-response authentication with the card. The data is otherwise interpreted locally, and connectivity is disabled by default.

Supported devices

Metrodroid requires an Android device running 4.1 or later, with NFC support.

Some devices do not support MIFARE Classic. MIFARE Classic is not an NFC-compliant card format, so they can only be read on devices with NXP chipsets.

License and copyright

Copyright ยฉ 2015โ€“2019 Michael Farrell

Copyright ยฉ 2011โ€“2013 Eric Butler

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

This program contains Leaflet, a JavaScript mapping library, licensed under the BSD license.

This software and it's authors are not associated with any public transit agency. Pictures of supported cards, including their logos, are included with this software package for the purposes of identifying cards.

Building / hacking on this software

  1. Clone the repository including submodules:

    $ git clone --recursive https://github.com/metrodroid/metrodroid.git
    

    If you get an error from Gradle about :material-design-icons not being available, then your clone doesn't have the submodules.

    ZIP source code downloads from GitHub's web interface will not work!

  2. Import the directory into Android Studio.

    Android Studio will prompt you to install the appropriate SDK version, build tools, and Gradle.