如何为 Qualcomm MSM 系统编译 Android 4.4.2?

How do I compile Android 4.4.2 for Qualcomm MSM systems?

我需要让 OpenCV 的原生相机在使用 android 版本的设备上工作,高通对金鱼草系统(Android 4.4.2)进行了更改。根据this bug report的回答,我需要编译目标android树供我的项目在编译OpenCV的原生相机库时参考。

我已将此标签识别为与设备相关的标签:LNX.LA.3.6-00210-8084.0

我通过

获取了源

repo init -u git://codeaurora.org/platform/manifest.git -b release --repo-url=git:/ /codeaurora.org/tools/repo.git --repo-branch=caf-stable

回购同步

默认分支为 4.0.4。我尝试使用

查看我的标签

repo forall -c git checkout LNX.LA.3.6-00210-8084.0

然而,许多子项目都缺少这个标签。结果,这些项目似乎 desynched/unmatched。我有一种强烈的感觉,这不是更改为 MSM 4.4.2 树的正确方法,但我没能找到正确的方法。在每个项目中尝试签出标签后,我在 运行ning lunch

时出现错误

build/core/product_config.mk:223: *** 找不到产品 "aosp_arm" 的配置 makefile。停止。

** 没有产品规格:'aosp_arm' ** 你有正确的回购清单吗?

一旦我使用 repo 克隆了源代码,我需要什么命令来 运行 使项目处于 MSM 4.4.2 的可构建状态 - 特别是标签 LNX.LA.3.6- 00210-8084.0?首次初始化时是否需要 运行 不同的 repo 命令?

根据CodeAurora's Android for MSM Project wiki page,用于最新版本的 Repo 命令是

$ repo init -u git://codeaurora.org/platform/manifest.git \
    -b release -m [manifest] \
    --repo-url=git://codeaurora.org/tools/repo.git \
    --repo-branch=caf-stable

其中 [manifest] 是清单文件的名称。我找不到将清单文件(以 CAF 的内部版本名称命名)与 AOSP 版本相关联的参考 table,但你自己说它是 LNX.LA.3.6-00210-8084.0 你在找所以让我们开始吧。确实,release branch of CAF's platform/manifest.git中有这样一个清单文件。因此:

$ repo init -u git://codeaurora.org/platform/manifest.git \
    -b release -m LNX.LA.3.6-00210-8084.0.xml \
    --repo-url=git://codeaurora.org/tools/repo.git \
    --repo-branch=caf-stable

作为旁注,不应依赖 repo forall -c git checkout name-of-tag,因为不同的版本在其清单中可能有不同的 git 集。该命令仅在您当前清单中已经拥有完全相同的一组 git 和您想要切换到的 git 时才有效。