BV1AL 之無所不記

2011-11-26

Android手機透過USB當無線基地台

Android手機可以當AP(基地台)用,但未必人人都有購買3G上網吃到飽,
所以在省錢才是王道的前題下,我們要用別的方法來讓手機當AP。

只是手機大概百分之九十九點九九九九沒有ethernet(有線網路),不過
Android手機卻可以將USB模擬成ethernet,因此我們便可以利用它來連
到桌上型或筆記型電腦來上 Internet。

首先將手機附的連接電線的一端插入PC的USB接口
接著將手機的USB啟用
設定==>無線與網路==>數據連線與可攜式無線基地台==>USB數據連線
(或者以指令來啟動:
adb shell 'echo -n 1 > /sys/devices/virtual/usb_composite/rndis/enable'
也可以)

這樣Linux會自動載入
mii, usbnet, cdc_ether, rndis_host 這四個kernel modules.

(請先讓你的手機可以有root使用身份,並殖入busybox到/system/bin/
進行方法不在本文討論範圍)

在手機的USB插入PC後,在PC執行ifconfig -a 可以看到usb0 的網路
介面出現。

執行adb shell 'busybox ifconfig'
看一下手機的usb0 是什麼IP, 例如192.168.123.10

在PC的Linux下,以root身份執行以下指令
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.123.0/24 -o eth0 -j MASQUERADE
ifconfig usb0 192.168.123.1
再來就是手機端
adb shell 'busybox route add default gw 192.168.123.1'
adb shell 'setprop net.dns1 168.95.1.1'

手機啟用AP功能
設定==>無線與網路==>數據連線與可攜式無線基地台==>可攜式Wi-Fi無線基地台
請記得設個密碼,除非你想當好鄰居

adb shell 'busybox route'
你會看到手機的routing有另一組 IP, 假設是192.168.124.0
adb shell 'iptables-1.4 -t nat -A POSTROUTING -s 192.168.124.0/24 -o usb0 -j MASQUERADE'
(或許你手機裡的 iptables 名稱不叫 iptables-1.4,你可以先adb shell
進去後打 busybox ash, 再打一下 iptable 不要按Enter 而按TAB鍵,讓它
自動補完,就知道完整名稱了)

如果不啟用手機AP模式,光是USB連線上之後,手機本身就可以上網了。

簡單整理一下要點:
1.手機啟用USB數據連線,並將連接線插到PC
2.PC上會出現usb0, 設定它的IP,並將usb0 Masquerade 到eth0 出去
3.手機啟用無線基地台模式
4.幫手機的 xxap0(以上面舉例也就是另一組IP 192.168.124.0) Masquerade 到
usb0 出去Internet.

讓手機透過PC USB上網還有一個好處就是可以做監控實驗,因為它所有封包都進
到PC 再從eth0 出去,所以可以用各種工具來觀察當你執行某個app 時,它到底是
連到哪些地方去,或者它透過網到底在幹什麼,都是很有趣的實驗。

這也有個好處,就是由USB供電,不必額外電源,另方面也能為手機保持100%滿電。

標籤:

2011-11-17

尊貴的盛治仁波切

關於非常有創意的夢想家大戲

白院長怎麼沒出來向全國人民解釋一下為什麼那個『夢想家』值得花2.1億台幣?

我猜白院長心裡是想跟大家說
「不管是現場或是從電視上看『夢想家』,都可以得到盛治仁波切的加持,
會有七世福報的,那2.1億台幣是值得花的。」

(才寫了一下,沒想到11/18日早上白院長就批准盛治仁波切辭職了,各位『夢想家』
的粉絲跟觀眾以後沒有盛治仁波切幫你加持了!)

白院長怎麼沒發個『白功』,幫盛治仁波切加持一下?就這樣輕易讓他辭職下台?

其實賴聲川端康成絕對是「中華民國在台灣」建國百年來最頂尖的創意家,老實說
才給他區區2.1億,對他來講實在太委曲了,我們應該發起三隻小狗撲滿,全國上下
把小狗撲滿塞得滿滿的,然後捐給賴聲川端康成,把他的口袋塞滿滿,以聊表我們
對他的歉意。

標籤: ,