开发者社区> 问答> 正文

如何编译Android AOSP内核并使用Android仿真器对其进行测试?

有没有人成功地编译了android内核并在android仿真器中对其进行了测试,如果有的话,有什么特别的事情需要做吗?

SDK的文档非常出色,但是我很难找到用于编译内核和在仿真器中设置自定义计算机的文档。

展开
收起
Puppet 2020-01-23 12:57:40 1084 0
1 条回答
写回答
取消 提交回答
  • 从2009年8月开始,当您按照说明下载android开放源代码项目的源代码时,该内核不再是标准回购清单的一部分。在仿真器上成功下载,构建和运行特定内核所需的步骤如下:

    通过将Android内核添加到您的回购清单中或通过运行以下命令手动获取它: 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 如果那不起作用,请尝试 make 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中的代码放入其中) 要使用内核运行仿真器,有两种选择,要么将其复制到开源项目的预构建内核文件夹中以替换标准内核。另一个选项是在设置内核选项的情况下启动仿真器: emulator -kernel mydroid/kernel/common/arch/arm/boot/zImage 请注意,我在上面的描述中使用了默认路径,您需要将其更改为适用于您的设置的路径。自上次测试以来已经有一段时间了,但我认为它应该可以工作。

    一些额外的信息:在标准的Android开放源发行版中,内核以预构建二进制mydroid/prebuilt/android-arm/kernel文件的形式分发在文件夹中,并且不包含源代码。出于以下两个原因,从默认清单中删除了内核源。一个是,对于大多数人来说,平台组件使用起来会占用很多带宽和磁盘空间。另一个原因是,由于内核是使用内核构建系统构建的,而不是作为aosp构建系统的一部分,因此有必要将其分开。内核的公共分支是仿真器使用的分支。还有用于实验,msm(高通平台)和Omap(TI平台)的分支,也许还有更多分支。如果您想将Android内核与硬件一起使用,这些可能对您来说更有趣。

    2020-01-23 12:57:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
移动互联网测试到质量的转变 立即下载
给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
F2etest — 多浏览器兼容性测试整体解决方案 立即下载