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

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

我正在为自定义设备构建 AOSP(我们称之为 mycustomdevice),并已成功构建、镜像和部署工程构建 (TARGET_BUILD_VARIANT=eng)。

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

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

我找不到任何关于包含数据目录的文档。我从几个月前参加的培训类(class)中了解到,数据暂存目录是可选的。我应该怎么做才能确保所有TARGET_BUILD_VARIANT数据目录是否已创建?

最佳答案

这只是 -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 设备本身第一次初始化时,根据 myAOSP/system/core/rootdir/init.rc 文件中的指令创建 /data 目录,该目录初始化元素Android系统。

在我的例子中,有一个构建后步骤脚本可以为所有分区创建镜像,并将其 bundle 到一个镜像中,以便一次性写入 SD 卡。该脚本需要数据目录,即使它是空的。所以要解决这个问题,我只需要像这样创建 /data 目录:

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

关于android - AOSP 构建 - 从 eng 切换到 user 或 userdebug 时,不再创建数据目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29522838/

相关文章:

android - 通过电脑浏览器访问安卓手机sdcard

java - 清除 SharedPreference 中的单个变量

java - 使用 Google APIs Java 客户端进行连接和授权

android - 双击监听器从 map View 获取纬度/经度

c++ - 无法运行 Makefile.am,我该怎么办?

调试 GNU make

Android 4.4 - Camera.PreviewCallback 永远不会被调用

c - 为什么 * 和 % 在此规则中表现不同?

android - 如何删除Android SearchView 的剩余空间?

android : NoClassDefFoundError for android 4. 4及以下