如何在AOSP中包含here中的util-linux
?我应该在AOSP的哪个位置添加此util-linux
文件夹,以便构建AOSP,并且可以在/system/bin/
或/system/xbin/
中添加这些实用程序?我需要使其与Android版本一起编译时是否需要使用任何特定的Makefile
或Android.mk
?
如何在AOSP中包含util-linux?
xzxw123 回答:如何在AOSP中包含util-linux?
始终值得检查您要添加的库是否位于https://android.googlesource.com/。不幸的是,情况并非如此。
由于util-linux
不附带Android.bp
。您将必须了解util-linux
的构建方式以及Soong的工作方式以创建自定义Android.bp
进行集成。正确的文件夹应该是external/util-linux/
。
也许您会想捷径而已,只需将util-linux
添加为预构建的二进制文件即可。这样可以减少工作量。
不过,请先检查许可问题。
,我已经从AOSP中的util-linux
包中添加了一个应用程序。
这就是我的做法。我在AOSP文件夹的util-linux
的{{3}}中添加了external
(2.34)。
我只是想从chrt
中添加util-linux
。因此,我在make
中运行普通的util-linux
命令来查看为chrt
编译了哪些文件。我记下了笔记,并相应地创建了Android.mk
。我敢肯定,有一种更好的方法可以通过首先制作该库,然后制作chrt
可执行文件来进行分层。但是,这也可以。
我在Android.mk
处添加了以下external\util-linux\
。 Android.mk如下所示:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := sohamchrt
LOCAL_SRC_FILES := schedutils/chrt.c lib/blkdev.c lib/canonicalize.c \
lib/crc32.c lib/crc32c.c lib/idcache.c lib/fileutils.c \
lib/ismounted.c lib/color-names.c lib/mangle.c lib/match.c lib/mbsalign.c \
lib/mbsedit.c lib/md5.c lib/pager.c lib/parse-date.c lib/pwdutils.c lib/randutils.c \
lib/setproctitle.c lib/strutils.c lib/timeutils.c lib/ttyutils.c lib/exec_shell.c \
lib/strv.c lib/sha1.c lib/signames.c lib/linux_version.c lib/loopdev.c \
lib/plymouth-ctrl.c lib/cpuset.c lib/path.c lib/procutils.c lib/sysfs.c
LOCAL_CFLAGS = -DHAVE_NANOSLEEP -include config.h \
-isystem bionic/libc/upstream-openbsd/android/include
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
include $(BUILD_EXECUTABLE)
现在,当我运行m -j8 iso_img
时,Android会尝试编译sohamchrt
。我将包命名为sohamchrt
,因为chrt
已经提供了toybox
,但有一定的局限性。
问题是util-linux
与bionic
不完全兼容。因此,我需要对某些{。{1}}等.c和.h文件进行更改。
成功编译后,二进制文件fileutils.c,include/c.h
会在Android运行时显示在sohamchrt
中,并且没有问题。
这也是有关如何在AOSP中为用户空间可执行二进制文件添加C源文件的指南。