如何编译Android AOSP内核并使用Android Emulator进行测试?
作者:互联网
有没有人成功编译了android内核并在Android模拟器中测试过它,如果有的话还有什么特别需要做的吗?
SDK的文档非常好,但是我很难找到用于编译内核和在模拟器中设置自定义机器的文档.
解决方法:
自2009年8月以来,内核不再是您按照说明下载android开源项目源代码时获得的标准repo清单的一部分.在模拟器上成功下载,构建和运行特定内核所需的步骤如下:
>通过将Android内核添加到您的repo清单中或通过运行以下方式手动获取:
git clone https://android.googlesource.com/kernel/goldfish.git
>查看正确的分支以使用模拟器,即金鱼:
git checkout -t origin / android-goldfish-2.6.29 -b goldfish
>生成模拟器配置(qemu模拟器运行arm代码,即arm配置):
make ARCH = arm goldfish_defconfig
>如果不起作用,请尝试制作ARCH = arm goldfish_armv7_defconfig
>现在使用随开源项目分发的交叉编译工具构建内核:
make ARCH = arm CROSS_COMPILE = mydroid / prebuilt / linux-x86 / toolchain / arm-eabi-4.2.1 / bin / arm-eabi-
>以这种方式构建的内核最终应该在内核树的arch / arm / boot文件夹中(你从git clone中放入代码)
>要使用内核运行模拟器,有两种选择,或者将其复制到开源项目的预构建内核文件夹中以替换标准内核.另一个选项是使用内核选项集启动模拟器:
模拟器-kernel mydroid / kernel / common / arch / arm / boot / zImage
请注意,我已使用上述说明中的默认路径,您需要将它们更改为适用于您的设置的路径.自从我上次测试这个以来已经有一段时间,但我认为它应该可行.
一些额外的信息:
在标准的Android开源发行版中,内核作为预构建的二进制文件分发在mydroid / prebuilt / android-arm / kernel文件夹中,并且不包含源代码.内核源代码已从默认清单中删除,原因有两个.一个是平台组件需要大量的带宽和磁盘空间,大多数人都不会使用它.另一个原因是,由于内核是使用内核构建系统构建的,而不是作为aosp构建系统的一部分构建,因此将它保持分离是有意义的.内核的公共分支是模拟器使用的分支.还有实验,msm(高通平台)和Omap(TI平台)的分支机构,可能还有更多.如果您想将Android内核与硬件一起使用,这些对您来说可能更有趣.
标签:android,android-source,android-emulator,emulation 来源: https://codeday.me/bug/20190916/1806826.html