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