1.直接執行命令模擬器外殼;
2.啟動仿真器後,通過命令adb shell進入。
然後我們可以使用linux下的壹些常用命令,比如ls,cat等等。但是Android自帶的工具箱(位於/system/bin)過於簡單,有些命令,比如find,Android不支持或者不太支持。下面將介紹如何給Android添加busybox工具。通過編譯壹個可以在Android上運行的busybox工具,我們可以使用很多常見的linux命令,比如find和touch。
步驟如下:
1.首先,去busybox主頁下載最新版本的busybox源代碼。
2.下載交叉編譯工具:用於ARM處理器的GNU工具鏈。
下載地址:
第壹個選項是ARM EABI或者ARM GNU/Linux,第二個選項是IA32 GNU/Linux TAR。
最後得到壹個ARM-2007 Q3-51-ARM-None-Linux-GNUEABI-I686-PC-Linux-GNU . tar . bz2文件。
將壓縮包解壓到linux下的壹個目錄下,設置環境變量,使其可以找到前綴為“arm-none-linux-gnueabi-”的交叉編譯工具。
3.進入busybox源目錄。
首先執行make menuconfig命令來配置編譯過程。流程如下:
Busybox設置-& gt;構建選項-& gt;
[*]應該選擇將busybox構建為靜態二進制(無共享庫),因為這樣編譯的busyBox可以獨立運行。
(/home/jo/tool/arm-2008 Q3/bin/arm-none-Linux-GNUEABI-)交叉編譯器Prefex這是交叉編譯器的“路徑+前綴”,要根據具體情況設置。
Busybox設置-& gt;安裝選項-& gt;
[*]不要用/usr這樣編譯的busybox不會安裝在妳主機的/usr目錄下。壹定要選擇。
4執行make編譯源代碼。如果在編譯過程中出現找不到頭文件的錯誤,可以指定交叉編譯器使用的頭文件所在的路徑。舉個例子,
$ make-I ./home/jo/tool/arm-2008 Q3/arm-none-Linux-gnueabi/libc/usr/include/
編譯成功後,妳會得到壹個名為busybox的可執行文件。
6在Android的控制臺下建立目錄/data/busybox,使用以下命令將文件busybox復制到目錄中:
adb推送busybox /data/busybox
7從Android的控制臺進入/data/busybox目錄,在可執行文件busybox中添加可執行屬性:chmod +x busybox。
8這個時候,我們可以使用busybox工具。如果我們想在任何目錄中直接使用bosybox,我們需要將path/data/busybox導出到path環境變量:
導出路徑=$PATH:/data/busybox
9設置好環境變量後,在命令行輸入busybox查看其用法,比如:
要在當前目錄及其子目錄中查找名為init.rc的文件,可以使用以下命令:
$busybox find。-name init.rc
10安裝busybox。
通過執行。/busybox-install-s,我們會看到壹些錯誤,因為Android系統的根目錄和/sbin目錄是只讀的。因此,我們不能將壹些常用命令安裝到/bin目錄中,也不能修改/init.rc文件來設置PATH環境變量。
我不太清楚如何執行busybox-install-s命令的默認安裝路徑,可能與Makefile和編譯busybox的相關設置有關。
雖然我們不能通過執行busybox-install-s命令在Android中安裝常用命令,但是我們可以通過另壹種方法在Android中安裝常用命令。
方法很簡單。可以先在外部linux系統中執行make install命令提取相關命令,然後通過adbpush命令將這些常用命令復制到Android系統中。/_install/bin/data/busybox/bin。註意:make install命令的路徑可以通過執行make menuconfig來設置,默認路徑在。/_安裝目錄。
這樣我們就不用在busybox提供的每壹個命令前面都加上busybox了。
11修改/init.rc文件以設置環境變量。
請參考帖子:Android啟動過程的進壹步研究。
需要提醒的是,修改PATH環境變量時,要把Android常用命令的路徑“/data/busybox/bin”放在路徑“/system/bin”前面,否則首先找到的命令不會是busybox,可以這樣設置:
導出路徑/data/busybox/bin:/sbin:/system/sbin:/system/bin:/system/xbin
希望能幫到妳!