源码下载
- 下载java sdk、
- 下载repo工具,ubuntu可以使用 curl https://storage.googleapis.com/git-repo-downloads/repo > repo,如果不能上外网,则将下载repo的链接替换为https://storage-googleapis.lug.ustc.edu.cn/git //-repo-downloads/repo。下载repo后提升权限chmod a+x repo 必要时替换repo里的下载源:REPO_URL替换为https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/
- 初始化manifest:repo init – u https://aosp.tuna.tsinghua.edu.cn/android/platform/manifest –b branchname
- 下载源码(同步源码树)repo sync –j4 可能会报错或者下载不完整,只需多次执行该命令即可
编译源码:
- 设置环境变量:source build/envsetup.sh
- 选择一个平台编译:lunch aosp_arm-eng
- 构建代码:make –j4
Emulator启动和烧录进手机编译时要使用lunch选择不同平台
烧进一个真实设备:
- adb reboot bootloader 然后先fastboot devices 看是否成功进入fastboot可能出现错误:no permission fastboot 这是因为ubuntu上fastboot没有root权限,chmod提权或者sudo
- export ANDROID_PRODUCT_OUT=img目录,该目录在编译后的信息会显示,例如:…/out/tartget/product/angler
- fastboot flashall –w
烧录后常见错误:
1.adb devices 显示问号以及 nopermission 解决方法:
见https://blog.csdn.net/u011249920/article/details/50274791
使用模拟器:运行emulator命令,下次启动仍需要使用source和lunch命令
下载安卓内核源码:
两种方式:
1.下载repo工具,然后repo init –u https://aosp.tuna.tsinghua.edu.cn/kernel/manifest -b branchname 然后repo sync -j4 (Repo似乎不能查看分支列表 ) branchname是你想要下载的内核版本对应分支名
2. git clone http://android.googlesource.com/kernel/goldfish.git
进入goldfish 目录:查看有哪些支线代码git branch-a
Git checkout指定所需要的支线代码:git checkout remote/origin/android-goldfish-2.6.29
内核版本需要与安卓版本相对应,详见https://android.stackexchange.com/questions/51651/which-android-runs-which-linux-kernel
这里我用的是3.18.10版本
6.0 Marshmallow |23 |3.18.10
编译内核源码:
1.修改Makefile文件
Export KBUILD__BUILDHOST := $(SUBARCH)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
后两行改为?=arm 和 ?=arm-eabi-
2.将工具所在目录添加到环境变量PATH。Android源码目录下有一个交叉编译工具
Export CLASS_PATH= ……/arm-eabi-xx/in
Make goldfish_deconfig。(Adbshell /proc/cpuinfo查看CPU架构,若是v5则使用goldfish_deconfig,若是armv7则使用goldfish_armv7_deconfig )
3.执行make指令
若不成功按以下网址做
http://eternalsakura13.com/2018/03/03/kernel_android/
Ps:修改或增加某个模块不需要使用make,可以使用mmm命令
之后使用 make snod对镜像文件重新打包