如何在AOSP中包含util-linux?

如何在AOSP中包含here中的util-linux?我应该在AOSP的哪个位置添加此util-linux文件夹,以便构建AOSP,并且可以在/system/bin//system/xbin/中添加这些实用程序?我需要使其与Android版本一起编译时是否需要使用任何特定的MakefileAndroid.mk

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-linuxbionic不完全兼容。因此,我需要对某些{。{1}}等.c和.h文件进行更改。

成功编译后,二进制文件fileutils.c,include/c.h会在Android运行时显示在sohamchrt中,并且没有问题。

这也是有关如何在AOSP中为用户空间可执行二进制文件添加C源文件的指南。

本文链接:https://www.f2er.com/3157349.html

大家都在问