鑒于android調試模式中提供的命令太少而且功能太弱,給它添加個busybox是必需的,在網上找了幾個已經編譯好的busybox都挺不錯,可是為了折騰,也為了根據自己喜好添加或者刪除一些自己不用的命令,于是就想著自己編譯一個。記得busybox是很好編譯的,有跟編譯內核差不多的 menuconfig,而且其中選項比kernel簡潔得多了。 (PS:^_^不錯的Android學習交流群:278744577,驗證:eec,有興趣的話可以加入進來一起討論) 我是在Linux下編譯的,具體的過程如下: 1、準備 ARM的交叉編譯工具,我這里使用的是Sourcery G++ Lite 下載地址:http://www.codesourcery.com/sgpp ... tion?@template=lite Busybox的源代碼 下載地址:http://busybox.net/downloads/ 2、編譯busybox 在busybox目錄下執行 make menuconfig 進入圖形選擇模式,這里有幾個選項是必選或者必填的 Busybox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs) //這個是靜態編譯的選項,這樣編譯出來的可執行文件才不依賴系統的動態鏈接庫 (/home/yunt/works/cross-arm/bin/arm-none-linux-gnueabi-) Cross Compiler prefex //這是交叉編譯器的”路徑+前綴”,這里要根據實際安裝位置填,在我的機器上安裝位置為/home/yunt/works/cross-arm Busybox Settings -> Installation Options-> Don’t use /usr //這樣子編譯出來的busybox才不會安裝到你主機的/usr目錄下。一定要選上。 接下來退出menuconfig模式后運行make編譯 完成后會在當前目錄生成busybox的可執行文件 3、安裝進android 連上手機數據線,然后執行 adb push busybox /sdcard/ #將busybox push進SD卡 adb shell #進入終端 su #取得root權限 mount -o remount,rw /dev/block/mtdblock6 /system #重新mount使/system可寫 mv busybox /system/bin/ #移動busybox chmod 777 /system/bin/buxybox #設為可執行 mount -o remount,ro /dev/block/mtdblock6 /system #恢復/system為只讀 busybox #執行busybox BusyBox v1.15.2 (2009-12-02 21:29:32 EST) multi-call binary Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko and others. Licensed under GPLv2. See source distribution for full notice. #有類似以上內容輸出表示成功 這里只是簡單的介紹一種方法,其實只要有了交叉編譯工具基本上大部份的開源軟件都是能夠使用靜態編譯而在android上運行的。 |