1
Open Mobile API

  1. jakecab Froyo Aug 9, 2015

    jakecab, Aug 9, 2015 :
    Hallo :)

    Wollte mich gerade für mobiles Bezahlen in der App meiner Bank registrieren aber die spuckt folgende Fehlermeldung aus:

    Kennt jemand das Problem? Liegt das am OnePlus One? Oder an Cyanogen? Hat jemand von euch eine andere Firmware (Stock?) und könnte die App vielleicht für mich ausprobieren? <3 Diese prüft zuerst das Smartphone und erst dann kann man sich anmelden.

    https://play.google.com/store/apps/details?id=at.psa.app.erste bzw. so gut wie die selbe App von einer anderen österreichische Bank: https://play.google.com/store/apps/details?id=at.psa.app.bankaustria&hl=de

    OffTopic:
    Weil ich einen Screenshot von der App mit der Fehlermeldung machen wollte, habe ich erst herausgefunden dass man Screenshots bei Android sperren kann...
    20150809102808.jpg
    Wenn man Screenshots sperren kann, warum ist das nicht bei Snapchat der Fall?? :mad:
    Mal davon abgesehen dass One User mit Screencast/Bildschirmaufnahme bei Snapchat unbemerkt Fotos und sogar Videos "speichern" können. ;)

    Liebe Grüße :)
     
    Last edited: Aug 9, 2015

    #1
    G_fgj111_ZVFC likes this.
  2. juweger Ice Cream Sandwich Aug 9, 2015

    juweger, Aug 9, 2015 :
    Hat du dich mal weiter unter dem oben geposteten link informiert?
    Start Q4.2015 habe ich dort gelesen.
    In der FAQ steht das z.B. keine Nexus Geräte supportet werden. Sich habe ich was von SIM Karte mit NFC gelesen.
    Ich habe die APP mal installiert und mein One CM12.1 mit root ist auch nicht tauglich.
    Sicher das die APP schon funktioniert?
     

    #2
  3. Darkhighlander Honeycomb Aug 9, 2015

    Darkhighlander, Aug 9, 2015 :
    Das mit den Screeshots hatte ich auch schon einmal.
    Konnte keine Screenshots mehr machen weder im laufenden Betrieb noch im Recovery. Hab dann festgestellt das die Rechte im Screenshots-Ordner Picture verstellt waren. Da dieser auf der Sd ist musste ich die ganze Sd löschen und der Ordner war weg. Wird aber beim ersten Screenshot neu angelegt, mit den richtigen Rechte. Anders war es nicht möglich, aber vorher Daten sichern.....

    LG
     

    #3
  4. lNemicl Gingerbread Aug 9, 2015

    lNemicl, Aug 9, 2015 :
    Also wenn man sich mit CM beispielsweise in die Sparkassen APP einloggen will, dann kommt die Meldung, dass man ein Custom Rom am laufen hat ( echt oder? ^^) und dass dadurch möglicherweise Sicherheitsrisiken bestehen können.

    Weiss jetzt nicht, ob das hier das Hindernis sein könnte.
     

    #4
    Florian likes this.
  5. puma95 Jelly Bean Moderator Aug 10, 2015

    puma95, Aug 10, 2015 :
    Es hätte gereicht nur den Screenshot Ordner zu löschen. :)
    Das ist lediglich eine Info für den User, taucht bei Messenger Apps wie Whatsapp auch auf, sollte aber keine Probleme machen.

    @jakecab es scheint so zu sein, dass Cyanogenmod diese Api einfach nicht beinhaltet, ich fürchte da kann man nichts tun.
    Wenn es stimmt, dass Nexus Geräte grundsätzlich nicht kompatibel sind, dann wird das wohl darauf zurück zuführen sein, dass das reine Android diese Api ebenfalls nicht unterstützt und somit auch keine Custom Roms.
     

    #5
    jakecab likes this.
  6. Darkhighlander Honeycomb Aug 10, 2015

    Darkhighlander, Aug 10, 2015 :
    Das mit dem Ordner löschen ging leider auch nicht, da ich keine Rechte hatte.. Da hat nur komplett platt machen geholfen
     

    #6
  7. rarog Lollipop Senior Moderator Aug 10, 2015

    rarog, Aug 10, 2015 :
    Mir Root hätte es geklappt.
     

    #7
  8. jakecab Froyo Aug 10, 2015

    jakecab, Aug 10, 2015 :
    Jep, sollte laut meiner Bank aber trotzdem schon funktionieren. ;)

    Ah das habe ich überlesen, danke dir. Finde ich persönlich sehr interessant, dass gerade die Google Vorzeigegeräte nicht unterstützt werden.

    Ja, die muss ich mir noch von meinem Mobilfunkbetreiber holen. Darauf werden angeblich die Kartendaten gespeichert.

    Vielen Dank für deinen Test! Ja ziemlich sicher. :)

    Sobald ich aus der App draußen bin gehts aber wieder. ;) Geht nur in den beiden Banking-Apps nicht.

    Ja die Meldung kenne ich. ;) Es geht hier allerdings nicht um die "standard" Banking-App sondern um eine spezielle App die mobiles Bezahlen mit dem Handy via NFC (selbe Technologie wie alle paypass Bankomatkarten weltweit) ermöglicht.

    Das wäre fürchterlich schade. :(
    Du meinst, dass das reine Stock Android die API nicht beinhaltet aber z.B. Samungs aufgeblähtes TouchWiz die API schon? Das würde ja nicht wirklich viel Sinn ergeben oder?

    Bei den Nexus Geräten liegt es offenbar daran das NFC einfach nicht für (fremde) Mobile Payments freigeschaltet ist (Damit der eigene Bezahldienst Google Wallet (oder wie der neue Dienst jetzt heißt) gepusht wird?): http://www.nfcbrief.com/2013/07/think-twice-about-buying-nexus-if-you.html

    Das OnePlus 2 bzw. OxygenOS könnte die API unterstützen, aber dafür kein NFC... :(
    Selbst wenn kaum jemand NFC nutzt ist es für mich ohne NFC beim besten Willen kein Smartphonekiller!

    Danke für eure Hilfe! :)
     
    Last edited: Aug 10, 2015

    #8
  9. puma95 Jelly Bean Moderator Aug 10, 2015

    puma95, Aug 10, 2015 :
    Könnte sein, dass diese Api einem Konzern gehört der Geld für Rechte verlangt, ein Open Source OS wie CM wird sich darum vermutlich nicht kümmern, Samsung etc hingegen schon.
     

    #9
    jakecab likes this.
  10. Darkhighlander Honeycomb Aug 10, 2015

    Darkhighlander, Aug 10, 2015 :
    Leider trotz Root auch nicht, hatte alles versucht. Ging nur so. Ein Androidcrack hätte es vll. auch so hingekommen. Ich nicht und war so am schnellsten
     

    #10
    jakecab likes this.
  11. rarog Lollipop Senior Moderator Aug 10, 2015

    rarog, Aug 10, 2015 :
    Linuxcrack eher. Mit einer Dateimanagerapp, die mit Root-Rechten läuft, hätte das garantiert geklappt. :p Oder direkt per Konsole.
     

    #11
  12. Darkhighlander Honeycomb Aug 11, 2015

    Darkhighlander, Aug 11, 2015 :
    Glaub mir alles versucht ...o_O
     

    #12
  13. john_tldr Donut Oct 18, 2015

    john_tldr, Oct 18, 2015 :
    Hi,

    Ich kann zu diesem Thema ein paar Infos beitragen (bin Android Entwickler der auch NFC Apps baut):

    Damit man mit dem Handy wie mit der paypass Karte bezahlen kann (also genau was die österreichischen Banken gerade unter dem Namen Bankomatkarte Mobil ausrollen), müssen die Daten die normalerweise sicher in deiner BankCard (im Chip) liegen auf dem Gerät sicher untergebracht werden (in einem sog. Secure Element). Die österreichischen Banken sind dafür eine Kooperation mit allen 3 großen Netzbetreibern eingegangen und legen deine Bankkarte in der SIM-Karte ab (rein technisch unterscheidet eine SIM-Karte nichts von einer Bankkarte).

    Vereinfacht gesprochen: Statt deiner Bankkarte hältst du dann (quasi) einfach deine SIM-Karte an die Kassa. (Das Handy ist dabei nur dummes "Übertragungsmittel" das die Kommunikation über NFC zwischen Kassa und SIM-Karte ermöglicht. Da werden nur Kommandos hin- und her- gereicht, die eigentliche Zahlung macht die SIM Karte.) Soweit so gut.

    Damit man als App-Entwickler das in Android umsetzen kann, braucht man eine Möglichkeit (eine API) um aus einer App heraus Kommandos an die SIM-Karte senden zu können (vereinfacht gesagt). Aus bestimmten Gründen hat Google so eine API im Android Open Source Project nicht vorgesehen. :-(

    Es hat sich aber eine Allianz der Chipkartenhersteller in der Industrie gebildet (die SIMalliance) die sich so eine API in Android gern gewünscht hätten (is ja für sie auch von Vorteil wenn Sicherheitslösungen in Android mit den Smartcards die sie verkaufen entwickelt werden können), und die haben daher eine externe, offene und frei verfügbare API dafür geschaffen, eben die vielfach angesprochene "Open Mobile API".

    Also prinzipiell ist kein Rechteproblem, diese API darf jeder Hersteller gern frei in sein Android Smartphone integrieren (das begrüßen die sogar ausdrücklich), deswegen haben viele Samsung Geräte diese API zum Beispiel auch integriert. Google hingegen hat sich hingegen dagegen entschieden und in seinen Nexus Geräten diese API NICHT inkludiert (Ausnahme siehe Anmerkung 1 unten). :-(
    Die SIM Alliance hat sich auch bemüht diese API ins Android Open Source Project zu committen, aber Google hat die bislang nicht aufgenommen.

    Da die API (und die dazugehörige Implementierung) ja unter einer freien Lizenz zur Verfügung steht, könnte man meinen, CyanogenMod könnte die ja einfach in die ROMs miteinbauen. (Das tun sie ja übrigens auch bei den Geräten, wo die Stock-ROMs diese API auch beinhalten - es ist also kein CM-bezogenes Problem). Nur so einfach geht das bei Nexus Geräten leider nicht.

    Denn: technisch gesehen ist die SIM-Karte nicht unter Kontrolle des Applikationsprozessors (also dort wo Android drauf läuft), sondern unter alleiniger Kontrolle des Baseband Prozessors ("Modem") und da läuft meist irgendwas closed-source Proprietäres (die baseband/modem firmware).

    Damit man über diese Open Mobile API jetzt Kommandos an die SIM Karte senden kann, muss der Baseband Prozessor entsprechene Kommandos unterstützen, die es dem Android System erlauben, Befehle die an die SIM Karte gehen sollen, ans Baseband zu übergeben, und der Baseband Prozessor sendet die dann an die SIM Karte weiter (das Stichwort hierzu ist "plain APDU access").

    Und eben die Nexus Geräte unterstützen das nicht.. Leider... :-(


    Deswegen kann man derzeit die Bankomatkarte Mobil mit Nexus Geräten (fast) so gut wie vergessen. :-(


    Übrigens: im "Android Census Projekt" kann man sich ansehen, welche Geräte welche Libraries und APIs beinhalten (leider nicht wirklich vollständig, da fehlen viele Geräte). Aber unter dem Link findet ihr zumindest mal eine Liste aller Geräte welche mit die OpenMobile API ausgeliefert werden (das heißt leider auch noch nicht ganz sicher, dass damit die Bankomatkarte Mobil funktioniert, aber es ist schon mal sehr wahrscheinlich).

    Lg,
    Johannes :)



    Anmerkung 1):
    Das mit Nexus Geräten stimmt nicht ganz. Derzeit gibt es eine Ausnahme: Beim Nexus 6 mit Android 5.1.1 (Build LVY48F) ist die OpenMobile API integriert. ABER: Leider ist sie im neuen Android 6.0 Build (MRA58K) NICHT mehr integriert.. :-( Dh. die Bankcard Mobil geht am Nexus 6 nur mit Android 5.1.1 aber nicht mehr mit dem neuen 6.0.

    Es bleibt abzuwarten, was Google bei den beiden neuen Geräten (Nexus 5X und 6P) gemacht hat. Ich hab da bei den Testberichten leider nichts dazu gefunden, aber ich befürchte, dass die auch ohne OpenMobile API ausgeliefert werden. Ich vermute, dass Google fremde Bezahllösungen von seinen Geräten eher fernhalten möchte, um künftig Android Pay mehr zu pushen. :-(

    [edit]
    Fehlende Klammern und kleinere Formulierungen ausgebessert.
    [/edit]
     
    Last edited: Oct 22, 2015

    #13
  14. john_tldr Donut Oct 18, 2015

    john_tldr, Oct 18, 2015 :
    Und noch was zu der Screenshot Frage:

    Es wissen vielleicht nicht alle Android Entwickler, aber es gibt in Android ein Flag, welches man für Activities setzen kann (das FLAG_SECURE Flag). Wenn ich als Entwickler das in meiner App für eine Activity setze, dann verhindert Android, das der Inhalt des Bildschirms via Screenshot, screencast etc. von anderen Apps gelesen werden kann. Deswegen kann man dann (mit "normalen" Mitteln) keine Screenshots machen.

    Bei den diversen Bankcard Mobil Apps der österr. Banken ist dieses Flag gesetzt.

    (Ich will nicht ausschließen, dass es mit root Mittel und Wege gibt, dennoch einen Screenshot zu machen, aber das "original" Standard-Rechtesystem von Android erlaubt's zumindest nicht.

    Lg :)

    P.S.: Für Entwickler: wer das Flag setzen will, es reicht einfach das Flag einmalig im "onCreate" der Activity zu setzen:
    Code:
     this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
    
     

    #14
    baggernix, deppchef666, otto2 and 2 others like this.
  15. Qbit42 Gingerbread Oct 19, 2015

    Qbit42, Oct 19, 2015 :
    Wow, was für eine tolle und umfangreiche Antwort. Das ist schon fast reif für Wikipedia. Danke. :)
     

    #15
    otto2 likes this.
  16. john_tldr Donut Oct 22, 2015


    #16
  17. lfhouben Cupcake Jan 30, 2016

    lfhouben, Jan 30, 2016 :
    I have tried to apps on a oneplus 2 since we are getting a similar solution in the Netherlands. It seems however that the oneplus 2 doesn't support open mobile api. Is there a trhread where this is promoted as a feature for oxygen os?
     

    #17
  18. john_tldr Donut Feb 2, 2016

    john_tldr, Feb 2, 2016 :
    Hi!

    Since my last posting here in the thread I have learned more about this topic, so I will post some updates. I have written lots about my new insights on Google+.

    In short:
    I found out that since Android 5 every phone *should* have the System API needed to send commands to the SIM card (that's about the keyword "plain APDU access" I mentioned above). (Because Google added some new system APIs in the TelephonyManager class starting with Android 5).

    This means that if you have the ability to install system apps and files on the /system partition (for example via custom recovery or with a root filemanager) then you should be able to install the Open Mobile API on every phone. I compiled a version of the OpenMobile API which should run on Android 5.x and Android 6.x. You can download this readily compiled version from my Github account.

    BUT:
    Unfortunately this is only one half you need for working NFC payments. :-( If you manage to install the Open Mobile API, then all these payment apps (like the Austrian Bankomatkarte Mobile) will seem to work perfectly (the app will do its checks, it can install all needed data on the SIM card, etc.) but the actual payment at the store still *might* not work.

    The problem is the following:
    In my Google+ posting, I described the preconditions needed for working NFC payments and if you look there at point (3) and (4) you see that you also need a special physical hardware connection between the NFC chipset of your phone and the SIM card (a so called Single Wire Protocol connection).

    This is needed because during the actual payment process at the store, Android and all the apps on your phone are not involved at all. The payment is directly done between the NFC chipset and the SIM card. Not a single line of code within Android is executed during the payment. Not even the Open Mobile API is involved.

    Only the NFC chipset and the SIM card. For this to be working, the NFC chipset (optionally) directly powers the SIM card and directly talks to the SIM card using this Single Wire Protocol connection. So if this physical connection does not exist, then the NFC payment cannot work (even if you have the Open Mobile API installed).

    After my posting at Google+ the Bank Austria offered me the 2 new Nexus devices (Nexus 5X and Nexus 6P) for testing for a few weeks and with these devices I exactly had this problem: I was able to install the Open Mobile API, so the banking card apps worked fine, they could communicate with the SIM card and install the banking card details on the SIM, but actual payment over NFC was impossible, as these devices didn't have this needed hardware connection.

    So back to this forum's topic: I do not own a Oneplus device, therefore I cannot tell if they included the SWP connection or not, so somebody needs to try.

    I hope these informations will help you further. :)
     

    #18
    rarog and deppchef666 like this.
  19. 3ernd Cupcake Jul 3, 2016

    3ernd, Jul 3, 2016 :
    Hallo, ich das Thema ist schon etwas älter aber hoffentlich nicht tot (nach dem es eine rein österreichische Geschichte ist sind Infos schwer zu bekommen), mal die Frage wie sich herausfinden lässt ob die SWP da ist? Info von oneplus, zahlen probieren oder gibts noch eine Möglichkeit?
    LG Bernd

    PS die OMAPI 2 scheint auf 6.0.1 mit root zu funk
     

    #19
  20. G_fgj111_ZVFC Cupcake Sep 5, 2016

    G_fgj111_ZVFC, Sep 5, 2016 :
    Hi,

    I have still a open ticket for that issue see below:


    Johannes Fritz-GsölsAugust 22, 2016 22:21
    Hello,

    enclosed two screenshots:
    please tell me what are the difference between HTC Android 5
    and OnePlus Android 6 regarding the smardcardservices to get in contact with the nfc sim card?

    • Johannes Fritz-GsölsAugust 23, 2016 13:25
      Hi,



      I just switched my nfc sim card to my old HTC One M7 à just see the pictures there - if I would, I had could activate the nfc payment

      the same case I uptated to last oxygen 3.2.4 version.




      So please for the next update provide the need open mobile API!

      Please give me a short feedback

      THX and BR

      Johannes



      2016-08-22 22:21 GMT+02:00 fgj111 . <fritzgsj@gmail.com>:

      Hello,




      enclosed two screenshots:

      please tell me what are the difference between HTC Android 5

      and OnePlus Android 6 regarding the smardcardservices to get in contact with the nfc sim card?





      2016-08-17 16:47 GMT+02:00 Drew (OnePlus Support) <http://oneplus.net/support>:
    • [​IMG]
      DrewAugust 24, 2016 15:46
      Hello Johannes,

      Good day! Thank you for keeping in touch.

      We will try our very best to endorse this matter to our ROM Team and have this one added to the next update.

      Should you need further assistance, please let us know.

      Regards,

      Drew


    • [​IMG]
      Johannes Fritz-GsölsYesterday at 10:56
      Still wait for the ROM Update status - please send me a Short feedback about it, don't close the Ticket before it is solved
      BR

      Gesendet mit BlueMail für iPad
    • [​IMG]
      DrewYesterday at 20:29
      Hi Johannes,

      Good day! Thank you for keeping in touch.

      With regards to your concern, you can just check that on forums and check the system update on your phone as well.


      Thank you for the cooperation.

      Regards,

      Drew
    I think that isn't a really good support, isn't it?

    Screenshot from HTC One M7 where my Elba pay app can work
    [​IMG]

    [​IMG]

    Screenshot from OP3 still not working the Elba pay app
    [​IMG]

    [​IMG]
     

    #20