Android4.0 源码可以从光盘,网盘获取稳定版本,也可以从 GitHub 下载我们的开发版
本。GitHub 仅提供源码下载,不提供二进制下载,二进制文件存放在光盘和网盘中。
基于迅为4412开发板
6.3.1.1 repo 下载
android 代码管理不同于 uboot,kernel,由于 Android 代码比较庞大,我们把 Android
项目按照文件夹进行项目拆分,android 源码根目录下面的每个子目录都会划分为一个仓库或
者多个仓库进行版本管理,Android 的代码下载需要使用 repo 工具,repo 工具为 Git 的封
装,底层是使用 Git 命令进行下载的。
假设将要下载的 repo 工具存放于 /media/data/gitHub 目录:
#cd /media/data/GitHub/
#git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
git-repo 仓库下载完成后会看到该文件夹内有 repo 脚本文件:
6.3.1.2 Android4.0 代码下载
假设我们的 Android4.0 代码存放在 /media/data/GitHub/iTop4412_ICS_git 目录:
# cd /media/data/GitHub/iTop4412_ICS_git
#../git-repo/repo init –u https://github.com/TOPEET-Develop/android.git -b
exynos4412_android4.0.3_master
注意上一条命令中,换行字符“-b”之后有空格。
注: repo init 命令中–u 参数指定 android 仓库下载地址,-b 参数指定仓库中的下载
分支.
这里我下载的是 exynos4412_android4.0.3_master 分支,该命令执行过程中需要输入
相关的信息,如下图所示:
Your Name 输入 root
Your Email: 直接回车即可,然后在输入 y, 回车继续:
#../git-repo/repo sync
注: repo sync 开始下载 Android 代码,下载过程与网络环境有一定的关系,如果下
载过程中长时间没有进度显示,可以 ctrl+c 终止下载,然后执行 repo sync 命令重新开始,
下图为源码下载过程中的进度显示:
代码下载完成后会在 /media/data/GitHub/ iTop4412_ICS_git 目录下面显示 Android
系统源码目录:
每个文件夹目录下面都会有一个或者多个 Git 仓库,默认这些仓库是没有分支的,我们需要
使用 repo star 命令创建分支,这里我们创建 master 分支,您也可以使用别的名字来定义分支
名称,repo branch 命令可以查看创建的分支:
#../git-repo/repo start master --all
#../git-repo/repo branch
6.3.1.3 Android4.0 源码编译
Android 代码下载完成后就可以进行编译了,Android 源码编译需要 kernel 支持,所
以我们需要把 Android 代码与 kernel 代码放到同一目录下面:
注: 上图中 iTOP4412_Kernel_3.0 为 Android 的内核代码, 与 Android4.0 源码目录
iTOP4412_ICS_git 在同一级,另外编译 Android4.0 之前需要编译内核代码,在内核代码目
录执行:
# cp config_for_android_XX_YY .config
# make zImage
# make modules
config_for_android_XX_YY 中的 XX 指核心板类型:scp,pop,pop2G, YY 指的是底板
类型:精英版 elite,或者全能版 supper.
make modules 会编译驱动库文件*.ko , Android4.0 会拷贝驱动库文件到 Android 的
目录结构,否则 Android 的某些功能无法使用。
Android4.0 的执行编译命令:
#cd iTop4412_ICS_git
# ./build_android.sh
另外 Android 代码下载,编译完成后,可以定期使用 repo sync 命令同步我们的 Git 仓
库到本地,这样您的本地代码就跟我们的仓库保持同步更新了,编译后就会形成最新的系统镜
像.
我们的 Android4.0 代码区分精英版和全能版,默认我们下载的代码编译形成的镜像可以
在精英板运行,要编译全能板版本,只需要修改一项配置即可:
文件路径:iTop4412_ICS_git/device/samsung/smdk4x12/BoardConfig.mk
配置项:BOARD_HAVE_MPU6050 ,该值配置成 false 代表编译版本是精英板版本,如果
设置成 true,则会编译全能板版本。
精英版配置:
全能版配置:
完成,更多内容关注:迅为电子
|