根據上一篇文章的作法,如果要將預先編譯好的 busybox 加到 Android 裡,其實方法也同樣簡單。
首先下載 Busybox 的源碼,並以「靜態連結」的方式編譯,並將 busybox 這個可執行檔取出來。
然後在下載回來的 AOSP 源碼裡建立一個適當的目錄:
mkdir -p prebuilt/android-arm/busybox
接著將剛才編譯出來的 busybox 可執行檔複製到 prebuilt/android-arm/busybox 這個路徑下。
接著再於 prebuilt/android-arm/busybox 這個路徑下編寫一個 Android.mk 文件,內容為:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Explicitly mark busybox as "eng" so that it doesn't
# get included in user or SDK builds. (GPL issues)
#
LOCAL_SRC_FILES := busybox
LOCAL_MODULE := busybox
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_TAGS := debug
include $(BUILD_PREBUILT)
# Any prebuilt files with default TAGS can use the below:
prebuilt_files :=
$(call add-prebuilt-files, EXECUTABLES, $(prebuilt_files))
最後,執行 make 得到的 system.img 就會包含 busybox 了。