这个东西是 diff 命令生成的“区别”数据,也就是两个源代码目录他会识别出有什么不同点并且输出为 diff 文件特有的格式。竖野这个输出的文件可以用 patch 命令打在旧版本的源代码上来实现变成拍或新版本的源代码。
这种升级源代码版本的办法,可以很好的解决每次下载源代码都要重头全部下载导致数据量很大的问题。
如果你下载源代码包只有 .diff ,那么证明你下载错了,因为只有旧的特定版本才能用 diff 升级为特定的袭纤伍新版本。diff 文件是前后两个版本关联的,不是随便可以用的。
移植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可能不能直接使用,那么就自行编译吧。
<完>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)