From e8346b76fea543df9ac2f239e49ae3c8562778b4 Mon Sep 17 00:00:00 2001 From: Johannes Zweng Date: Sun, 12 Oct 2014 17:34:02 +0200 Subject: [PATCH] Version 1.2.5 (as published in Google Play) * now also reads CPLC (card production life cycle) data * Show note for cards which do not store transaction logs at all * some minor UI reworks * bugfix: exception when reading certain cards * and even if an exception occurs now shows the result tab (so you can lookup exception details) * some other minor improvements and reworks --- AndroidManifest.xml | 133 +- README.md | 216 +- doc/google_play_store/changelog_de.txt | 28 +- doc/google_play_store/changelog_en.txt | 28 +- doc/google_play_store/description_de.txt | 86 +- doc/google_play_store/description_en.txt | 72 +- .../short_description_de.txt | 1 + .../short_description_en.txt | 1 + res/color/background_list_views.xml | 14 +- .../background_list_views_not_clickable.xml | 10 +- res/drawable/list_item_bg_activated.xml | 12 +- res/drawable/list_item_bg_normal.xml | 14 +- res/drawable/list_item_bg_pressed.xml | 12 +- res/layout/activity_main.xml | 111 +- res/layout/activity_nfc_disabled.xml | 54 +- res/layout/activity_result.xml | 12 +- res/layout/fragment_donation_dialog.xml | 11 +- res/layout/fragment_result_log.xml | 60 +- res/layout/fragment_result_tx_list.xml | 52 +- res/layout/list_item_general_info.xml | 74 +- res/layout/list_item_general_info_header.xml | 57 + .../list_item_transaction_collapsed.xml | 102 +- res/layout/list_item_transaction_expanded.xml | 420 +-- res/menu/main_menu.xml | 60 +- res/raw-de/changelog.txt | 144 +- res/raw/changelog.txt | 144 +- res/values-de/strings.xml | 196 +- res/values-sw600dp/dimens.xml | 14 +- res/values-sw720dp-land/dimens.xml | 16 +- res/values-v11/styles.xml | 20 +- res/values-v14/styles.xml | 20 +- res/values/dimens.xml | 14 +- res/values/strings.xml | 195 +- res/values/styles.xml | 128 +- res/xml/pref_general.xml | 26 +- res/xml/pref_headers.xml | 18 +- src/at/zweng/bankomatinfos/AppController.java | 182 +- .../exceptions/NoSmartCardException.java | 54 +- .../exceptions/TlvParsingException.java | 54 +- .../zweng/bankomatinfos/iso7816emv/CPLC.java | 242 ++ .../bankomatinfos/iso7816emv/EmvUtils.java | 2676 +++++++++-------- .../bankomatinfos/iso7816emv/GPTags.java | 70 + .../iso7816emv/NfcBankomatCardReader.java | 1759 ++++++----- .../bankomatinfos/iso7816emv/TagAndValue.java | 82 +- .../zweng/bankomatinfos/model/CardInfo.java | 463 +-- .../bankomatinfos/model/InfoKeyValuePair.java | 17 +- .../model/TransactionLogEntry.java | 360 +-- .../bankomatinfos/ui/AboutDialogFragment.java | 84 +- .../ui/ChangelogDialogFragment.java | 106 +- .../ui/DonateDialogFragment.java | 179 +- .../bankomatinfos/ui/ListAdapterInfos.java | 149 +- .../ui/ListAdapterTransactions.java | 287 +- .../zweng/bankomatinfos/ui/MainActivity.java | 659 ++-- .../bankomatinfos/ui/NfcDisabledActivity.java | 114 +- .../bankomatinfos/ui/ResultActivity.java | 457 +-- .../ui/ResultInfosListFragment.java | 88 +- .../bankomatinfos/ui/ResultLogFragment.java | 118 +- .../ui/ResultTxListFragment.java | 117 +- .../bankomatinfos/ui/SettingsActivity.java | 299 +- .../zweng/bankomatinfos/util/ChangeLog.java | 636 ++-- .../bankomatinfos/util/CustomAlertDialog.java | 49 + src/at/zweng/bankomatinfos/util/Utils.java | 1399 ++++----- 62 files changed, 7134 insertions(+), 6141 deletions(-) create mode 100644 doc/google_play_store/short_description_de.txt create mode 100644 doc/google_play_store/short_description_en.txt create mode 100644 res/layout/list_item_general_info_header.xml create mode 100644 src/at/zweng/bankomatinfos/iso7816emv/CPLC.java create mode 100644 src/at/zweng/bankomatinfos/iso7816emv/GPTags.java create mode 100644 src/at/zweng/bankomatinfos/util/CustomAlertDialog.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 985b374..a84c6f2 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,63 +1,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 80701c4..a296c6a 100644 --- a/README.md +++ b/README.md @@ -1,108 +1,108 @@ -# Bankomatkarten Infos - -*** -*** -*** -## ***Update 8.1.2014:***
-Aufgrund des aktuellen Medieninteresses an dem Thema hier eine kleine Stellungnahme: - -***Zur Klarstellung:*** ich wollte da nichts aufdecken oder hacken. Ich hab mich nur rein interessehalber mit dem Thema beschäftigt, weil ich prinzipiell das Thema NFC sehr spannend finde und einfach mehr darüber lernen wollte. - -Ich habe auch nichts "gehackt" oder "geknackt". Alles was ich in der App gemacht habe ist offen im EMV Zahlungsstandard beschrieben. Alle notwendigen Infos dazu kann jeder technisch Interessierte frei zugänglich ganz offiziell hier in den Spezifikationen nachlesen: [http://www.emvco.com/specifications.aspx?id=223](http://www.emvco.com/specifications.aspx?id=223) - -Außerdem ist es keineswegs neu, dass die Bankomatkarten diese Daten beinhalten. Genau dieselben Info kann man auch aus jeder alten Bankomatkarte (ohne NFC) auslesen. Man muss sich nur um ein paar Euro ein Smartcard-Lesegerät kaufen und eine entsprechende Applkation bauen. Das haben andere bereits vor mir gezeigt. - -Einzig neu ist die Tatsache, dass diese Infos jetzt auch drahtlos per NFC lesbar sind. -*** -*** -*** - - -### Android NFC-App zum Auslesen von österreichischen Bankomatkarten bzw. Maestro Karten -english version below..
- -Sollte auf Android 4.0.3 oder höher funktionieren und benötigt ein Gerät mit NFC. - - -### Links -Hier das Google+ Posting mit dem der Spaß begann: [Fun with NFC.. :-)](https://plus.google.com/100041258817977286971/posts/jZUhAhRUpqL) - -### Danke -Vielen Dank an das Projekt [javaemvreader](https://code.google.com/p/javaemvreader/) von dem ich einige Klassen zum Dekodieren der EMV Daten übernommen habe (released unter Apache 2.0 license). - -### Was ist das? ## - -Diese App versucht die letzten x Transaktionen sowie einige andere Infos aus einer NFC-aktivierten Bankomatkarte via NFC auszulesen. Es kann durchaus sein, dass es nicht mit allen Karten funktioniert. Getestet bisher nur mit einer Bank Austria Bankomatkarte. - -### Screenshots - -![Allgemeine Infos zur Karte](https://raw2.github.com/johnzweng/bankomatinfos/master/doc/sreenshots/result_tab_infos_256px.png) -![Liste der letzten Transaktionen](https://raw2.github.com/johnzweng/bankomatinfos/master/doc/sreenshots/result_tab_transactions_256px.png) -![Detailliertes Log](https://raw2.github.com/johnzweng/bankomatinfos/master/doc/sreenshots/result_tab_log_256px.png) - - -### Details - -Die App versucht eine SmartCard via NFC zu lesen. Dazu prüft sie ob entweder die Paylife Quick Applikation (`AID D040000001000002`) bzw. die Maestro (Bankomat) Applikation (`AID A0000000043060`) auf der Karte vorhanden ist. Falls ja, wird versucht einige frei zugängliche EFs (elementary files) auszulesen (es erfolgt keine Authentifizierung). - -### Wo findet man weitere Infos: - -- [Offizielle EMV Spezifikationen](http://www.emvco.com/specifications.aspx?id=223) -- [Guter Einführungstalk wie EMV Transaktionen ablaufen am 29C3](https://www.youtube.com/watch?v=qqobg1-HrfY) -- [EMVCo FAQ](http://www.emvco.com/faq.aspx?id=37) -- [EMV Ressourcen auf smartcardalliance.org](http://www.smartcardalliance.org/pages/publications-emv-faq) -- Wikipedia über [EMV](https://en.wikipedia.org/wiki/EMV) -- [EMV Tutorial von opemnSCDP.org](http://www.openscdp.org/scripts/tutorial/emv/reademv.html) -- Sehr gute undd komplette [Auflistung und Erklärung von EMV Tags](http://www.eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags) -- [Deutsschsprachiges PDF über das BER-TLV Codierungs-Schema welches auf EMV SmartCards genutzt wird](http://koepferl.eu/publikationen/TLV.pdf) -- Blog-Artikel (english): [Getting information from an EMV chip card with Java](http://blog.saush.com/2006/09/08/getting-information-from-an-emv-chip-card/) -- [Cardwerk's excellent online resources on ISO 7816-4 SmartCards](http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_6_basic_interindustry_commands.aspx) -- Wikipedia über [ISO 7816-4 Smart Card APDU](https://en.wikipedia.org/wiki/Smart_card_application_protocol_data_unit) -- [Masterarbeit von Michael Schouwenaar mit zahlreichen interessanten Infos zu EMV (englisch)](http://www.ru.nl/publish/pages/578936/emv-cards_and_internet_banking_-_michael_schouwenaar.pdf) -- Eine andere interessante [Bachelorarbeit von Christian Mäder und Sandro Vogler mit zahlreichen nützlichen Hintergrundinfos zu EMV (auf deutsch)](http://eprints.hsr.ch/309/1/Bachelor_Thesis_Maeder_Vogler.pdf) - - -
-
-**** -**** -
- - -### Android NFC-App for reading some infos from Austrian Bankomat Cards (Maestro banking cards). - -Should work on Android 4.0.3 and above. -Needs a device with NFC support. - -### Links -Here the Google+ Posting (in german) where the fun began: [Fun with NFC.. :-)](https://plus.google.com/100041258817977286971/posts/jZUhAhRUpqL) - -### Thanks -Many thanks to the project [javaemvreader](https://code.google.com/p/javaemvreader/) from which I borrowed some classes for decoding EMV data (released under Apache 2.0 License). - - -### What's this ## - -This app tries to read the last transactions and some general infos from a NFC-enabled Austrian Bankomatkarte (Maestro debit card) via NFC. It may not work on all cards, only tested with cards from Bank Austria for now. - -### In detail - -This android app tries to read a SmartCard via NFC. It checks if the card contains the Paylife Quick application (`AID D040000001000002`) and the Maestro (Bankomat) application (`AID A0000000043060`) and tries to read some free accessible files (no authentication is performed to card). - - -### Where to look for further info: - -- [Official EMV Specifications](http://www.emvco.com/specifications.aspx?id=223) -- [Good overview talk how EMV Transaktionen work at 29C3](https://www.youtube.com/watch?v=qqobg1-HrfY) -- [EMVCo FAQ](http://www.emvco.com/faq.aspx?id=37) -- [EMV resources at smartcardalliance.org](http://www.smartcardalliance.org/pages/publications-emv-faq) -- Wikipedia on [EMV](https://en.wikipedia.org/wiki/EMV) -- [EMV Tutorial from opemnSCDP.org](http://www.openscdp.org/scripts/tutorial/emv/reademv.html) -- Very good and complete [list of EMV Tags](http://www.eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags) -- [German PDF on the BER-TLV encoding sheme used on EMV cards](http://koepferl.eu/publikationen/TLV.pdf) -- Blog article [Getting information from an EMV chip card with Java](http://blog.saush.com/2006/09/08/getting-information-from-an-emv-chip-card/) -- [Cardwerk's excellent online resources on ISO 7816-4 SmartCards](http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_6_basic_interindustry_commands.aspx) -- Wikipedia on [ISO 7816-4 Smart Card APDU](https://en.wikipedia.org/wiki/Smart_card_application_protocol_data_unit) -- [Master thesis of Michael Schouwenaar with lots of interesting EMV infos](http://www.ru.nl/publish/pages/578936/emv-cards_and_internet_banking_-_michael_schouwenaar.pdf) -- Another interesting [bachelor thesis by Christian Mäder and Sandro Vogler with lots of background infos on EMV (in german)](http://eprints.hsr.ch/309/1/Bachelor_Thesis_Maeder_Vogler.pdf) - +# Bankomatkarten Infos + +*** +*** +*** +## ***Update 8.1.2014:***
+Aufgrund des aktuellen Medieninteresses an dem Thema hier eine kleine Stellungnahme: + +***Zur Klarstellung:*** ich wollte da nichts aufdecken oder hacken. Ich hab mich nur rein interessehalber mit dem Thema beschäftigt, weil ich prinzipiell das Thema NFC sehr spannend finde und einfach mehr darüber lernen wollte. + +Ich habe auch nichts "gehackt" oder "geknackt". Alles was ich in der App gemacht habe ist offen im EMV Zahlungsstandard beschrieben. Alle notwendigen Infos dazu kann jeder technisch Interessierte frei zugänglich ganz offiziell hier in den Spezifikationen nachlesen: [http://www.emvco.com/specifications.aspx?id=223](http://www.emvco.com/specifications.aspx?id=223) + +Außerdem ist es keineswegs neu, dass die Bankomatkarten diese Daten beinhalten. Genau dieselben Info kann man auch aus jeder alten Bankomatkarte (ohne NFC) auslesen. Man muss sich nur um ein paar Euro ein Smartcard-Lesegerät kaufen und eine entsprechende Applkation bauen. Das haben andere bereits vor mir gezeigt. + +Einzig neu ist die Tatsache, dass diese Infos jetzt auch drahtlos per NFC lesbar sind. +*** +*** +*** + + +### Android NFC-App zum Auslesen von österreichischen Bankomatkarten bzw. Maestro Karten +english version below..
+ +Sollte auf Android 4.0.3 oder höher funktionieren und benötigt ein Gerät mit NFC. + + +### Links +Hier das Google+ Posting mit dem der Spaß begann: [Fun with NFC.. :-)](https://plus.google.com/100041258817977286971/posts/jZUhAhRUpqL) + +### Danke +Vielen Dank an das Projekt [javaemvreader](https://code.google.com/p/javaemvreader/) von dem ich einige Klassen zum Dekodieren der EMV Daten übernommen habe (released unter Apache 2.0 license). + +### Was ist das? ## + +Diese App versucht die letzten x Transaktionen sowie einige andere Infos aus einer NFC-aktivierten Bankomatkarte via NFC auszulesen. Es kann durchaus sein, dass es nicht mit allen Karten funktioniert. Getestet bisher nur mit einer Bank Austria Bankomatkarte. + +### Screenshots + +![Allgemeine Infos zur Karte](https://raw2.github.com/johnzweng/bankomatinfos/master/doc/sreenshots/result_tab_infos_256px.png) +![Liste der letzten Transaktionen](https://raw2.github.com/johnzweng/bankomatinfos/master/doc/sreenshots/result_tab_transactions_256px.png) +![Detailliertes Log](https://raw2.github.com/johnzweng/bankomatinfos/master/doc/sreenshots/result_tab_log_256px.png) + + +### Details + +Die App versucht eine SmartCard via NFC zu lesen. Dazu prüft sie ob entweder die Paylife Quick Applikation (`AID D040000001000002`) bzw. die Maestro (Bankomat) Applikation (`AID A0000000043060`) auf der Karte vorhanden ist. Falls ja, wird versucht einige frei zugängliche EFs (elementary files) auszulesen (es erfolgt keine Authentifizierung). + +### Wo findet man weitere Infos: + +- [Offizielle EMV Spezifikationen](http://www.emvco.com/specifications.aspx?id=223) +- [Guter Einführungstalk wie EMV Transaktionen ablaufen am 29C3](https://www.youtube.com/watch?v=qqobg1-HrfY) +- [EMVCo FAQ](http://www.emvco.com/faq.aspx?id=37) +- [EMV Ressourcen auf smartcardalliance.org](http://www.smartcardalliance.org/pages/publications-emv-faq) +- Wikipedia über [EMV](https://en.wikipedia.org/wiki/EMV) +- [EMV Tutorial von opemnSCDP.org](http://www.openscdp.org/scripts/tutorial/emv/reademv.html) +- Sehr gute undd komplette [Auflistung und Erklärung von EMV Tags](http://www.eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags) +- [Deutsschsprachiges PDF über das BER-TLV Codierungs-Schema welches auf EMV SmartCards genutzt wird](http://koepferl.eu/publikationen/TLV.pdf) +- Blog-Artikel (english): [Getting information from an EMV chip card with Java](http://blog.saush.com/2006/09/08/getting-information-from-an-emv-chip-card/) +- [Cardwerk's excellent online resources on ISO 7816-4 SmartCards](http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_6_basic_interindustry_commands.aspx) +- Wikipedia über [ISO 7816-4 Smart Card APDU](https://en.wikipedia.org/wiki/Smart_card_application_protocol_data_unit) +- [Masterarbeit von Michael Schouwenaar mit zahlreichen interessanten Infos zu EMV (englisch)](http://www.ru.nl/publish/pages/578936/emv-cards_and_internet_banking_-_michael_schouwenaar.pdf) +- Eine andere interessante [Bachelorarbeit von Christian Mäder und Sandro Vogler mit zahlreichen nützlichen Hintergrundinfos zu EMV (auf deutsch)](http://eprints.hsr.ch/309/1/Bachelor_Thesis_Maeder_Vogler.pdf) + + +
+
+**** +**** +
+ + +### Android NFC-App for reading some infos from Austrian Bankomat Cards (Maestro banking cards). + +Should work on Android 4.0.3 and above. +Needs a device with NFC support. + +### Links +Here the Google+ Posting (in german) where the fun began: [Fun with NFC.. :-)](https://plus.google.com/100041258817977286971/posts/jZUhAhRUpqL) + +### Thanks +Many thanks to the project [javaemvreader](https://code.google.com/p/javaemvreader/) from which I borrowed some classes for decoding EMV data (released under Apache 2.0 License). + + +### What's this ## + +This app tries to read the last transactions and some general infos from a NFC-enabled Austrian Bankomatkarte (Maestro debit card) via NFC. It may not work on all cards, only tested with cards from Bank Austria for now. + +### In detail + +This android app tries to read a SmartCard via NFC. It checks if the card contains the Paylife Quick application (`AID D040000001000002`) and the Maestro (Bankomat) application (`AID A0000000043060`) and tries to read some free accessible files (no authentication is performed to card). + + +### Where to look for further info: + +- [Official EMV Specifications](http://www.emvco.com/specifications.aspx?id=223) +- [Good overview talk how EMV Transaktionen work at 29C3](https://www.youtube.com/watch?v=qqobg1-HrfY) +- [EMVCo FAQ](http://www.emvco.com/faq.aspx?id=37) +- [EMV resources at smartcardalliance.org](http://www.smartcardalliance.org/pages/publications-emv-faq) +- Wikipedia on [EMV](https://en.wikipedia.org/wiki/EMV) +- [EMV Tutorial from opemnSCDP.org](http://www.openscdp.org/scripts/tutorial/emv/reademv.html) +- Very good and complete [list of EMV Tags](http://www.eftlab.co.uk/index.php/site-map/knowledge-base/145-emv-nfc-tags) +- [German PDF on the BER-TLV encoding sheme used on EMV cards](http://koepferl.eu/publikationen/TLV.pdf) +- Blog article [Getting information from an EMV chip card with Java](http://blog.saush.com/2006/09/08/getting-information-from-an-emv-chip-card/) +- [Cardwerk's excellent online resources on ISO 7816-4 SmartCards](http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_6_basic_interindustry_commands.aspx) +- Wikipedia on [ISO 7816-4 Smart Card APDU](https://en.wikipedia.org/wiki/Smart_card_application_protocol_data_unit) +- [Master thesis of Michael Schouwenaar with lots of interesting EMV infos](http://www.ru.nl/publish/pages/578936/emv-cards_and_internet_banking_-_michael_schouwenaar.pdf) +- Another interesting [bachelor thesis by Christian Mäder and Sandro Vogler with lots of background infos on EMV (in german)](http://eprints.hsr.ch/309/1/Bachelor_Thesis_Maeder_Vogler.pdf) + diff --git a/doc/google_play_store/changelog_de.txt b/doc/google_play_store/changelog_de.txt index 6690001..0420bc2 100644 --- a/doc/google_play_store/changelog_de.txt +++ b/doc/google_play_store/changelog_de.txt @@ -1,11 +1,17 @@ -Version 1.2.4 (19.01.2014): -• zeigt nun auch: Ablaufdatum, Austellungsdatum und Kartennummer -• bugfix: IOException bei App-Neustart behoben -• bugfix: Absturz auf "Einstellungen" Seite behoben -• neuer Menüeintrag: "Spenden" - - -Version 1.2.3 (12.01.2014): -• bessere Aufschlüsselung der Transaktionen -• bugfix: Lesefehler bei bestimmten Transaktionstypen behoben -• bugfix: falsche Uhrzeit bei manchen Transaktionen behoben +Version 1.2.5 (11.10.2014): +• Anzeige weiterer allgemeiner Kartendaten (OS, IC, etc..) +• zeige Hinweis bei neueren Karten die keine Logs mehr speichern +• bugfix: Exception beim Lesen bestimmter Karten behoben + + +Version 1.2.4 (19.01.2014): +• zeigt nun auch: Ablaufdatum, Austellungsdatum und Kartennummer +• bugfix: IOException bei App-Neustart behoben +• bugfix: Absturz auf "Einstellungen" Seite behoben +• neuer Menüeintrag: "Spenden" + + +Version 1.2.3 (12.01.2014): +• bessere Aufschlüsselung der Transaktionen +• bugfix: Lesefehler bei bestimmten Transaktionstypen behoben +• bugfix: falsche Uhrzeit bei manchen Transaktionen behoben diff --git a/doc/google_play_store/changelog_en.txt b/doc/google_play_store/changelog_en.txt index 3153f10..4e08feb 100644 --- a/doc/google_play_store/changelog_en.txt +++ b/doc/google_play_store/changelog_en.txt @@ -1,11 +1,17 @@ -Version 1.2.4 (2014-01-19): -• shows new fields: expiration date, activation date, card number -• bugfix: fixed IOException on app restart -• bugfix: fixed crash on "Settings" page -• new menu entry: "Donation" - - -Version 1.2.3 (2014-01-12): -• better decoding of transactions! -• bugfix: corrected parsing error with some specific transactions -• bugfix: wrong time displayed in some transaction +Version 1.2.5 (11.10.2014): +• now also shows some generic infos about card (OS, IC type, etc..) +• display note for newer cards which don't contain tx logs +• bugfix: fixed exception occuring with some cards + + +Version 1.2.4 (2014-01-19): +• shows new fields: expiration date, activation date, card number +• bugfix: fixed IOException on app restart +• bugfix: fixed crash on "Settings" page +• new menu entry: "Donation" + + +Version 1.2.3 (2014-01-12): +• better decoding of transactions! +• bugfix: corrected parsing error with some specific transactions +• bugfix: wrong time displayed in some transaction diff --git a/doc/google_play_store/description_de.txt b/doc/google_play_store/description_de.txt index 2eda065..941ca3c 100644 --- a/doc/google_play_store/description_de.txt +++ b/doc/google_play_store/description_de.txt @@ -1,42 +1,46 @@ -Versucht österreichische Bankomat und Maestro-Karten per NFC auszulesen. - - -Anmerkung: -Kann natürlich nur funktionieren wenn auf der Karte das NFC- oder "pay pass" Logo abgedruckt ist (die anderen Karten haben einfach keine NFC-Funktion). - - -Infos: ----------------------------------- -Diese App liest über NFC allgemein zugängliche Informationen sowie (falls vorhanden) die letzten Transaktionen aus österreichischen (und vielleicht auch anderen) Bankomat Karten aus (Maestro Debit Karten). Bisher nur mit Bank Austria und Sparkasse Karten getestet. - -Funktioniert nur mit Karten mit NFC-Funktion (diese Karten haben meistens das "pay pass" Logo oder ein Funk-Symbol auf der Karte). - -Derzeit wird nicht der volle Umfang des EMV-Standards von dieser App genutzt. Daher ist es durchaus möglich, dass bei anderen Karten keine oder weniger Infos angezeigt werden. Diese App verwendet ausschließlich lesende Kommandos, und sollte daher gefahrlos für die Karte sein. - -Ich übernehme jedoch keine Haftung für Schäden oder Verluste jedweder Art. Verwendung auf eigenes Risiko! - - -Kurzer Disclaimer: ----------------------------------- -Diese App erhebt nicht den Anspruch perfekt zu sein oder mit allen Karten zu funktionieren. Ich bin kein EMV-Experte. Diese App ist nicht als professionelles Projekt gedacht, sondern nur eine kleine proof-of-concept Lösung für mich selbst, um mehr über EMV zu lernen - erstellt in meiner Freizeit. Für mehr Informationen zu den gelesenen Daten und EMV im Allgemeinen siehe die Linksammlung auf der Github-Webseite dieses Projekts. - - -Sicherheitshinweis: ----------------------------------- -Da es bei Geldkarten um sensitive Informationen geht, sollte jeder prinzipiell bei der Installation solcher Apps vorsichtig sein. Daher um die Vertrauenswürdigkeit zu erhöhen: - -• Diese App verwendet *ausschließlich* die Berechtigung "Nahfeldkommunikation" (steht für NFC), ansonsten KEINE BERECHTIGUNGEN (auch kein Internetzugriff). -• Der komplette Sourcecode hier öffentlich einsehbar: https://github.com/johnzweng/bankomatinfos -• Es werden keinerlei Daten gespeichert oder versendet (es sei denn sie versenden sie selbst mit der "Share" Funktion von Android). - - -Diese App ist frei von jeglicher Werbung! - - -Viel Spaß! :-) - - -Technische Details: ----------------------------------- -Diese App versucht auf der SmartCard die AID A0000000043060 (Mastercard Maestro) und D040000001000002 (Paylife Quick) anzusprechen und alle frei verfügbaren Infos auszulesen. Diese sind dem EMV Standard entsprechend codiert, und können daher eventuell eventuell nicht alle lesbar decodiert werden. +Versucht österreichische Bankomat und Maestro-Karten per NFC auszulesen. + + +Anmerkung: +Kann natürlich nur funktionieren wenn auf der Karte das NFC- oder "pay pass" Logo abgedruckt ist (die anderen Karten haben einfach keine NFC-Funktion). Hinweis: bei manchen Geräten ist der NFC Empfänger im Akku eingebaut (ja wirklich!) - zB beim Galaxy S3! Daher funktioniert NFC oft nicht mit Zweitakkus. + +Sollte es daher nicht funktionieren, am besten einfach kurz Gegenprobe mit einer anderen App machen (zb. mit der offiziellen "Paylife Quick" App) ob NFC prinzipiell funktoniert (auch geht bei manchen Karten NFC einfach nicht - da kann die App nichts dafür). + +Wenn die Karte noch nie (mit PIN) benutzt wurde - also frisch aus dem Kuvert - gibt sie außer Quick Guthaben auch nichts preis. + + +Infos: +---------------------------------- +Diese App liest über NFC allgemein zugängliche Informationen sowie (falls vorhanden) die letzten Transaktionen aus österreichischen (und vielleicht auch anderen) Bankomat Karten aus (Maestro Debit Karten). Bisher nur mit Bank Austria und Sparkasse Karten getestet. + +Funktioniert nur mit Karten mit NFC-Funktion (diese Karten haben meistens das "pay pass" Logo oder ein Funk-Symbol auf der Karte). + +Derzeit wird nicht der volle Umfang des EMV-Standards von dieser App genutzt. Daher ist es durchaus möglich, dass bei anderen Karten keine oder weniger Infos angezeigt werden. Diese App verwendet ausschließlich lesende Kommandos, und sollte daher gefahrlos für die Karte sein. + +Ich übernehme jedoch keine Haftung für Schäden oder Verluste jedweder Art. Verwendung auf eigenes Risiko! + + +Kurzer Disclaimer: +---------------------------------- +Diese App erhebt nicht den Anspruch perfekt zu sein oder mit allen Karten zu funktionieren. Ich bin kein EMV-Experte. Diese App ist nicht als professionelles Projekt gedacht, sondern nur eine kleine proof-of-concept Lösung für mich selbst, um mehr über EMV zu lernen - erstellt in meiner Freizeit. Für mehr Informationen zu den gelesenen Daten und EMV im Allgemeinen siehe die Linksammlung auf der Github-Webseite dieses Projekts. + + +Sicherheitshinweis: +---------------------------------- +Da es bei Geldkarten um sensitive Informationen geht, sollte jeder prinzipiell bei der Installation solcher Apps vorsichtig sein. Daher um die Vertrauenswürdigkeit zu erhöhen: + +• Diese App verwendet *ausschließlich* die Berechtigung "Nahfeldkommunikation" (steht für NFC), ansonsten KEINE BERECHTIGUNGEN (auch kein Internetzugriff). +• Der komplette Sourcecode hier öffentlich einsehbar: https://github.com/johnzweng/bankomatinfos +• Es werden keinerlei Daten gespeichert oder versendet (es sei denn sie versenden sie selbst mit der "Share" Funktion von Android). + + +Diese App ist frei von jeglicher Werbung! + + +Viel Spaß! :-) + + +Technische Details: +---------------------------------- +Diese App versucht auf der SmartCard die AID A0000000043060 (Mastercard Maestro) und D040000001000002 (Paylife Quick) anzusprechen und alle frei verfügbaren Infos auszulesen. Diese sind dem EMV Standard entsprechend codiert, und können daher eventuell eventuell nicht alle lesbar decodiert werden. Der gesamte Output im Rohformat (hexadezimal) wird ebenfalls angezeigt. \ No newline at end of file diff --git a/doc/google_play_store/description_en.txt b/doc/google_play_store/description_en.txt index 8cb7745..3309d9e 100644 --- a/doc/google_play_store/description_en.txt +++ b/doc/google_play_store/description_en.txt @@ -1,37 +1,37 @@ -Tries to read infos from NFC-enabled Maestro debit cards. (Tested only with Austrian cards until now.) - - -Infos: ----------------------------------- -This app tries to read free accessible informations (and if found) the last debit transactions from Austrian (and maybe other) Maestro debit cards (in Austria called "Bankomatkarte"). Until now tested with "Bank Austria" and "Sparkasse" Maestro cards. - -Of course works only with NFC-enabled cards (these cards often have the "pay pass" logo or the NFC logo printed on them). - -At the moment this app does not use the full EMV standard, so maybe it won't give much or any infos on cards from other banks. This app only uses reading commands, so no harm should be done to your card. - -But I do not assume any liability for errors or losses of any kind! Use at your own risk! - - -Short disclaimer: ----------------------------------- -This may not be perfect, or the best way this could be done. I'm not an EMV expert. This was not to be intended a professional project, but just a small proof-of-concept solution for myself to learn more about EMV - made in my free time. Check the link section on the project's Github website for more information on the result data and on EMV. - - -Note on security: ----------------------------------- -As banking cards may contain sensitive information, everyone should be careful when installing apps like this one. So to increase trustworthiness: - -• This app only uses the "NFC" permission and nothing else (also no internet access!). -• The full source code of this app is freely available at: https://github.com/johnzweng/bankomatinfos -• No data is being stored or sent (unless you send it yourself via Android's "Share" function). - - -This app does not contain any ads! - - -Have fun! :-) - - -Some technical details: ----------------------------------- +Tries to read infos from NFC-enabled Maestro debit cards. (Only for cards FROM AUSTRIA!) + + +Infos: +---------------------------------- +This app tries to read free accessible informations (and if found) the last debit transactions from Austrian (and maybe other) Maestro debit cards (in Austria called "Bankomatkarte"). Until now tested with "Bank Austria" and "Sparkasse" Maestro cards. + +Of course works only with NFC-enabled cards (these cards often have the "pay pass" logo or the NFC logo printed on them). + +At the moment this app does not use the full EMV standard, so maybe it won't give much or any infos on cards from other banks. This app only uses reading commands, so no harm should be done to your card. + +But I do not assume any liability for errors or losses of any kind! Use at your own risk! + + +Short disclaimer: +---------------------------------- +This may not be perfect, or the best way this could be done. I'm not an EMV expert. This was not to be intended a professional project, but just a small proof-of-concept solution for myself to learn more about EMV - made in my free time. Check the link section on the project's Github website for more information on the result data and on EMV. + + +Note on security: +---------------------------------- +As banking cards may contain sensitive information, everyone should be careful when installing apps like this one. So to increase trustworthiness: + +• This app only uses the "NFC" permission and nothing else (also no internet access!). +• The full source code of this app is freely available at: https://github.com/johnzweng/bankomatinfos +• No data is being stored or sent (unless you send it yourself via Android's "Share" function). + + +This app does not contain any ads! + + +Have fun! :-) + + +Some technical details: +---------------------------------- This app tries to read the AID A0000000043060 (Mastercard Maestro) and D040000001000002 (Paylife Quick) on the smartcard and tries to read all free readable infos on the card. The data on these cards is usually encoded following the EMV standard for payment systems. The app tries to decode the data to make it human-understanable but this may not work on all cards. All output from the card is also presented in its raw form (hexadecimal byte arrays). \ No newline at end of file diff --git a/doc/google_play_store/short_description_de.txt b/doc/google_play_store/short_description_de.txt new file mode 100644 index 0000000..d1c4f38 --- /dev/null +++ b/doc/google_play_store/short_description_de.txt @@ -0,0 +1 @@ +Zeigt Infos über deine "paypass" Bankomat- bzw. Maestro-Karte. \ No newline at end of file diff --git a/doc/google_play_store/short_description_en.txt b/doc/google_play_store/short_description_en.txt new file mode 100644 index 0000000..f5ac080 --- /dev/null +++ b/doc/google_play_store/short_description_en.txt @@ -0,0 +1 @@ +Reads infos about your "paypass" Maestro card via NFC. \ No newline at end of file diff --git a/res/color/background_list_views.xml b/res/color/background_list_views.xml index ac777fa..775b366 100644 --- a/res/color/background_list_views.xml +++ b/res/color/background_list_views.xml @@ -1,8 +1,8 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/res/color/background_list_views_not_clickable.xml b/res/color/background_list_views_not_clickable.xml index cd9a347..70da987 100644 --- a/res/color/background_list_views_not_clickable.xml +++ b/res/color/background_list_views_not_clickable.xml @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/res/drawable/list_item_bg_activated.xml b/res/drawable/list_item_bg_activated.xml index 912bdfa..f13004c 100644 --- a/res/drawable/list_item_bg_activated.xml +++ b/res/drawable/list_item_bg_activated.xml @@ -1,7 +1,7 @@ - - + + \ No newline at end of file diff --git a/res/drawable/list_item_bg_normal.xml b/res/drawable/list_item_bg_normal.xml index 51e84e8..d06225b 100644 --- a/res/drawable/list_item_bg_normal.xml +++ b/res/drawable/list_item_bg_normal.xml @@ -1,7 +1,7 @@ - - - + + + diff --git a/res/drawable/list_item_bg_pressed.xml b/res/drawable/list_item_bg_pressed.xml index f43dab8..9f3230e 100644 --- a/res/drawable/list_item_bg_pressed.xml +++ b/res/drawable/list_item_bg_pressed.xml @@ -1,7 +1,7 @@ - - + + \ No newline at end of file diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml index 3ce6468..6f57b67 100644 --- a/res/layout/activity_main.xml +++ b/res/layout/activity_main.xml @@ -1,57 +1,56 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/activity_nfc_disabled.xml b/res/layout/activity_nfc_disabled.xml index ea1e4d7..80d096e 100644 --- a/res/layout/activity_nfc_disabled.xml +++ b/res/layout/activity_nfc_disabled.xml @@ -1,28 +1,28 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/res/layout/activity_result.xml b/res/layout/activity_result.xml index 7001ba3..6441f83 100644 --- a/res/layout/activity_result.xml +++ b/res/layout/activity_result.xml @@ -1,6 +1,6 @@ - + diff --git a/res/layout/fragment_donation_dialog.xml b/res/layout/fragment_donation_dialog.xml index 8a403e9..1eb682e 100644 --- a/res/layout/fragment_donation_dialog.xml +++ b/res/layout/fragment_donation_dialog.xml @@ -48,7 +48,16 @@ android:layout_marginRight="20dp" android:text="@string/donate_dialog_btn_bitcoin" > - +