Jump to content

EAP-SIM


napodan
 Share

Recommended Posts

Ce sujet est destine aux developpeurs (et uniquement a eux). Merci de ne pas le polluer avec des "Je veux l'EAP-SIM", "vite l'EAP-SIM" : il y a le site http://code.google.c...tion&colspec=ID qui n'est pas prevu pour ca, mais on ne peut plus rien y trouver.

Je vous propose ici, de regrouper les differents essais que vous avez pu effectuer et voir s'ils ont fonctionne.

Voici mon premier essai :

Rom oxygen 2.3.2 pour htc desire

Dans le repertoire racine :

mkdir patch

cd patch

wget http://seek-for-andr...d-api-2_3_0.tgz

wget http://seek-for-andr...rvice-0_9_8.tgz

wget http://seek-for-andr...ka_0.4.1.tar.gz

tar xvf smartcard-api-2_3_0.tgz

tar xvf pcsc-system-service-0_9_8.tgz

tar xvf eap-sim-aka_0.4.1.tar.gz

cd ..

patch -p1 < patch/smartcard-api-2_3_0/smartcard-api.patch

patch -p1 < patch/smartcard-api-2_3_0/uicc.patch

patch -p1 < patch/pcsc-system-service-0_9_8/pcsc_system_service_v098.patch

patch -p1 -i patch/eap-sim-aka_0.4.1.patch

make update-api

make oxygen

Resultat : avec logcat wpa_supplicant *:S les traces s'arretent sur :

SCARD : select file 3F00

en rajoutant plus de traces, le probleme vient du fichier pcsc_func.c, methode scard_transmit, appel a la methode SCardTransmit (de pcscd a priori).

Je n'ai pas trouve comment on pouvait faire plusieurs post a la suite...

--------------------------------------------------------------------------------------

J'ai recupere sur internet une rom "freemod". Lorsqu'on regarde la liste des binaires de la rom, il n'y a pas de daemon pcscd. J'ai egalement lu dans certaines news, que free se passait de la norme PC/SC pour lire les informations de la rom. Je n'ai rien trouve pour l'instant qui puisse remplacer le demon pcscd.

Dans l'idee, j'ai quand meme essaye de n'appliquer aucun patch a la rom oxygen sauf a modifier le fichier :

external/wpa_supplicant_6/wpa_supplicant/defconfig pour remplacer la ligne :

#CONFIG_EAP_SIM=y

par

CONFIG_EAP_SIM=y

Resultat, pas de plantage, mais impossible de se connecter sur le reseau freewifi_secure.

Edited by napodan
  • Like 1
Link to comment
Share on other sites

Bonjour,

Dans external/wpa_supplicant_6/wpa_supplicant/defconfig, as-tu aussi remplacé:

#CONFIG_PCSC=y

par

CONFIG_PCSC=y

Il semble que cela soit nécessaire pour l'EAP-SIM d'après le commentaire qui est écrit juste au dessus de cette option:

# PC/SC interface for smartcards (USIM, GSM SIM)

# Enable this if EAP-SIM or EAP-AKA is included

  • Like 1
Link to comment
Share on other sites

J'ai fait un essai avec CONFIG_PCSC=y : ca ne compile plus : dans les sources de pcsc, on inclut un fichier winscard.h (de memoire) or ce fichier n'existe pas de base. Il faut le patch pcsc_system_service_v098.patch pour pouvoir compiler. Dans mon premier essai (avec les 4 patchs), c'est ce que j'ai fait. Mais mon telephone bloque dans le demon pcscd.

Par contre, je viens de voir sur le site http://code.google.c...iki/UICCSupport :

"We've tested the SmartCard? API also with the Nexus One but the required baseband & RIL modifications are not available in public thus you cannot use the Nexus One for the moment." Sachant qu'il y a beaucoup de ressemblance entre le desire et le nexus one, je me demande si je ne perds pas mon temps. Je suis bon pour chercher plus d'infos sur ma radio et mon RIL. Si quelqu'un a des liens sur le sujet, je suis preneur.

Edited by napodan
  • Like 2
Link to comment
Share on other sites

