sp1d3rb0y / Navigoat

Android PoC for reading the new french transportation card "Navigo" with NFC
Do What The F*ck You Want To Public License
22 stars 4 forks source link

Création de mon application mobile #3

Open jordanbrn opened 4 years ago

jordanbrn commented 4 years ago

Bonjour, je me présente je suis Jordan Etinault, étudiant en développement web et mobile et actuellement je développe une application mobile Android (avec le Framework Apache Cordova), améliorant la mobilité en Normandie. Aujourd'hui l'application permet de trouver un itinéraire, d'avoir les prochains départs à un arrêts et de connaître l'ensemble des lignes d'une réseaux de transport en Normandie.

Contexte

En Normandie, nous avons comme en Ile de France une seule carte de transport permettant de voyager sur l'ensemble des réseaux, la carte Atoumod. La carte Atoumod est une carte sans contact, utilisant Calypso. j'arrive à lire les données avec votre application mobile Navigoat. C'est pourquoi j'aimerais que vous m'aiguiller sur certains points si vous le voulez bien.

But de la fonctionnalité

Actuellement, je développe une fonctionnalité permettant aux voyageurs de connaître le solde de leur carte Atoumod. J'utilise donc le NFC, et jusqu'à présente j'arrive à sélectionner les fichiers de la carte et lire les enregistrement de ce fichier. Mais c'est la que sa pose problème. Dans le code ci-dessous j'ai le fichier 2010 qui contient mes dernières validations.

":2000:2010": {
    "records": {
        "1": "856dfbd14048a230e8281915c0080008e70adbe5000000000000000000",
        "2": "856df2d14048a088e938793878000008e70adbe5400000000000000000",
        "3": "8569e5d14048a0b0e938793878080008e70ad3c1400000000000000000",
        "4": "8569e0d14048a208e8286115c0000008e70ad3c1000000000000000000",
        "5": "844da8514048a0b0e93879387808000867089b3c400000000000000000",
        "6": "844d9e514048a088e93879387800000867089b3c400000000000000000"
    },
    "fci": "85170804041d061f1212120103030300000000000000000000"
}

Mais comme vous pouvez le voir, j'obtient seulement des chaines hexa incompréhensible que je n'arrive pas à décrypter, car tout simplement je ne comprend pas de quelle manière je dois m'y prendre. Pouvez vous m'aider sur ce point. Merci par avance.

sp1d3rb0y commented 4 years ago

Bonjour Jordan, et pardon pour le retard, Pourriez-vous me donner plus d'indications quant a votre demarche? Vous me dites "J'arrive a lire les donnees avec votre application", qu'entendez-vous par-la? Le dump json que vous me fournissez est-il extrait de l'application? Dans tous les cas, je doute pouvoir vous etre utile concernant l'interpretation de ces donnees; le code de Navigoat est grandement inspire des excellents travaux des projets Pssi et Cardpeek (https://github.com/L1L1/cardpeek/), projet qui centralise un certain nombre d'implementations de divers reseaux de transports francais et europeens (voir le dossier https://github.com/L1L1/cardpeek/tree/master/dot_cardpeek_dir/scripts/calypso, par exemple pour Montpellier dans le fichier c250n64.lua). Le probleme etant que chaque ville/region encode ses donnees comme elle l'entend, necessitant un travail de reverse engineering parfois couteux (que je n'ai pas realise pour le pass Navigo, tout ayant deja ete fait dans lesdits projets). Pour resumer, je vous invite a tenter de lire votre carte de transport a l'aide de l'un de ces logiciels, afin d'identifier les differents champs, ainsi que leur interpretation; une fois ce travail fait, la lecture sans-contact sera identique (le parsing des donnees en tout cas). En esperant avoir repondu a votre question,