1. 程式人生 > >win10 中以開啟 linux子系統的方式使用 AndBug

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