Effectivement, il manque l'accès à cetraines fonctionnalités dans la librairie "RIL" (libhtc_ril.so dans mon cas).

Cependant, un développeur à réussi à patcher cette librairie pour les Samsung et HTC monocore afin d'activer le "Sim Access Protocol" (voir http://www.android-rsap.com ).

Je vais voir si on peut exploiter cela...

  • Like 1
Link to comment
Share on other sites

Merci pour l'information. J'essaye de trouver des informations sur les RILs mais je ne trouve pas grand chose. Il y a des sites qui recensent les RIL dispos, mais impossible de connaitre les differences entre elles.

[MAJ] : Je viens de jeter un coup d'oeil au site et j'ai pas bien compris a quoi sert l'appli rsap. Dans notre cas, ce qui nous interesse, c'est une RIL qui permette d'envoyer des APDU command a la SIM. Je n'ai rien trouve de tel sur ce site. Je continue de chercher.

Edited by napodan
  • Like 1
Link to comment
Share on other sites

J'ai vu que ma RIL me permettait de lancer les commandes AT+CSIM (mais pas les commandes AT+CCHO necessaires au patch EAP-SIM). J'ai trouve des sites pas franchement clair qui parlait de la possibilite de faire de l'EAP SIM uniquement avec AT+CSIM. Est-ce que quelqu'un aurait des infos sur le sujet ?

Merci.

  • Like 1
Link to comment
Share on other sites

Pour Zius : mon premier post correspond a l'integration de ce patch qui ne fonctionne pas car a priori, il manque 2 commandes AT dans la ril du htc desire. Ce patch se base sur les commandes AT-CCHO et AT-CCHC qui ne sont pas implementees dans la RIL du desire. Mais merci quand meme.

Sinon, j'ai recupere une rom freemobile du galaxy S2. La gestion de l'eap-sim est differente de celle du zte. De la a en deduire que free a demande aux constructeurs d'integrer l'EAP-SIM et ne l'a pas fait lui meme... A priori, samsung fourni une librairie RILcliente (avec les sources disponibles). Je n'ai pas trouve les sources avec l'eap-sim integre mais je vais quand meme regarder les sources, je pourrais peut-etre les adaptes au desire. A voir...

Edited by napodan
  • Like 1
Link to comment
Share on other sites

Bonjour Napodan,

tu donnes pas mal de détails dans tes différents posts, mais peu de sources.

Pas que je ne souhaites pas chercher par moi-même, mais étant donné que tu as déjà acquis pas mal d'informations, pourrais-tu mettres les liens de ce que tu trouves. Ca pourrait être très utile :)

Sinon, dans ton 1er post, tu dis que tu rencontres des erreurs liés au pcsc. Peux-tu mettre un pastebin ou autre de ce que tu vois dans la log ?

Tu parles par exemple des commandes AT. Comment as-tu vérifier la présence ou non de celles-ci ? Dans les sources ? Directement depuis le téléphone en console ? Avec une appli ?

Je penses que le sujet peut intéresser beaucoup de monde, et qu'on doit pouvoir faire appel aux compétences de chacun pour avancer, mais malheureusement, ca manque cruellement de détails.

J'essaye pour ma part de compiler les sources AOKP 4.0.4 pour le HTC Sensation avec les patchs, mais pour le moment je rencontre un problème de compilation.

A savoir que déjà le patch pcsc est fait pour Android 2.3, alors je dois faire pas mal de modif à la main, et j'ai visiblement un problème de variable déclarée.

Seuleument, je ne suis pas dev, et à part des base en programmation ...

A bientot

Edited by Alouch47
  • Like 1
Link to comment
Share on other sites

Bonjour Alouch,

tu donnes pas mal de détails dans tes différents posts, mais peu de sources.

J'essaye, des que je peux, de donner mes sources : le probleme, c'est qu'entre le moment ou je fais mes recherches et le moment ou je viens sur frandroid, je n'ai plus forcement les liens. Mais si tu le souhaite, je pourrais te trouver les sources. De plus, je ne suis pas forcement chez moi lorsque je suis sur frandroid et mes traces/log sont sur mon PC a la maison.

