I'm trying to do the same thing!!  I want to control the credentials
passed to Android thorough my client application.  I don't see any way
of doing this through the API.  I'm still reading through all your
emails to see what you have tried.


On Apr 8, 2:49 am, a2ronus <a...@theipcompany.nl> wrote:
> Ok, I realize now that my post above is way too long. Sorry for that.
>
> Let's keep it simple: I currently have an app that runs with the
> system sharedUserId by siging it with the platform key. See 
> also:http://groups.google.com/group/Android-DevPhone-Updating/browse_threa....
>
> I still want to talk to wpa_supplicant for WPA2 Enterprise. I'm also
> trying a new approach: using Runtime and Process to be able to talk to
> wpa_cli, the command line interface program for talking to
> wpa_supplicant.
>
> When I run wpa_cli from "adb shell"(as root) I can enter a command
> such as 'help'. However, when I start wpa_cli (as system) using
> Runtime and Process (and Input- and OutputStreams) in my app and push
> the help command to wpa_cli, I don't get anything back.
>
> On 3 mrt, 19:35, YCW <ychinw...@gmail.com> wrote:
>
>
>
> > Does anyone know if Dount support WPA2-EAPor not ?!!
>
> > much thanks
>
> > On 2月23日, 下午8時18分, a2ronus <aaron.jan...@gmail.com> wrote:
>
> > > (Update: I got a reply from Jouni Malinen on the hostap mailinglist, I
> > > tried his approachm but that doesn't seem to work either. I posted the
> > > message below on the hostap mailinglist as well, since it seems to be
> > > an Android-wpa_supplicant combination problem)
>
> > > Hello Jouni,
>
> > > Thanks for the reply. I've tried talking to the Unix domain Socket,
> > > but it doesn't work. It appears to be a permission problem.
>
> > > You mentioned that Solution 3 should work.
> > > Quote from my previous post; "- Solution 3: Talking directly to the
> > > control interface of wpa_suplicant using Unix domain sockets. I found
> > > that the Android API supplies us with the LocalSocket class for
> > > this. ..."
>
> > > I have tried 2 ways of connecting to the wpa_supplicant Unix domain
> > > socket(s).
>
> > > 1. From an Android terminal emulator through wpa_cli.
> > > 2. I adapted an example Java Android program 
> > > (original:http://all4dev.blogspot.com/2009/02/android-localsocket-localserverso...).
>
> > > For clarity: each Android app has its own group and username, for
> > > example <group:user> = app_35:app_35. For each approach I adjusted
> > > wpa_supplicant.conf>ctrl_interface_group to allow an app access to the
> > > domain sockets, for example (ctrl_interface_group=app_35).
>
> > > Results approach 1 ( From an Android terminal emulator through
> > > wpa_cli. ):
> > > 1. I start up the Android terminal emulator and enter the command
> > > wpa_cli -p/data/misc/wifi/sockets/ctrl_wpa_79-0. I get the message:
>
> > > "Using interface 'tiwlan0'
> > > Could not connect to wpa_supplicant - re-trying"
> > > (The output is the same if I don't add the path to the socket, or
> > > change the path to /data/misc/wifi/sockets.)
>
> > > Results approaches 2a and 2b:
> > > Next, I tried it from an Android Java program (with the correct
> > > wpa_supplicant.conf.ctrl_interface_group and after
> > > wpa_cli>reconfigure) using 2 slightly different approaches:
> > > a. When I use 'tiwlan0' as LocalSocketAddress, I use an abstract
> > > namespace for the LocalSocket. When I do this I get a 'connection
> > > refused' error message from the Android debug tool logcat.
> > > b. When In use "/data/misc/wifi/sockets/ctrl_wpa_79-0", I use the
> > > Filesystem Namespace. I then get a 'permission denied' error message.
> > > a&b Both throw an IOException at the line "receiver.connect(new
> > > LocalSocketAddress(SOCKET_ADDRESS, NAMESPACE)); " (this happens when
> > > "if socket is in invalid state or the address does not exist.").
>
> > > So, or I'm doing something wrong, or something goes wrong with the
> > > socket permissions. In the adb shell output the file permissions for
> > > the sockets are set to <group:user> system:wifi.
>
> > > Below this message you can find the shell output and the Java code.
>
> > > Thanks for any help in advance.
>
> > > Kind regards,
>
> > > Aäron Jansen
>
> > > ***** Extra = ADB shell output showing location of sockets, and
> > > wpa_supplicant.conf *****
> > > C:\Users\ajansen\Desktop\android-sdk-windows\tools>adb root
> > > adbd is already running as root
>
> > > C:\Users\ajansen\Desktop\android-sdk-windows\tools>adb shell
> > > # cd /data/misc/wifi
> > > cd /data/misc/wifi
>
> > > # cat wpa_supplicant.conf
> > > cat wpa_supplicant.conf
>
> > > ctrl_interface=tiwlan0
> > > ctrl_interface_group=app_35
> > > network={
> > > ssid="aaron"
> > > proto=WPA2
> > > key_mgmt=WPA-EAP
> > >eap=PEAP
> > > pairwise=CCMP}
>
> > > #
>
> > > # cd sockets
> > > cd sockets
> > > # pwd
> > > pwd
> > > /data/misc/wifi/sockets
> > > # ls
> > > ls
> > > wpa_ctrl_79-1
> > > wpa_ctrl_79-0
> > > # ls -l
> > > ls -l
> > > srw-rw---- system  wifi             2010-02-23 10:23 wpa_ctrl_79-1
> > > srw-rw---- system  wifi             2010-02-23 10:23 wpa_ctrl_79-0
> > > #
>
> > > ***** Java code *****
> > > package com.example.demolocalsocket;
>
> > > import java.io.IOException;
> > > import java.io.InputStream;
>
> > > import android.app.Activity;
> > > import android.net.LocalServerSocket;
> > > import android.net.LocalSocket;
> > > import android.net.LocalSocketAddress;
> > > import android.os.Bundle;
> > > import android.os.Handler;
> > > import android.util.Log;
> > > import android.view.View;
> > > import android.view.View.OnClickListener;
> > > import android.widget.Button;
> > > import android.widget.Toast;
>
> > > /**
> > > *
> > > * @author Denis Migol
> > > *
> > > */
> > > public class DemoLocalSocketActivity extends Activity {
>
> > >     public static String SOCKET_ADDRESS = "tiwlan0";
> > >     public static LocalSocketAddress.Namespace NAMESPACE =
> > > LocalSocketAddress.Namespace.ABSTRACT;
>
> > >     // background threads use this Handler to post messages to
> > >     // the main application thread
> > >     private final Handler handler = new Handler();
>
> > >     public class NotificationRunnable implements Runnable {
> > >         private String message = null;
>
> > >         public void run() {
> > >             if (message != null && message.length() > 0) {
> > >                 showNotification(message);
> > >             }
> > >         }
>
> > >         /**
> > >         * @param message the message to set
> > >         */
> > >         public void setMessage(String message) {
> > >             this.message = message;
> > >         }
> > >     }
>
> > >     // post this to the Handler when the background thread notifies
> > >     private final NotificationRunnable notificationRunnable = new
> > > NotificationRunnable();
>
> > >     public void showNotification(String message) {
> > >         Toast.makeText(this, message+ " " + this.handler.toString(),
> > > Toast.LENGTH_LONG).show();
> > >     }
>
> > >     class SocketListener extends Thread {
> > >         private Handler handler = null;
> > >         private NotificationRunnable runnable = null;
>
> > >         public SocketListener(Handler handler, NotificationRunnable
> > > runnable) {
> > >             this.handler = handler;
> > >             this.runnable = runnable;
> > >             this.handler.post(this.runnable);
> > >         }
>
> > >         /**
> > >         * Show UI notification.
> > >         * @param message
> > >         */
> > >         private void showMessage(String message) {
> > >             this.runnable.setMessage(message);
> > >             this.handler.post(this.runnable);
> > >         }
>
> > >         @Override
> > >         public void run() {
> > >             //showMessage("DEMO: SocketListener started!");
> > >             try {
>
> > >                 //LocalServerSocket server = new
> > > LocalServerSocket(SOCKET_ADDRESS);
> > >                 LocalSocket receiver = new LocalSocket();
>
> > >                 receiver.connect(new LocalSocketAddress(SOCKET_ADDRESS,
> > > NAMESPACE));
> > >                 showMessage("test");
>
> > >                 InputStream input = receiver.getInputStream();
>
> > >                 while (true) {
>
> > >                     //LocalSocket receiver = server.accept();
> > >                     if (receiver != null) {
>
> > >                         // simply for java.util.ArrayList
> > >                         int readed = input.read();
> > >                         showMessage("input.read()");
>
> > >                         int size = 0;
> > >                         int capacity = 0;
> > >                         byte[] bytes = new byte[capacity];
>
> > >                         // reading
> > >                         while (readed != -1) {
> > >                             // java.util.ArrayList.Add(E e);
> > >                             capacity = (capacity * 3)/2 + 1;
> > >                             //bytes = Arrays.copyOf(bytes, capacity);
> > >                             byte[] copy = new byte[capacity];
> > >                             System.arraycopy(bytes, 0, copy, 0,
> > > bytes.length);
> > >                             bytes = copy;
> > >                             bytes[size++] = (byte)readed;
>
> > >                             // read next byte
> > >                             readed = input.read();
> > >                         }
>
> > >                         showMessage(new String(bytes, 0, size));
>
> > >                     }
>
> > >                 }
> > >             } catch (IOException e) {
> > >                 showMessage("test2");
> > >                 Log.e("**************"+getClass().getName(),
> > > e.getMessage());
> > >                 //showMessage(e.toString());
> > >             }
> > >         }
> > >     }
>
> > >     public static void writeSocket(String message) throws IOException
> > > {
> > >         //LocalSocket sender = new LocalSocket();
> > >         //sender.connect(new LocalSocketAddress(SOCKET_ADDRESS,
>
> ...
>
> read more »

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to