将 AOSP 移植到特定的硬件设备

Porting AOSP to specific hardware device

更新:基于此这是以下问题:Create specific device tree for AOSP

我按照这个:https://source.android.com/source/building.html设置了环境并下载了最新的AOSP。现在我想在我的特定设备上刷写它,比方说 Galaxy S2。

  1. 在"Configuring USB Access: 51-android.rules"中应该怎么看?因为在上面的官方教程中,每个条目都是这样的:

    //设备 X 的 adb 协议

    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="user"

    //设备 X 的快速启动协议

    SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="user"

    但是我在很多地方发现了这个:

    SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666", GROUP="plugdev"

    当然,将用户添加到 plugdev 组是显而易见的,但仍然:在 Google 的方式中,adb 和 fastboot 有单独的条目,并且模式不同...

    查看此步骤是否有效的最终测试是什么?

  2. 假设我为我的特定设备修改了正确的代码行和配置文件,如下所述:Android device configuration for AOSP。这意味着我有一个包含完整 AOSP 文件的目录。在$ lunch aosp_arm-eng阶段,具体的硬件设备应该有哪些参数?

  3. 现在假设我在我的输出目录中构建并编译了 AOSP 文件。我应该如何在我的设备上刷写它?从Google`s 上面的教程看不是很清楚。我更喜欢只获取一个 zip 文件,以便通过 CWM 恢复等方式刷新它。

  4. 有没有办法在硬件设备上刷入之前测试结果(以减少变砖的机会...)?

谢谢,

  1. adb 规则是为了使 adb 能够通过 USB 工作。如果您可以通过 ADB 连接到您的设备,则 adb 规则有效。您可能必须在设备的开发人员设置中启用 ADB。
  2. 同步 AOSP 后,您可以为您的设备构建。您可以在午餐菜单中选择您的设备。 运行 build/setenv.sh 脚本。然后运行lunch。它将列出您可以选择的特定设备。您可以通过将新设备树同步到树中来添加到该列表。
  3. 默认情况下,它会构建 system.imgs 您通过 fastboot 刷入的内容。如果您正在构建 AOSP,make otapackage 将制作一个 flashable zip。
  4. 该构建将制作一个模拟器映像,您可以通过 运行ning emulator 对其进行测试。这将使您大致了解您的构建是否有效,但不会为您提供有关特定设备的完整信息。例如,模拟器构建可能 运行 但如果您忘记添加正确的专有文件,构建可能无法在您的特定设备上启动。但是你不太可能通过闪烁 system.img.
  5. 来硬化你的设备