Sinon, dans ton 1er post, tu dis que tu rencontres des erreurs liés au pcsc. Peux-tu mettre un pastebin ou autre de ce que tu vois dans la log ?

Desole, mais je ne sais pas ce que c'est qu'un pastebin (je debute sous android et j'ai pas encore tout assimile). Sinon, comme dis dans mon 1er post, le logcat s'arrete sur SCARD: Select File 3F00. J'ai rajoute des traces moi meme, et j'ai fini par tombe sur une requete envoyee a la RIL qui reste sans reponse.

Tu parles par exemple des commandes AT. Comment as-tu vérifier la présence ou non de celles-ci ? Dans les sources ? Directement depuis le téléphone en console ? Avec une appli ?

Tout simplement avec la commande strings sous UNIX, c'est pas tres professionnel mais ca permet de comprendre pas mal de chose. Sous Linux, tu fais un strings libhtc_ril.so et tu trouveras la liste des commandes implementees dans la librairie (en cherchant dans toutes les chaines de caracteres de la librairies).

J'essaye pour ma part de compiler les sources AOKP 4.0.4 pour le HTC Sensation avec les patchs, mais pour le moment je rencontre un problème de compilation.

A savoir que déjà le patch pcsc est fait pour Android 2.3, alors je dois faire pas mal de modif à la main, et j'ai visiblement un problème de variable déclarée.

Si je peux t'aider, n'hesite pas a me demander : personnellement, j'ai laisse tomber l'option pcsc car a priori les ROM "free" s'en passent (et ce patch n'est plus maintenu).

Une astuce que j'utilise pour savoir ce qu'il y a dans les ROM de "free" : tu fais un strings sur leur wpa_supplicant et tu compares avec celui fait sur ton wpa_supplicant. C'est comme ca, que je me suis apercu qu'ils n'utilisaient pas le PCSC (pas de trace SCARD, plus une news que j'ai vu sur internet) pour le ZTE (par contre, ils utilisent une application smartcardapi que l'on peut trouver dans /system/app).

Pour le samsung, il n'y a pas de smartcardapi, par contre, on trouve une librairie Ril cliente et j'ai l'impression que leur wpa_supplicant utilise cet librairie. Mais je n'ai pas fini de decortiquer la ROM.

Edited by napodan
  • Like 2
Link to comment
Share on other sites

Salut, merci pour ta réponse :)

Une astuce que j'utilise pour savoir ce qu'il y a dans les ROM de "free" : tu fais un strings sur leur wpa_supplicant et tu compares avec celui fait sur ton wpa_supplicant. C'est comme ca, que je me suis apercu qu'ils n'utilisaient pas le PCSC

Et c'est là que c'est le KK. :-( D'après les lectures que j'ai eu, l'utilisation du PCSC était nécessaire, car le protocol de communication entre le wpa_supplicant et la SIm étaient différents (T=0 et T=1, bient que je ne sache pas à quoi ca corresponde)

Je suis actuellement en train de consulter http://hostap.epitest.fi/wpa_supplicant/ (plus particulierement http://hostap.epitest.fi/wpa_supplicant/devel/) pour essayer de trouver des pistes.

  • Like 1
Link to comment
Share on other sites

Du peu que j'ai compris, le T=0 ou le T=1 correspond au type de canal employe pour la communication "basic channel" ou "logical channel". D'apres ce que j'ai cru comprendre, on ouvre et on ferme un "logical channel" avec les commandes AT+CCHO et AT+CCHC (que n'a pas la RIL de mon HTC a priori) : http://code.google.c...iki/UICCSupport

D'apres les sites suivants, il est possible d'avoir l'EAP-SIM en passant directement par le "basic channel"

:

http://www.pcinpact....nect-eapsim.htm et http://code.google.c...tail?id=8&can=1 (d'ailleurs je n'ai pas essaye ce patch : a voir)

Si tu arrives a compiler ta rom, tu verras que cette rom a plusieurs binaires en plus dont le daemon pcscd qui n'existe pas dans les rom samsung et zte de free.

Enfin, si tu arrives a lancer l'application settings.apk et parametrer le freewifi_secure, tu verras dans ton fichier /data/misc/wifi/wpa_supplicant une ligne decrivant le pcsc. Or d'apres certains utilisateurs du freewifi_secure, cette ligne n'apparait pas.

