|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Android4.0 源码可以从光盘,网盘获取稳定版本,也可以从 GitHub 下载我们的开发版
* _0 o" F; _3 g2 X本。GitHub 仅提供源码下载,不提供二进制下载,二进制文件存放在光盘和网盘中。$ {0 x6 z/ b- t4 b2 y; g
基于迅为4412开发板
0 D1 O$ I- W" w; y6.3.1.1 repo 下载5 I1 U8 u5 s2 r' ^) b3 E
android 代码管理不同于 uboot,kernel,由于 Android 代码比较庞大,我们把 Android0 K c2 M% I |% _ ~
项目按照文件夹进行项目拆分,android 源码根目录下面的每个子目录都会划分为一个仓库或% y, y# d l6 g% k
者多个仓库进行版本管理,Android 的代码下载需要使用 repo 工具,repo 工具为 Git 的封1 G, F/ b' A( w9 N' {. Z
装,底层是使用 Git 命令进行下载的。. a( u' ?( ?. o+ \) i+ C
假设将要下载的 repo 工具存放于 /media/data/gitHub 目录:1 `0 {3 F1 q% J1 L% V8 ^
#cd /media/data/GitHub/* G: n; k& [# l$ |0 f
#git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
/ |* k9 \, M- T' w1 H0 }9 _git-repo 仓库下载完成后会看到该文件夹内有 repo 脚本文件:
5 M! s" M ~: c% b
/ m# w" ?! D& ]' o6.3.1.2 Android4.0 代码下载
, V- _. G) U$ O- d* X2 O, K假设我们的 Android4.0 代码存放在 /media/data/GitHub/iTop4412_ICS_git 目录: n8 f/ `, d! v! _! T
# cd /media/data/GitHub/iTop4412_ICS_git
A" P" L/ o) M4 R" o% I. K' ~#../git-repo/repo init –u https://github.com/TOPEET-Develop/android.git -b
5 Z0 H- z, v3 Z2 Gexynos4412_android4.0.3_master
0 q4 k* W% r3 P0 _3 j0 `$ Z3 k注意上一条命令中,换行字符“-b”之后有空格。
. l+ T8 r4 [4 j& U' R8 `1 ~
& [+ R9 \0 u# R& q- N
注: repo init 命令中–u 参数指定 android 仓库下载地址,-b 参数指定仓库中的下载- Q7 C$ B0 H- ?" N* t# L
分支.6 ]0 F1 q5 _" I7 t5 U
这里我下载的是 exynos4412_android4.0.3_master 分支,该命令执行过程中需要输入
* q4 D' h; L1 z3 I相关的信息,如下图所示:
' {. E! I4 M* E; F C
1 i2 W) Z; }3 f! eYour Name 输入 root
, j/ \; s7 @ H h! oYour Email: 直接回车即可,然后在输入 y, 回车继续:
( O' y: d+ R, ^# N/ ]
8 Z: t; M8 p4 c$ }2 ]#../git-repo/repo sync3 v. ~% M5 @# F8 G* K/ A
注: repo sync 开始下载 Android 代码,下载过程与网络环境有一定的关系,如果下 G0 X# S* V! W: |+ x p. o
载过程中长时间没有进度显示,可以 ctrl+c 终止下载,然后执行 repo sync 命令重新开始,
6 }2 \, n( z8 ~1 H下图为源码下载过程中的进度显示:* U0 ]! s$ N% x$ T- E
% w" J; k4 |$ |
代码下载完成后会在 /media/data/GitHub/ iTop4412_ICS_git 目录下面显示 Android
" B$ a) \8 F/ {+ j# B% j; ]( T0 l0 L系统源码目录:
6 m0 W( W; O( {( u6 L q
4 k( b$ z, f+ g! N
每个文件夹目录下面都会有一个或者多个 Git 仓库,默认这些仓库是没有分支的,我们需要
( y; `$ K% F& i( B+ k$ l使用 repo star 命令创建分支,这里我们创建 master 分支,您也可以使用别的名字来定义分支
7 y; i" d+ Q; x名称,repo branch 命令可以查看创建的分支:
7 ]: b1 p& i' f2 C) P#../git-repo/repo start master --all& M* i3 n; _( W. N1 c! j
#../git-repo/repo branch
, }: m2 Y6 b3 r) \" C
3 S- [2 g9 W6 L) \* e/ k6.3.1.3 Android4.0 源码编译 C4 V# M2 v6 }/ g4 s7 a; m
Android 代码下载完成后就可以进行编译了,Android 源码编译需要 kernel 支持,所! T: F+ u! Q$ G; ~
以我们需要把 Android 代码与 kernel 代码放到同一目录下面:
) T5 X9 Y" q, ^% l& }3 R! E
6 f" P0 N" q/ k' d$ _, P, F3 d3 T
注: 上图中 iTOP4412_Kernel_3.0 为 Android 的内核代码, 与 Android4.0 源码目录
|, x+ Z7 U4 w. F, y* J9 n# S. |% R8 xiTOP4412_ICS_git 在同一级,另外编译 Android4.0 之前需要编译内核代码,在内核代码目
" A7 w# b" V6 ~录执行:( ? [! l% ^8 ]' y; B6 c
# cp config_for_android_XX_YY .config
4 c- B) c( X! M- i$ [. ^# make zImage3 H. g1 {# }# V, x7 U! Q: E
# make modules" r: w( |) D: m$ \& `
config_for_android_XX_YY 中的 XX 指核心板类型:scp,pop,pop2G, YY 指的是底板
: x6 i2 R: B( I( Q0 K1 {类型:精英版 elite,或者全能版 supper.
- E4 R3 u" h" e0 p# h* umake modules 会编译驱动库文件*.ko , Android4.0 会拷贝驱动库文件到 Android 的) s" z+ Y3 T' Y. `5 D: z
目录结构,否则 Android 的某些功能无法使用。% W3 k6 {2 u# y0 S' l/ C" J- Y
Android4.0 的执行编译命令:3 w! H5 |) Q0 ~3 L* c+ O
#cd iTop4412_ICS_git' X% N( x8 S( g0 k, p
# ./build_android.sh
. V" A% }' n. b( ]: Z1 A4 H: v' d- @ D另外 Android 代码下载,编译完成后,可以定期使用 repo sync 命令同步我们的 Git 仓
8 R# Z( l$ E' h6 |9 a" I C库到本地,这样您的本地代码就跟我们的仓库保持同步更新了,编译后就会形成最新的系统镜
0 H2 Q% y/ K* o0 U$ `: V像.$ Z7 h+ X# y5 D; Y
我们的 Android4.0 代码区分精英版和全能版,默认我们下载的代码编译形成的镜像可以; ^3 _# w% g3 Y( Z$ _
在精英板运行,要编译全能板版本,只需要修改一项配置即可:/ r( }. {6 W9 u* f( v
文件路径:iTop4412_ICS_git/device/samsung/smdk4x12/BoardConfig.mk
! }- S! m3 U3 G+ P6 \9 h% Y配置项:BOARD_HAVE_MPU6050 ,该值配置成 false 代表编译版本是精英板版本,如果* A; |( @3 G: L2 ~+ V# b# }* F
设置成 true,则会编译全能板版本。$ e9 z4 U1 A$ q
精英版配置:) ]' B' o# J3 Y8 I
2 m7 M$ z% m# l( ?: `$ M全能版配置:, Y8 D4 s5 U3 C
3 Y7 w* B# Z( B6 ^1 q: y5 M
完成,更多内容关注:迅为电子
2 S# {' t- A7 ?3 V |
|