ubuntu&android双系统制作过程
转载 作者 :orbbec-wmy 链接方式: link
同样站在巨人的肩膀上总结制作过程,参(nian)考(tie)这个版主:点击跳转
硬件:rk3288cpu maligpu
软件:ubuntu16.04 & android4.4
双系统原理简单介绍:
android系统分区详解:
分区大小(字节) | 分区名称 |
---|---|
4M | uboot |
4M | misc |
16M | resource |
16M | kernel |
32M | boot |
32M | recovery |
52M | backup |
128M | cache |
4M | kpanic |
768M | system |
4M | metadata |
1G | userdata |
64M | radical_update |
总容量-2152M | user |
首先了解下android在进入急救模式时,或者说恢复出厂设置的时候都会去加载recovery分区里的内容,原本recovery分区就放着一个急救内核用来升级、恢复所用。目前双系统的原理的要点就是把启动ubuntu的内核放到recovery分区,这样只要androidjinru急救模式,就相当于切换到recovery分区执行ubuntu的kernel,最终成功引导ubuntu 根文件系统。
而正常情况下,开机是不会跑到recovery分区的,一般是uboot阶段会去加载misc分区,读取当中的字段,然后判断是否要加载recovery分区,misc.Img字段如下:
用 hexdump 命令可以方便地查看 misc.img 的内容:
$ hexdump -C rkst/Image/misc.img
- 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |…|
- 00004000 62 6f 6f 74 2d 72 65 63 6f 76 65 72 79 00 00 00 |boot-recovery…|
- 00004010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |…|
' 00004040 72 65 63 6f 76 65 72 79 0a 2d 2d 77 69 70 65 5f |recovery.--wipe_|
- 00004050 61 6c 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 |all…|
- 00004060 00 00 00 00 00 00 00 00 00 00 00 00 00 00