将 AOSP 移植到特定的硬件设备
Porting AOSP to specific hardware device
更新:基于此这是以下问题:Create specific device tree for AOSP
我按照这个:https://source.android.com/source/building.html设置了环境并下载了最新的AOSP。现在我想在我的特定设备上刷写它,比方说 Galaxy S2。
在"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 有单独的条目,并且模式不同...
查看此步骤是否有效的最终测试是什么?
假设我为我的特定设备修改了正确的代码行和配置文件,如下所述:Android device configuration for AOSP。这意味着我有一个包含完整 AOSP 文件的目录。在$ lunch aosp_arm-eng
阶段,具体的硬件设备应该有哪些参数?
现在假设我在我的输出目录中构建并编译了 AOSP 文件。我应该如何在我的设备上刷写它?从Google`s 上面的教程看不是很清楚。我更喜欢只获取一个 zip 文件,以便通过 CWM 恢复等方式刷新它。
有没有办法在硬件设备上刷入之前测试结果(以减少变砖的机会...)?
谢谢,
- adb 规则是为了使 adb 能够通过 USB 工作。如果您可以通过 ADB 连接到您的设备,则 adb 规则有效。您可能必须在设备的开发人员设置中启用 ADB。
- 同步 AOSP 后,您可以为您的设备构建。您可以在午餐菜单中选择您的设备。 运行 build/setenv.sh 脚本。然后运行
lunch
。它将列出您可以选择的特定设备。您可以通过将新设备树同步到树中来添加到该列表。
- 默认情况下,它会构建 system.imgs 您通过 fastboot 刷入的内容。如果您正在构建 AOSP,
make otapackage
将制作一个 flashable zip。
- 该构建将制作一个模拟器映像,您可以通过 运行ning
emulator
对其进行测试。这将使您大致了解您的构建是否有效,但不会为您提供有关特定设备的完整信息。例如,模拟器构建可能 运行 但如果您忘记添加正确的专有文件,构建可能无法在您的特定设备上启动。但是你不太可能通过闪烁 system.img. 来硬化你的设备
更新:基于此这是以下问题:Create specific device tree for AOSP
我按照这个:https://source.android.com/source/building.html设置了环境并下载了最新的AOSP。现在我想在我的特定设备上刷写它,比方说 Galaxy S2。
在"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 有单独的条目,并且模式不同...
查看此步骤是否有效的最终测试是什么?
假设我为我的特定设备修改了正确的代码行和配置文件,如下所述:Android device configuration for AOSP。这意味着我有一个包含完整 AOSP 文件的目录。在
$ lunch aosp_arm-eng
阶段,具体的硬件设备应该有哪些参数?现在假设我在我的输出目录中构建并编译了 AOSP 文件。我应该如何在我的设备上刷写它?从Google`s 上面的教程看不是很清楚。我更喜欢只获取一个 zip 文件,以便通过 CWM 恢复等方式刷新它。
有没有办法在硬件设备上刷入之前测试结果(以减少变砖的机会...)?
谢谢,
- adb 规则是为了使 adb 能够通过 USB 工作。如果您可以通过 ADB 连接到您的设备,则 adb 规则有效。您可能必须在设备的开发人员设置中启用 ADB。
- 同步 AOSP 后,您可以为您的设备构建。您可以在午餐菜单中选择您的设备。 运行 build/setenv.sh 脚本。然后运行
lunch
。它将列出您可以选择的特定设备。您可以通过将新设备树同步到树中来添加到该列表。 - 默认情况下,它会构建 system.imgs 您通过 fastboot 刷入的内容。如果您正在构建 AOSP,
make otapackage
将制作一个 flashable zip。 - 该构建将制作一个模拟器映像,您可以通过 运行ning
emulator
对其进行测试。这将使您大致了解您的构建是否有效,但不会为您提供有关特定设备的完整信息。例如,模拟器构建可能 运行 但如果您忘记添加正确的专有文件,构建可能无法在您的特定设备上启动。但是你不太可能通过闪烁 system.img. 来硬化你的设备