Wifiアドホックモード

そもそもWIFIアドホックモードとは?

WIFIのモードには大きく分けて3つあります。
1、インフラストラクチャーモード(Master)
2、アドホック(Ad-hoc)
3、クライアント(Managed)

インフラストラクチャーモードは、APとして振る舞うモードです。
アドホックモードは、端末と端末同士で通信するモードです。
クライアントモードは、インフラストラクチャーモードとして振る舞っているAPに接続するモードです。

通常、クライアントモードになれる端末は基本的にはアドホックモードにも対応しています。
しかし、AndroidではWifiアドホックモードがあえてできないようになっています。

それを出来るようにしようというのが今回の話です。
その前に、これができるとどんないいことがあるのか?

率直に申しますと、アドホックモードだからいいことはそんなありません。普段スマホを使う上でAPを介さずに通信したいなんてことはほとんどありませんからね。
じゃあなぜ、わざわざアドホックモードをONにするのか?

それは、
例えば震災が起きてAPが使えなくなったとき、アドホックモードを使って端末同士をつなぎ他の人と通信をすることができるというメリットがあるためです。これらについて研究されてるのがDTNと呼ばれる遅延耐性ネットワークです。詳しくはググってください。

ではアドホック通信の話に移りましょう。

アドホックモードで通信をするには、二通りあります。

  1. Androidの設定画面にアドホックネットワークを表示させ、つなぎに行く方法
  2. Wireless Tetherアプリでアドホックネットワークを作り、接続を待つ方法

Android アドホック」でググルとほとんど1個目の情報が出てきます、しかしWireless Tetherというアプリでもアドホックモードに対応させることができます。

一応私が試した中だと、どちらかが対応している場合は二つともできるはずです。
今回は、1個目の「Androidの設定画面にアドホックネットワークを表示させ、つなぎに行く方法」
を紹介します。

まぁそんな難しいことではありません。
Linuxになれた人(Linuxを触ったことがある人)向けに言えば。

無線LANクライアントツールである、「wpa_supplicant」という実行ファイルをアドホック対応のもの置き換えるだけです。

ただその際に、SystemeディレクトリはRead-OnlyファイルシステムなのでRWでRemoutしたりして書き込みできるようにしないといけません。
こんな感じで。
#mount -o remount,rw /system /system

まぁハマるところはそれぐらいですかね。

アドホックに対応した、wpa_supplicantは対応したものを探してください。
ただ、最新の機種だとなかなか見つかりづらいです。
Galaxy NexusとNexus7は見つかりませんでした。。。

今回言いたいことは、アドホック対応化というと1個目の情報しか出てこないんですが2個目の方法もあるよということですね。

Ps, Iphoneは標準でアドホック通信に対応しているようですね。

続きを読む