Esup-nfc-tag-droid permet d'encoder et de lire 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)
L'application est packagée sous la forme d'un apk qu'il faudra installer sur un smartphone Android en autorisant les applciations de sources inconnues.
L'application peut être installée et debugée depuis Android-Studio ou complilée directement à l 'aide de Gradle
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)
L'application est prévue pour tourner sous Android 5 minimun
Un smartphone Android équipé d'un lecteur NFC et disposant d'un accès Internet
git clone https://github.com/EsupPortail/esup-nfc-tag-droid.git |
N'hésitez pas à installer ces briques en fonction de vos habitudes et de votre OS.
Ici on propose l'installation manuelle sur un linux en ligne de commandes (sur la machine faisant office de serveur directement).
Notez que l'installation d'Android Studio ( https://developer.android.com/studio ) sur un poste client est sans doute plus simple/direct à installer et mettre en oeuvre.
On peut simplement récupérer la version 2.14.1 depuis l'url suivante :
https://gradle.org/next-steps/?version=2.14.1&format=bin
En dehors d'android studio, la récupération du SDK d'Android se fait via le sdk-tools.
https://developer.android.com/studio/#command-tools
On le télécharge et on le dézippe en tant qu'utilisateur (esup ici pour nous) qui se chargera de compiler/packager l'applciation android.
Le sdk-tools est donc disponible ici : /home/esup/sdk-android-tools
On installe mainetant le sdk d'android , level 22 :
[esup@carbonne bin]$ ./sdkmanager 'platforms;android-22' [esup@carbonne bin]$ ./sdkmanager 'build-tools;22.0.1' |
On accepte au passage la licence proposée.
Le SDK et outils associés ont ainsi été installéq dans le home d'esup :
On pourra positionner ANDROID_HOME ainsi dans le .bashrc de l'utilisateur esup :
[esup@carbonne ~]$ echo 'export ANDROID_HOME=/home/esup' >> ~/.bashrc |
Si à la compilation (cf ci-dessous compilation via gradle clean assemble), vous trouvez des erreurs types
java.io.IOException: Cannot run program "/home/esup/build-tools/22.0.1/aapt": error=2, Aucun fichier ou dossier de ce type |
Il vous manque sans doute des librairies.
En exécutant /home/esup/build-tools/22.0.1/aapt directement on voit quelle librairie il cherche.
Ensuite un
yum whatprovides 'libz.so.1' |
nous donne le paquet à installer avec yum install.
[root@carbonne ~]# yum install libstdc++* zlib* |
Des librairies 32 bits seront à installer notamment.
keytool -genkey -v -keystore esup-android-apps.keystore -alias LeoDroidApp -keyalg RSA -keysize 2048 -validity 10000 |
gradle clean assemble |
cp ./build/outputs/apk/esup-nfc-tag-droid-release.apk /<path to>/esup-nfc-tag-server/src/main/resources/apk/esupnfctagdroid.apk |