win10 中以開啟 linux子系統的方式使用 AndBug
1). 參考前面一篇博文在win10中安裝windows的 linux 子系統 (180M左右)
2). 在 linux 子系統中執行些指令
3). 修改一點點 andbug 原始碼(python)
安裝 原始碼管理、編譯器等相關的工具:
sudo su
apt-get install git
apt-get install gcc
apt-get install Python-dev python-pyrex
AndBug 原始碼下載:
git clone https://github.com/anbc/AndBug/
在 /AndBug/lib/andbug/config.py 中修正 monitor_fun.conf 路徑
安裝 AndBug:
python setup.py install
測試執行 andbug
./andbug
若有顯示 andbug 的引數列表,說明安裝成功
至於 adb , 一定要確保 windows 本身的adb版本, 跟 linux 子系統中的 adb 版本是一致,
才能在 linux 子系統中用adb連線上手機~
ADB 和 Fastboot for Windows
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
ADB 和 Fastboot for Linux
https://dl.google.com/android/repository/platform-tools-latest-linux.zip
都是最新版的 adb 1.0.39
若有其它版本的 adb 在執行,可以:
adb kill-server #把它關掉
網上有人說 andbug 在 windows 下的 linux 環境中不可用。
這是因為 andbug 預設是使用 *nix localfilesystem 的方式來做 adb 埠轉發,
而 windows 中根本沒有辦法支援這種試, 所以只要改一點點 andbug 程式碼,讓其使用 tcp 埠來做轉發就沒問題了。。。
修改如下:
檔案: E:\Bash\AndBug\lib\andbug\proto.py
將 forward 函式那一段改成下面的即可!
def forward(pid, dev=None):
'constructs an adb forward for the context to access the pid via jdwp'
if dev:
dev = andbug.util.find_dev(dev)
pid = andbug.util.find_pid(pid)
#temp = tempfile.mktemp() #建立一個臨時檔案
cmd = ('-s', dev) if dev else () #'-s', 'emulator-5554'
#cmd += ('forward', 'localfilesystem:' + temp, 'jdwp:%s' % pid) #'-s', 'emulator-5554', 'forward', 'localfilesystem:/tmp/tmpSSCNAl', 'jdwp:843')
cmd += ('forward', 'tcp:23946', 'jdwp:%s' % pid) #'-s', 'emulator-5554', 'forward', 'tcp:23946', 'jdwp:843')
andbug.util.adb(*cmd)
return 23946
修改完重新安裝:
sudo ./setup.py clean
sudo ./setup.py install
andbug 使用:
# export PATH="$PATH:/mnt/e/Bash/AndBug"
ln -s /mnt/e/Bash/platform-tools/adb /usr/bin/adb
./andbug shell -p 7052
應用斷住後檢視變數:http://localhost:8080