J'ai decide de reprendre tout de zero (ou presque) : j'ai compile ma rom avec l'option CONFIG_EAP_SIM=y. Premier probleme, je n'arrive pas a passer l'etape d'autentification (commande AT+IMSI). D'apres ce que j'ai vu, ca passe par la smartcard pour le patch alors que pour les autres applications ca passe par le daemon rild. J'en suis la de mes recherches : comment acceder a la RIL directement...

[MAJ]

Le site suivant donne des infos sur les 2 methodes d'implementation de l'eap-sim :

http://twittweb.com/... des i-15840841

Avec pcsc ou avec la commande AT+CSIM (qui elle a l'air d'etre implementee dans la RIL du desire).

Je n'ai toujours pas trouve comment on pouvait ecrire 2 post a la suite ...

--------------------------------------------------------------

Pour lancer les commandes AT a la main :

http://rootzwiki.com...im-unlock-help/

Manipulation a faire avec beaucoup de precaution (pour ne pas locker la SIM par exemple..) dans un terminal ou adb shell

C:\ADB\android-sdk\platform-tools>adb shell

$ su

su

# stop ril-daemon

stop ril-daemon

# cat /dev/smd0 &

cat /dev/smd0 &

# echo -e 'ATE1\r' > /dev/smd0

echo -e 'ATE1\r' > /dev/smd0

# 0

#

# echo -e 'ATV1\r' > /dev/smd0

echo -e 'ATV1\r' > /dev/smd0

# ATV1

OK

Apres, vous pouvez enchainer d'autres commandes AT (voir ce site par exemple pour d'autres commandes http://wiki.openmoko.org/wiki/Hardware:AT_Commands). En ce qui me concerne, ca n'a pas etait franchement un succes. J'ai vu sur d'autres sites (http://epsy.ath.cx/g...6fda824a9c9d49b par exemple), qu'on pouvait rajouter des sleep entre les commandes.

En tout cas, j'etais bon pour un reboot apres avoir jouer avec ces commandes.

Edited by napodan
  • Like 1
Link to comment
Share on other sites

Salut,

ok pour le t=0 et t=1, c'est ce qu'il me semblait mais je n'étais plus tellement sûr au moment de poster.

Je vois que tu as fait pas mal de recherches. Même si tes tentatives n'ont pas abouties pour l'instant, au moins c'est un pas en avant.

J'ai toujours un problème de compilation. Je vais essayer de repartir des sources et ne pas patcher la partie pcsc.

En tout cas, on a pas mal de choses intéressantes.

Je continue de creuser. Mais ma crainte c'est que les rom sur lesquelles il n'y pas de pcscd doivent avoir l'interface de communication avec le wpa_supplicant directement dant la RIL, et donc la partie complétement fermée :/

Edited by Alouch47
  • Like 1
Link to comment
Share on other sites

Mais ma crainte c'est que les rom sur lesquelles il n'y pas de pcscd doivent avoir l'interface de communication avec le wpa_supplicant directement dant la RIL, et donc la partie complétement fermée

Apres avoir lu pas mal de chose, il y a toujours quelque chose que je ne comprends pas : est-ce que les telephones ont un lecteur PCSC ? Sur certains sites, on parle de modem et j'ai un peu de mal a saisir la difference. J'ai l'impression que l'eap-sim avec pcsc est plutot prevue pour les ordinateurs (wpa_supplicant est prevu pour les linux) alors que l'eap-sim par modem est plutot prevu pour les smartphone (mais ceci suppose de modifier le wpa_supplicant pour attaquer la RIL directement). Pour la RIL, j'ai vu que samsung mettait les sources a disposition. Il faudrait reussir a avoir les sources incluant l'eap-sim.

  • Like 1
Link to comment
Share on other sites

Il semblerait que HTC sorte des ROM compatibles eap-sim. J'ai vu que les HTC evo3D et sensation etaient compatibles (meme s'il faut faire quelques bidouilles pour l'activer). Reste plus qu'a trouver les sources (la rom insertCoin pour sensation semble etre compatible).

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Salut napodan,

