Skip to content

phcoder/metrodroid

 
 

Repository files navigation

Translation status Build Status

Direct APK download

Version: 2.9.38

View your remaining balance, recent trips, and other information from contactless public transit cards using your NFC-enabled Android device!

I presented Metrodroid and the work I did on supporting a number of Australian agencies' cards at linux.conf.au 2018, in my 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][22]:

Supported card protocols

Supported cards / agencies

Card / Agency Location Notes
AT HOP 🇳🇿 Auckland, New Zealand 🆕 123
Beijing Municipal Card 🇨🇳 Beijing, China 🆕
Bilhete Único 🇧🇷 São Paulo, Brazil 🔐 MFC
CharlieCard 🇺🇸 Boston, MA, USA 🆕 🔐 MFC
City Union 🇨🇳 Mainland China 🆕
Clipper 🇺🇸 San Francisco, CA, USA
Compass 🇨🇦 Vancouver, BC, Canada 🆕 SINGLE
Cubic Nextfare 🌎 many locations 🆕 🔐 MFC
EasyCard 🇹🇼 Taipei, Taiwan 🔐 MFC
Edy 🇯🇵 Japan
Envibus 🇫🇷 Sophia Antipolis, France 🆕
ERG 🌏 many locations 🆕 🔐 MFC
EZ-Link 🇸🇬 Singapore
Go card 🇦🇺 Brisbane and South East Queensland, Australia 🆕 🔐 MFC
Go-to card 🇺🇸 Minneapolis-St. Paul, MN, USA 🆕 🔐 MFC
Hop Fastpass 🇺🇸 Portland, OR, USA 🆕 123
HSL, Matkakortti 🇫🇮 Finland
IstanbulKart 🇹🇷 Istanbul, Turkey 🆕 123
Kartu Multi Trip 🇮🇩 Jakarta, Indonesia KMT
Kiev Metro 🇺🇦 Kiev, Ukraine 🆕 🔐 MFC
Krasnodar 🇷🇺 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
Mobib 🇧🇪 Brussels, Belgium 🆕
Myki 🇦🇺 Melbourne (and surrounds), VIC, Australia 🆕 123
MyWay 🇦🇺 Australian Capital Territory, Australia 🆕 🔐 MFC
Navigo 🇫🇷 Paris, France 🆕
NETS FlashPay 🇸🇬 Singapore
Octopus 🇭🇰 Hong Kong 🆕
Opal 🇦🇺 Sydney (and surrounds), NSW, Australia 🆕
Opus 🇨🇦 Québec, Canada 🆕
ORCA 🇺🇸 Seattle, WA, USA
OùRA 🇫🇷 Grenoble, France 🆕
OV-chipkaart 🇳🇱 Netherlands 🔐 MFC
Podorozhnik 🇷🇺 Saint Petersburg, Russia 🆕 🔐 MFC
Rav-Kav 🇮🇱 Israel 🆕
Rejsekort 🇳🇴 Norway 🆕 🔐 MFC
RicaricaMi 🇮🇹 Milan, Italy 🆕 🔐 MFC
Selecta 🇫🇷 France 🆕
Shenzhen Tong 🇨🇳 Shenzhen, Guangdong Province, China 🆕
SLAccess 🇸🇪 Stockholm, Sweden 🆕 🔐 MFC
SmartRider 🇦🇺 Western Australia, Australia 🆕 🔐 MFC
Strelka 🇷🇺 Moscow, Russia 🔐 123 MFC
Suica, ICOCA, PASMO 🇯🇵 Japan
SunCard 🇺🇸 Orlando, FL, USA 🆕 🔐 123 MFC
TaM 🇫🇷 Montpellier, France 🆕
Tartu Bus 🇪🇪 Tartu, Estonia 🆕 123 MFC
T-Money 🇰🇷 South Korea 🆕
T-Union 🇨🇳 Mainland China 🆕
TransGironde 🇫🇷 Gironde, France 🆕
Transit Access Pass 🇺🇸 Los Angeles, CA, USA 🆕 🔐 MFC
Troika 🇷🇺 Moscow, Russia 🆕 🔐 MFC
Ventra 🇺🇸 Chicago, IL, USA 🆕 SINGLE
Wuhan Tong 🇨🇳 Wuhan, Hubei Province, China 🆕
Yaroslavl ETK 🇷🇺 Yaroslavl, 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.
MFC MIFARE Classic card; requires NXP NFC chipset in your phone.
123 Only the card number can be read.
FALLBACK Fallback reader -- must be explicitly enabled in the application's settings.
KMT Only new FeliCa-based cards can be read.
SINGLE 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 Phones

Metrodroid requires an Android phone 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 can only be read with phones with NXP chipsets.

License and copyright

Copyright 2015 – 2018 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 http://www.gnu.org/licenses/.

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

This program contains nfc-felica-lib, a library for communicating with Sony FeliCa cards, licensed under the Apache 2.0 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/micolous/metrodroid.git
    

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

  2. Import the directory into Android Studio.

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 81.8%
  • Kotlin 12.8%
  • Python 4.5%
  • Makefile 0.6%
  • Shell 0.1%
  • HTML 0.1%
  • JavaScript 0.1%