gpt4 book ai didi

android - 将文件夹中结构化的预建文件集添加到 android out 文件夹

转载 作者:IT王子 更新时间:2023-10-29 00:55:11 24 4
gpt4 key购买 nike

我已经为 arm 编译了 glibc,这不同于 Android glibc 或 bionic C,因为我编译的 glibc 环境将有助于提供更多的 api。现在,我可以在 Android 运行时将 glibc 环境复制到/system/文件夹中,并且在执行 chroot 时,我可以在 glibc 环境中运行我的程序。

目前我正在分别编译 glibc 和 Android,然后将 glibc 压缩并复制到 Android 模拟器 sdcard 上,然后将其解压缩到/system 文件夹,然后在/system/glibc 上执行 chroot

我单独编译glibc,然后把它放在Android源代码的某个地方。现在在编译 Android 源代码时,我应该怎么做才能将 glibc 的整个预构建文件夹结构复制到/system 文件夹并成为 system.img 的一部分。

有了这个,当我将 system.img 复制到 Android 模拟器并启动它时,glibc 已经存在于/system 文件夹中,只需要在 glibc 环境中运行应用程序。

更新

在我按照 Yuri 在他的回答中提到的那样做了之后(我创建了 glibc 文件夹并将所有内容复制到其中),当我编译代码时,我得到以下输出。

build/core/main.mk:490: * Some files have been added to ALL_PREBUILT.
build/core/main.mk:491: *
build/core/main.mk:492: * ALL_PREBUILT is a deprecated mechanism that
build/core/main.mk:493: * should not be used for new files.
build/core/main.mk:494: * As an alternative, use PRODUCT_COPY_FILES in
build/core/main.mk:495: * the appropriate product definition.
build/core/main.mk:496: * build/target/product/core.mk is the product
build/core/main.mk:497: * definition used in all products.
build/core/main.mk:498: *
build/core/main.mk:499: * unexpected glibc in ALL_PREBUILT
build/core/main.mk:500: *
build/core/main.mk:501: * ALL_PREBUILT contains unexpected files. Stop.

所以我在build/core/legacy_prebuilts.mk中添加了glibc

但后来我明白了

make: * No rule to make target mkdir', needed byout/target/product/generic/root/glibc'. Stop.

最佳答案

最后我以一种非常不寻常的方式做到了。

我有 3 个选择:

  1. 使用 BUILD_PREBUILT 变量,但缺点是你可以做一段时间单个文件,但我有多个文件并且在一个特定的文件夹中结构
  2. 使用 PRODUCT_COPY_FILES。但不知何故它对我不起作用PRODUCT_COPY_FILES 适用于设备,它不是新设备我。我正在研究模拟器。
  3. 使用 Yuri 给出的解决方案,使用 ALL_PREBUILT +=,但作为 Yuri提到它是针对 GB 的,我正在使用 JB 和 ICS,因此不是为我工作。

我采用的方法是在 Android.mk 文件中使用 shell 脚本。我用了一些这样的:假设您有一个名为 my_folder 的文件夹,其中包含需要按原样复制到 android out 文件夹的整个预建文件夹结构,在 my_folder 中,我创建了 Android.mk 并在文本下方输入:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

$(shell mkdir -p $(TARGET_OUT)/my_folder/)
$(shell cp -rf $(LOCAL_PATH)/* `pwd`/$(TARGET_OUT)/my_folder/)

这样,我在 my_folder 目录中的所有预建文件和文件夹都被原样复制到 android out 中的系统文件夹中。

我希望这对某人有帮助。

关于android - 将文件夹中结构化的预建文件集添加到 android out 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14718852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com