第四章

一、下载、编译和测试Android源代码

(1)配置 Android 源代码下载环境

在下载 Android 源代码之前必须要在 Linux 终端执行一系列命令来配置下载环境。

1.创建一个用于存放下载脚本文件(repo)的目录

# mkdir -/bin

# PATH=~/bin:$PATH

2.下载 repo 脚本文件

# curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

# chmod a+x ~/bin/repo

repo文件实际上是用python脚本对Git的封装,主要是为了简化下载Android源代码的操作。

3.创建用于存放Android源代码的目录

# mkdir android source

# cd android source

第4步:初始化

# repo init -u https://android.googlesource.com/platform/manifest

第5 步:开始下载Android源代码

# repo sync

下载Git时间普遍较长,需耐心等待。若要备份Android源代码,需保留版本库(.git目录)。

二、部分Android 源代码目录含义

abi 应用程序二进制接口

bionic C/C++运行时库

bootable 用于Android装载和启动程序

build用于编译Android源代码以及建立system.img, ramdisk.img等文件的工具

cts 用于兼容性测试的工具

dalvik  Dalivik虚拟机的源代码

development  高层的开发和调试工具

device  与设备相关的代码.其中包含了moto、二星的设备相关代码

docs包含与Android派代码项目的文档和工具,如Dalivk虚拟机格式文档等

libcore  Java核心库

system  Android的基本系统

三、下载 Android 源代码中的一部分

当只需要部分Android 源代码时,可只下载需要的部分。

使用repo sync命令 在repo sync命令后跟工程名,工程名就是要下载的工程所在的路径全名前面加上platform/。

# repo sync platform/bootable/recovery

使用git clone命令

git clone https://android. googlesource.com/<project name>

repo sync和git clone命令下载源代码主要有如下区别。

r.epo sync会在当前目录生成一个隐藏自录.repo该目录存放了下载Android源代码所需的全部信息。

repo sync下载指定工程的源代码会按照实际的路径存放,如bootable/recovery 。 而git clone 会只会建立工程目录 (如receovery), 并不会建立层次路径结构。

四、编译Android源代码

第1步:初始化编译环境

在Linux终端执行命令:#  source  build/envsetup.sh 或 # . build/envsetup.sh

envsetup.sh脚本文件主要用来初始化一些编译命令。

第2步:选择目标

使用lunch命令设置编译自标。

第 3 步 编译 Android 源代码

# make

五、安装 Android内核的编译环境

(1)准备工作

将arm-linux-gcc-4.3.2.tgz文件和arm-none-Iinux-gnueabi-arm-2008q3-72-for-linux.tar.bz2文件复制到工作目录。

(2)解压编译器

(3)验证交叉编译器是否安装成功

# ls /usr/local/arm –l

六、配置和编译Linux内核

    在终端输入以下命令编译Linux内核:

# export PATH=/root/compilers/arm-none-linux-gnueabi/bin:$PATH

# cd ~/linux_kernel

# make clean

# make

内核编译成功后,会生成一个zImage文件。

原文地址:https://www.cnblogs.com/homwok/p/5448076.html