As-tu réussi à te connecter à FreeWifi_secure ?

Si oui, crois-tu que je puisse le faire avec mon Desire HD sous Ice Cold Sandwich ?

Merci.

Edit : j'ai essayé rSAP mais toujours "Problème d'authentification" lorsque je veux me connecter à FreeWifi_secure.

Edited by db77
  • Like 1
Link to comment
Share on other sites

Malheureusement, je n'ai pas eu le temps d'avancer dans le code du wpa_supplicant. Par contre, j'ai lu qu'on pouvait utiliser l'eap-sim avec des ROM RUU en GB. Seulement, je n'ai rien trouve a part ca :

-> Official RUU Desire Sense Gingerbread v1.2 by NeoPhyTe.x360

Lien XDA : http://forum.xda-dev...d.php?t=1151765

-> Pre-rooted stock Gingerbread 3.14 by Teppic74

Lien XDA : http://forum.xda-dev...d.php?t=1200261

Avec ces ROM, ca ne fonctionne pas. Apres, je me demande si la radio n'a pas un role egalement.

Tu pourras trouver plus d'infos la :

Peut-etre que ca fonctionnera pour ta ROM...

Edited by napodan
  • Like 1
Link to comment
Share on other sites

  • 7 months later...

EDIT:

En relisant mieux le post de napodan, je m'aperois que je redis ce qu'il a déjà dit...

Salut,

je ne me considère pas comme un dev mais j'ai réussi la compilation de CyanogenMod7 avec les patchs qu'utilise napodan.

Il m'a fallu modifier deux fichier de support de langue (value-nl/arrays.xml et value-el/arrays.xml). La faute aux mainteneur de CM7. Il suffit de prendre modèle sur les autres fichiers de langue (fr par exemple) et de rajouter les 3 lignes qui manquent.

Bref!

Avec cette rom, j'ai tenté de me connecter à freewifi_secure mais ça coince.

Je poste ici la fin de la sortie de /proc/kmsg:

D/wifi	( 221): wifi doCommand: ret=-1
D/dalvikvm( 297): GC_CONCURRENT freed 403K, 48% free 3292K/6215K, external 1094K/1450K, paused 6ms+16ms
D/dalvikvm( 411): GC_EXPLICIT freed 3K, 50% free 2698K/5379K, external 0K/0K, paused 21ms
I/wpa_supplicant( 2101): SCARD: initializing smart card interface
I/wpa_supplicant( 2101): SCARD: establish context
I/wpa_supplicant( 2101): SCARD: list readers
I/wpa_supplicant( 2101): SCARD: list readers (2)
I/wpa_supplicant( 2101): SCARD: available readers
I/wpa_supplicant( 2101): SCARD: Available reader='SIM: UICC 00 00'
I/wpa_supplicant( 2101): SCARD: Available reader='SD: Secure SD Card 01 00'
I/wpa_supplicant( 2101): SCARD: Available reader='eSE: SmartMX 02 00'
I/wpa_supplicant( 2101): Waiting for card insertion	:
I/wpa_supplicant( 2101): SCARD: Selected reader='SIM: UICC 00 00'
I/wpa_supplicant( 2101): SCARD: connect card
I/ifdhandler smartcardapi( 1920): IFDHSetProtocolParameters
I/ifdhandler smartcardapi( 1920): IFDHSetProtocolParameters - return IFD_SUCCESS
I/wpa_supplicant( 2101): SCARD: card=0x169cc active_protocol=2 (T1)
I/wpa_supplicant( 2101): SCARD: verifying USIM support
I/wpa_supplicant( 2101): SCARD: select file 3f00
I/ifdhandler smartcardapi( 1920): IFDHTransmitToICC

ca commence à coincer ici:
I/ifdhandler ISmartcardAPI( 1920): transmit
W/SmartcardSystemService( 221): transmit exception: java.lang.NullPointerException
W/SmartcardSystemService( 221): transmit Error object: org.simalliance.openmobileapi.service.SmartcardError@2b2850b0
W/SmartcardSystemService( 221): getLastError - message invalid handle
W/wpa_supplicant( 2101): SCARD: SCardTransmit failed (err=0x80100016)
W/wpa_supplicant( 2101): SCARD: SCardTransmit failed (err=0x80100016)
W/wpa_supplicant( 2101): SCARD: USIM is not supported

