写给应用开发的 Android Framework 教程是一个系列教程,目前已更新以下内容:
-
系统开发基础
-
AOSP 上手指南
-
学穿 Binder 系列
-
HAL 与硬件服务
1. 内核下载
下载适用于模拟器的内核
git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/goldfish.git
#查看分支
git branch -a
git checkout android-goldfish-4.14-gchips
编译脚本:
#!/bin/bash
export ARCH=x86_64
export SUBARCH=x86_64
export CROSS_COMPILE=x86_64-linux-android-
export PATH=android源码目录/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin:$PATH
make x86_64_ranchu_defconfig
make -j16
将上面的内容保存为 build.sh 脚本文件。执行 sh build.sh
开始编译。
编译有错误修改代码:
- 删除 scripts/selinux/mdp/mdp.c 文件中的 #include <sys/socket.h>
- 删除 scripts/selinux/genheaders/genheaders.c 文件中的 #include <sys/socket.h>
- 在 security/selinux/include/classmap.h 头部添加 #include <linux/socket.h>
执行编译脚本 sh build.sh
即可编译成功
2. 自定义内核启动
启动之前,需要把之前启动的模拟器和启动模拟器的终端都关掉。
source build/envsetup.sh
lunch aosp_x86_64-eng
emulator -kernel 内核地址/goldfish/arch/x86/boot/bzImage
启动成功,打开模拟器设置页面,进入版本信息。
可以看到 Kernel version 项里,已经是最新编译的内核版本了。