Ⅰ 如何移植 linux 到安卓手機
移植toolbox到普通Linux系統中
toolbox是Android中專用的busybox,從嵌入式Linux轉過來都會大大地吐槽功能簡陋。但實質上也有很多特有的很好用的功能。比如getevent命令來調試所有的輸入事件。已經靜態編譯出來了(下載地址:toolbox 靜態編譯),這里記錄一下移植過程。
原本以為會很難,所以一直放很久才開始做,最終很簡單,只需要稍加修改Android.mk就可以編譯出一個靜態鏈接的toolbox。以下diff文件就是改動信息。
diff --git a/system/core/toolbox/Android.mk b/system/core/toolbox/Android.mk
index 086ba0d..d5aef3b 100755
--- a/system/core/toolbox/Android.mk
+++ b/system/core/toolbox/Android.mk
@@ -91,6 +91,7 @@ LOCAL_SRC_FILES := \
grep/grep.c grep/fastgrep.c grep/file.c grep/queue.c grep/util.c
LOCAL_SHARED_LIBRARIES := libcutils libc libusbhost
+LOCAL_STATIC_LIBRARIES := libc libcutils
LOCAL_C_INCLUDES := bionic/libc/bionic
@@ -102,6 +103,7 @@ LOCAL_C_INCLUDES += external/libselinux/include
endif
+LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE := toolbox
# Including this will define $(intermediates).
然後進行編譯就自動編譯成了靜態鏈接的了。
$ file out/target/proct/xxx/system/bin/toolbox
out/target/proct/xxx/system/bin/toolbox: ELF 32-bit LSB executable, ARM, \
version 1 (SYSV), statically linked, stripped
$12341234
當然,我沒有編譯所有的CPU架構的,只是編譯了ARMv7的,所以比較低的架構或者其它CPU可能不能直接使用,那麼就自行編譯吧。
<完>