Esup-nfc-tag-droid permet de lire (et potentiellement encoder) les cartes Mifare Desfire.
Le client s'appuie sur la platefome https://github.com/EsupPortail/esup-nfc-tag-server qui calcule les commandes (APDU) à transmettre à la carte.
Esup-nfc-tag-droid permet d'utiliser un smartphone Android pour badger, en utilisant l'UID (CSN) ou en faisant une lecture d'un fichier Desfire (avec autentification AES)
Une APK ESUP officielle et générique d'esup-nfc-tag-droid est diffusée depuis le Google Play ESUP : https://play.google.com/store/apps/details?id=org.esupportail.esupnfctagdroid
esup-nfc-tagdroid est également disponible depuis F-Droid : https://f-droid.org/packages/org.esupportail.esupnfctagdroid/
L'application peut aussi être packagée sous la forme d'un apk que l'on peut alors installer sur un smartphone Android en autorisant les applications de sources inconnues
...
.
L'application peut être installée et debugée depuis Android-Studio ou
...
compilée directement à
...
l 'aide de Gradle
...
Pré-requis
Gradle 2.10 ou +
Pour le dev et debug : Android SDK API level 22, Android Studio 2
Récupération des source
Sommaire |
---|
Fonctionnalités
1 - L'application esup-nfc-tag-droid se comporte de la même manière que l'application Java [esup-nfc-tag-desktop] (https://github.com/EsupPortail/esup-nfc-tag-desktop "esup-nfc-tag-desktop")
2 - L'application repose sur un composant webview qui se connecte et affiche la vue fournie par esup-nfc-tag-server
3 - Après l'authentification Shibboleth il faut choisir la salle de badgeage
4 - Pour badger il suffit de poser une carte sur le lecteur nfc (à l'arrière du smartphone)
Environnement
Logiciel
L'application est prévue pour tourner sous Android 5 minimun
Materiel
Un smartphone Android (version 5 ou supérieur) équipé d'un lecteur NFC et disposant d'un accès Internet
APK officielle ESUP sur Google Play, F-Droid et Github
Vous pouvez utiliser directement l'APK officielle et générique diffusée depuis Google Play par ESUP :
https://play.google.com/store/apps/details?id=org.esupportail.esupnfctagdroid
L'APK envoyée sur Google Play le 9 nov. 2023 est la version 1.2.6 disponible également depuis le Tag github 1.2.6.
Cette version est également disponible depuis F-Droid.
Si vous êtes responsable d'un serveur esup-nfc-tag d'un établissement de l'ESR que vous souhaitez voir apparaître votre serveur esup-nfc-tag dans la liste des serveurs disponibles depuis cette version esup-nfc-tag-droid, vous pouvez en faire la demande au travers d'un Pull Request proposant la modification du listing des urls disponibles :
https://github.com/EsupPortail/esup-nfc-tag-droid/blob/master/src/main/assets/urls
Ce fichier est récupéré dynamiquement par esup-nfc-tag-droid à chaque démarrage, aussi dès que votre Pull Request est accepté, votre serveur esup-nfc-tag-server est disponible depuis un esup-nfc-tag-droid.
Sources
https://github.com/EsupPortail/esup-nfc-tag-droid
Bloc de code | ||||
---|---|---|---|---|
| ||||
Bloc de code | ||||
git clone https://github.com/EsupPortail/EsupNfcTagDroidesup-nfc-tag-droid.git |
Configurations
src/main/assets/esupnfctag.properties
Vous devez y spécifier l'url du serveur esupNfcTagServer :
esupNfcTagServerUrl = https://esup-nfc-tag.univ-ville.fr
build.gradle
Génération de l'APK
Si vous souhaitez proposer votre propre ESUP-NFC-TAG-DROID pointant directement sur votre serveur esup-nfc-tag, il vous faut construire votre propre APK.
Vous pouvez le faire de 3 manières :
- en utilisant Android Studio ( https://developer.android.com/studio), au 13/10/2023, Studio Giraffe a été testée avec succès
- en ligne de commande depuis un linux
Génération de l'APK en ligne de commandes
Pré-requis
- OpenJDK 11 (par exemple une distribution zulu d'openjdk 11 : https://www.azul.com/downloads/?version=java-11-lts&package=jdk#zulu)
Compilation esup-nfc-tag-droid
- esup-nfc-tag-droid génère des logs à destination d'un fichier de logs local au téléphone, à destination d'esupNfcTagServer (envoi de logs par POST au serveur) et à destination d'une adresse mail système. Les éléments paramétrables (mail systeme, serveur esupNfcTagServer) sont à configurer dans ce fichier src/main/assets/logback.xml
- modifier src/main/assets/esupnfctag.properties pour spécifier l'adresse de votre esup-nfc-tag-server
- Vous pouvez Vous pouvez y spécifier les paramètres de signature de votre APK dans build.gradle, si vous ne souhaitez pas utiliser ceux donnés par défaut (connus de tous). Vous devrez alors créé créer un keystore :
Bloc de code | ||||
---|---|---|---|---|
| ||||
keytool -genkey -v -keystore esup-android-apps.keystore -alias LeoDroidApp -keyalg RSA -keysize 2048 -validity 10000
|
src/main/assets/logback.xml
- Fichier de cinfiguration des logs, EsupNfcTagDroid génère des logs à destination d'un fichier de logs local au téléphone, à destination d'esupNfcTagServer (envoi de logs par POST au serveur) et à destination d'une adresse mail système.
- Les éléments paramétrables (mail systeme, serveur esupNfcTagServer) sont à configurer dans ce fichier src/main/assets/logback.xml
Obtention de l'APK pour l'installation sur mobile
Bloc de code |
---|
gradle clean assemble |
- build de l'APK depuis le répertoire source :
Bloc de code | ||||
---|---|---|---|---|
| ||||
chmod u+x gradlew
./gradlew clean assemble |
Integration dans esup-nfc-tag-server
- copier l'APK dans EsupNfcTagServer pour le mettre à disposition des utilisateurs :
Bloc de code | ||||
---|---|---|---|---|
| ||||
cp ./build/outputs/apk/release/esup-nfc-tag-droid-release.apk /<path to>/esup-nfc-tag-server/ |
...
src/main/resources/apk/esupnfctagdroid.apk |
- recompiler et redéployer esup-nfc-tag-server. Au redémarrage d'esup-nfc-tag-server la nouvelle version de l'
...
- apk sera prise en compte
- Vous pouvez aussi proposer le lien vers l'APK via esup-sgc (en ajoutant un "navbarapp" depuis l'onglet admin/navbarapp)
Il faut ensuire redéployer esupNfcTagServer et le relancer pour que ce nouvel APK soit disponible au téléchargement au travers de l'application serveur.
...