赞
踩
使用上一篇文章,编译Android源码,并用模拟器启动编译好的镜像,可以在终端输入 “emulator ” 命令启动模拟器。
输入命令“emulator -verbose | grep kernel”,如下图:
可以看出,linux内核是ranchu版本的。(我也不知道ranchu是什么意思)
输入“adb shell”进入模拟器的终端;
可见,linux的内核版本是4.4。
(1)下载android 版本的 linux 内核。
- mkdir kernel
- cd kernel
- git clone http://android.googlesource.com/kernel/goldfish.git
说明一下,为什么是“goldfish”呢? 谷歌针对Android系统提供了好几个版本,其中goldfish表示适用于模拟器平台。其中还有“msm”、“samsung”和“omap”等几个版本。(具体可以百度)。
(2)切换指定分支。
我当时使用的是“android-goldfish-4.4-dev”分支,与上面准备工作中查看的版本4.4一致。下面是切换以后的分支。
- gs@aigo:~/nvme_1T/android9.0.0_35/kernel/goldfish$ git branch -a
- * (HEAD detached at origin/android-goldfish-4.4-dev)
- master
- remotes/origin/HEAD -> origin/master
- remotes/origin/android-3.18
- remotes/origin/android-4.14-q
- remotes/origin/android-goldfish-2.6.29
- remotes/origin/android-goldfish-3.10
- remotes/origin/android-goldfish-3.10-k-dev
- remotes/origin/android-goldfish-3.10-l-mr1-dev
- remotes/origin/android-goldfish-3.10-m-dev
- remotes/origin/android-goldfish-3.10-n-dev
- remotes/origin/android-goldfish-3.18
- remotes/origin/android-goldfish-3.18-dev
- remotes/origin/android-goldfish-3.4
- remotes/origin/android-goldfish-3.4-l-mr1-dev
- remotes/origin/android-goldfish-4.14-dev
- remotes/origin/android-goldfish-4.14-dev.120914098
- remotes/origin/android-goldfish-4.14-dev.143174688
- remotes/origin/android-goldfish-4.14-dev.150
- remotes/origin/android-goldfish-4.14-dev.20190417
- remotes/origin/android-goldfish-4.14-dev.backup
- remotes/origin/android-goldfish-4.14-gchips
- remotes/origin/android-goldfish-4.4-dev
- remotes/origin/android-goldfish-4.9-dev
- remotes/origin/android-goldfish-5.4-dev
- remotes/origin/heads/for/android-goldfish-3.18-dev
- remotes/origin/linux-goldfish-3.0-wip
- remotes/origin/master
- gs@aigo:~/nvme_1T/android9.0.0_35/kernel/goldfish$
最重要的一句话是:
即输入 “make help”,可以查看当前支持的 config,如下图:
这里我们选择“x86_64_ranchu_defconfig”,为什么是x86_64,是因为上一篇文章使用的也是x86_64。而为什么是“ranchu”,因为准备工作中查看默认的linux内核也是ranchu,(虽然我还是不清楚ranchu是啥意思)。
- make clean
- make mrproper
- make x86_64_ranchu_defconfig
- make -j$(nproc --all)
编译成功后,会输出如下:
说明一下,kernel在x86_64目录下也有,只是x86_64目录下的内核镜像是个软链接,链接在x86目录下的。
输入命令“emulator -kernel kernel/goldfish/arch/x86_64/boot/bzImage -show-kernel”,如下:
说明一下,“-show-kernel”表示:在终端窗口中显示内核调试消息。
此时,模拟器正常启动了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。