安卓源码(含内核)下载及编译

源码下载

  1. 下载java sdk、
  2. 下载repo工具,ubuntu可以使用 curl https://storage.googleapis.com/git-repo-downloads/repo > repo ,然后提升权限chmod a+x repo  必要时替换repo里的下载源:REPO_URL替换为https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/
  3. 初始化manifest:repo init – u https://aosp.tuna.tsinghua.edu.cn/android/platform/manifest –b branchname
  4. 下载源码(同步源码树)repo sync –j4 可能会报错或者下载不完整,只需多次执行该命令即可

编译源码:

  1. 设置环境变量:source build/envsetup.sh
  2. 选择一个平台编译:lunch aosp_arm-eng
  3. 构建代码:make –j4

 

Emulator启动和烧录进手机编译时要使用lunch选择不同平台

烧进一个真实设备:

  1. adb reboot bootloader 然后先fastboot devices 看是否成功进入fastboot可能出现错误:no permission fastboot 这是因为ubuntu上fastboot没有root权限,chmod提权或者sudo
  2. export ANDROID_PRODUCT_OUT=img目录,该目录在编译后的信息会显示,例如:…/out/tartget/product/angler
  3. 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对镜像文件重新打包

你可能感兴趣的:(开发,安卓)