如何移植 linux 到安卓手机

如何移植 linux 到安卓手机,第1张

移植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).12345678910111213141516171819201234567891011121314151617181920

然后进行编译就自动编译成了静态链接的了。

$ file out/target/product/xxx/system/bin/toolbox

out/target/product/xxx/system/bin/toolbox: ELF 32-bit LSB executable, ARM, \

version 1 (SYSV), statically linked, stripped

$12341234

当然,我没有编译所有的CPU架构的,只是编译了ARMv7的,所以比较低的架构或者其它CPU可能不能直接使用,那么就自行编译吧。

<完>

看代码实际情况。

不过基本上肯定要改,因为 Linux 接口一直有变化,你的驱动要适应变化。

另外 android 驱动移植就是把驱动移植到 arm 的 linux 上,但是接口函数程序你也要做吧?arm 的指令和台式机的指令不同,而且 android 是 java 为主的语言,以及自己的一套基本函数库,你的接口程序也要做调整。

所以不加改动的概率基本上比中个500W大不了多少。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/6230011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存