Puis ça switch en GSM mais c'est pareil:
W/wpa_supplicant( 2101): SCARD: Trying to use GSM SIM
I/wpa_supplicant( 2101): SCARD: select file 3f00
I/ifdhandler smartcardapi( 1920): IFDHTransmitToICC
W/SmartcardSystemService( 221): getLastError - message invalid handle
W/SmartcardSystemService( 221): getLastError - message invalid handle
W/wpa_supplicant( 2101): SCARD: SCardTransmit failed (err=0x80100016)
W/wpa_supplicant( 2101): SCARD: SCardTransmit failed (err=0x80100016)
W/wpa_supplicant( 2101): SCARD: Failed to read MF
I/wpa_supplicant( 2101): SCARD: deinitializing smart card interface
I/ifdhandler smartcardapi( 1920): IFDHPowerICC
I/ifdhandler smartcardapi( 1920): IFDHPowerICC
W/wpa_supplicant( 2101): Failed to initialize SIM (pcsc-lite)

Je suis en train d'essayer de compiler à partir des sources d'android 2.3.7-r1 "nature". Pour l'instant, ça roule. Je vous tiens au jus.

Edited by funkygoby
  • Like 1
Link to comment
Share on other sites

Ca s'appelle tethering usb. J'ai réussi à le faire chez moi (box->android->pc). Ca fonctionne très bien. Regardes dans Sans-fil & Réseau partage connexion.

Certains opérateurs facturent le tethering (orange). Free non, tu fais ce que tu veux de ta connexion.

Pour la clé usb 3G. Elle te servirait à recevoir ta carte sim? La connexion passera de toute façon par le wifi. Techniquement ça me semble possible.

Sous linux, il faudrait que le support eap-sim soit compilé + pcsc smartcard à mon avis. La configuration devrait se faire par le fichier de conf de wpa_supplicant.conf

Edited by funkygoby
  • Like 1
Link to comment
Share on other sites

@benxico

Merci de ne pas polluer ce topic, dont le sujet initial est le support de l'EAP-SIM et non le teethering.

Je te conseille de rechercher la solution sur le forum et/ou le web, et si besoin, de créer ton propre topic.

Pour ma part, je vais tenter les manipulations précédentes sur un HTC Explorer. Je posterai mes résultats une fois que j'aurai renseigné (et compris) toutes les options de configuration pour le build.

Je reste aux aguêts!

  • Like 1
Link to comment
Share on other sites

Vous m'avez pas compris, je sais faire un partage de connexion 3G via l'usb avec un tel Android pas de soucis.

Mais essayez donc de basculer de la 3G à une connexion en wifi quand le tethering usb est actif. Ben ça fonctionne plus, en l'occurence dès qu'on passe en wifi le tethering usb fonctionne plus.

Ma question est un peu lié à votre sujet, puisque mon but est de partager une connexion wifi eap sim (freewifi secure) établie avec un téléphone android vers un autre périphérique, car il peut être sympas de profiter de cette connexion sur autre chose que le tel.

Apriori sur un téléphone il reste l'interface USB ou bluetooh vu que le wifi est déja occupé par la connexion freewifi sécure et qu'il y a pas de second interface wifi sur les tel que je connais. L'usb étant plus universel que le bluetooh je pense que c'est mieux d'arriver à le faire en USB.

Pour ne pas polluer plus ce sujet j'en ai créé un dédié >> ici <<

Pour la clé usb 3G. Elle te servirait à recevoir ta carte sim? La connexion passera de toute façon par le wifi. Techniquement ça me semble possible.

Ouep mon but actuel c'est de relier un raspberry au net en freewifi sécure soit à travers un téléphone si on peut partager la connexion freewifi secure du téléphone vers le raspberry, soit via un dongle wifi sur le rasberry + une clef 3G pour récupérer l'authentification en eap sim :)

Bien amicalement,

Benxico

Edited by benxico
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...