AOSP Build - 从eng切换到user或userdebug时,不再创建数据目录

时间:2015-04-08 18:42:27

标签: android makefile android-4.4-kitkat android-source android-make

我正在为自定义设备构建AOSP(让我们称之为mycustomdevice),并且已经成功构建,映像和部署了工程版本(TARGET_BUILD_VARIANT=eng)。

但是,当我尝试使用useruserdebug版本进行构建时,不再创建数据目录(myAOSP/out/target/product/mycustomdevice/data)。因此,也没有创建userdata.img

我已完全清除AOSP源目录(因此也清除了out目录),并重新加载了源代码。然后我执行lunch mycustomdevice-userdebug(或mycustomdevice-user),然后运行m命令。在enguser / userdebug之间没有其他任何更改,并且重复设置变体设置为eng的相同步骤将导致data目录再次被包括。

我无法找到有关包含数据目录的任何文档。我从几个月前的培训课程中了解到,数据暂存目录是可选的。我该怎么做才能确保创建数据目录的所有TARGET_BUILD_VARIANT

1 个答案:

答案 0 :(得分:2)

这只是-eng构建中包含的几个测试程序的安装目标的结果。例如,在其中一个测试.mk文件中,存在以下行:

LOCAL_MODULE_TAGS := eng tests
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativebenchmark

执行useruserdebug版本时,LOCAL_MODULE_TAGS设置(eng / tests)不再匹配,因此输出不会放入数据目录中。由于没有输出进入$(TARGET_OUT_DATA)目录(解析为myAOSP/out/target/product/mycustomdevice/data)。因此,由于没有输出,因此永远不会创建目录。

请注意,$(TARGET_OUT_DATA)只是一个暂存目录 - 并不意味着Android设备上没有/data目录。当Android设备首次初始化时,/data目录是根据myAOSP/system/core/rootdir/init.rc文件中的说明创建的,该文件初始化Android系统的元素。

在我的情况下,有一个构建后步骤脚本,可以为所有分区创建映像,并将其捆绑到一个映像中,一次写入SD卡。该脚本需要数据目录,即使它是空的。因此,为了解决这个问题,我只需要创建/data目录,如下所示:

~/myAOSP$ mkdir out/target/product/mycustomdevice/data