|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Android4.0 源码可以从光盘,网盘获取稳定版本,也可以从 GitHub 下载我们的开发版6 ]! N9 f/ W' k/ U
本。GitHub 仅提供源码下载,不提供二进制下载,二进制文件存放在光盘和网盘中。7 ?. }" R* X2 F0 U7 q( z/ x& o, R* z
基于迅为4412开发板' N9 ?* W% S1 G) O. x8 Q
6.3.1.1 repo 下载1 m0 ?) R. j! t
android 代码管理不同于 uboot,kernel,由于 Android 代码比较庞大,我们把 Android
' f( X& a' z* G$ e3 i项目按照文件夹进行项目拆分,android 源码根目录下面的每个子目录都会划分为一个仓库或
3 q/ n8 S: j# P% r者多个仓库进行版本管理,Android 的代码下载需要使用 repo 工具,repo 工具为 Git 的封
! i- ^7 k6 V+ Y装,底层是使用 Git 命令进行下载的。* N `, ]! i6 D% h4 V+ R
假设将要下载的 repo 工具存放于 /media/data/gitHub 目录:
}! x& m Z- `0 [8 ?#cd /media/data/GitHub/
: l8 \" q0 o ?0 W( X) J! ?. z#git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/% Y& v' T8 H* x( S/ m i$ [$ r
git-repo 仓库下载完成后会看到该文件夹内有 repo 脚本文件:4 I3 {0 l% n& |! Q1 \6 x
% h1 f# B, e' E* a e- b! w# s
6.3.1.2 Android4.0 代码下载
m, O1 n( i$ _: b8 Q8 N假设我们的 Android4.0 代码存放在 /media/data/GitHub/iTop4412_ICS_git 目录:
+ Z4 d; n- s, b6 J4 K" B( B+ d# cd /media/data/GitHub/iTop4412_ICS_git
: s8 J3 g4 z( B0 ?' ~1 ]/ N#../git-repo/repo init –u https://github.com/TOPEET-Develop/android.git -b: H7 k6 M, X- _$ w! p1 g9 k$ n
exynos4412_android4.0.3_master1 V4 T/ e3 F/ P* d( j
注意上一条命令中,换行字符“-b”之后有空格。
# g. C* b! m( J P- Y! K
2 Q- O, r& {; d; x2 O
注: repo init 命令中–u 参数指定 android 仓库下载地址,-b 参数指定仓库中的下载
~: z) ^! }- B& n分支.8 d/ p/ j# O F" @/ y) B
这里我下载的是 exynos4412_android4.0.3_master 分支,该命令执行过程中需要输入/ E' F8 [, p# i0 B% G0 k
相关的信息,如下图所示:
) E- M' z0 F/ f# \6 t
! u2 Z, L2 j6 K6 a. A! y
Your Name 输入 root
* B9 }+ t8 t5 xYour Email: 直接回车即可,然后在输入 y, 回车继续:
; r. i0 W- y! N0 v/ g) n
$ Z. J- x) S' k- Q: p
#../git-repo/repo sync' R7 c8 x+ a5 o F1 z
注: repo sync 开始下载 Android 代码,下载过程与网络环境有一定的关系,如果下
' `' V8 w: g4 Z1 O6 S3 j载过程中长时间没有进度显示,可以 ctrl+c 终止下载,然后执行 repo sync 命令重新开始,' @- g! U7 g6 N: X
下图为源码下载过程中的进度显示:
! ~7 z9 u N m9 f% z Z. @" j
$ i4 N8 R1 f8 e5 j
代码下载完成后会在 /media/data/GitHub/ iTop4412_ICS_git 目录下面显示 Android4 _$ g8 h' |; S
系统源码目录:
2 C/ f& x1 l6 V: B5 W
; V/ v: v$ \* U5 R, V2 z. S+ Q) _每个文件夹目录下面都会有一个或者多个 Git 仓库,默认这些仓库是没有分支的,我们需要
# m! K$ k( R3 Y8 | u/ y+ n使用 repo star 命令创建分支,这里我们创建 master 分支,您也可以使用别的名字来定义分支
% s) ^- S3 ? e( N名称,repo branch 命令可以查看创建的分支:
5 @5 a% \6 j; _/ [1 g% [. C#../git-repo/repo start master --all% j' T) H! _! R1 M+ n( g, S: n
#../git-repo/repo branch* H, N& @" `7 E' F/ ?9 N
5 y; C! H0 `# g9 r6.3.1.3 Android4.0 源码编译" ]' @ @9 m% t" r8 N, w
Android 代码下载完成后就可以进行编译了,Android 源码编译需要 kernel 支持,所
& m' ?" f2 K6 u/ a0 t" i0 X以我们需要把 Android 代码与 kernel 代码放到同一目录下面:( D7 j( ~( T8 n* u1 o
) d1 r# k3 w( F! r1 |注: 上图中 iTOP4412_Kernel_3.0 为 Android 的内核代码, 与 Android4.0 源码目录
* i: D1 i0 C; m- oiTOP4412_ICS_git 在同一级,另外编译 Android4.0 之前需要编译内核代码,在内核代码目
2 m% d7 g3 d) v# l8 b# T4 H录执行:
/ k5 F3 U. v ]: Y# cp config_for_android_XX_YY .config
1 b! \- F- m# s4 k! D# make zImage
' {8 b6 @! m" B$ t. K# make modules! C- u- K ^9 c3 P
config_for_android_XX_YY 中的 XX 指核心板类型:scp,pop,pop2G, YY 指的是底板/ o: k. g) I; J( n5 b7 N( g, ^$ `
类型:精英版 elite,或者全能版 supper.
0 _: y ?+ t$ K6 ^+ l Tmake modules 会编译驱动库文件*.ko , Android4.0 会拷贝驱动库文件到 Android 的- l. R4 l( _6 C; t- B+ ?
目录结构,否则 Android 的某些功能无法使用。% J2 V; j# D/ ?, b
Android4.0 的执行编译命令:
" w( R' z: T& W#cd iTop4412_ICS_git
1 T) P+ V% |: B" A( o# ./build_android.sh$ i- V; y, ^% g5 k& d. n8 Q
另外 Android 代码下载,编译完成后,可以定期使用 repo sync 命令同步我们的 Git 仓! b/ W4 F+ {, ]; B3 L2 K2 {1 _
库到本地,这样您的本地代码就跟我们的仓库保持同步更新了,编译后就会形成最新的系统镜
+ W. ?' }; w8 A# {% u2 H. X" b像.
x% L, D8 u. U1 x2 U1 k/ s我们的 Android4.0 代码区分精英版和全能版,默认我们下载的代码编译形成的镜像可以/ V! b0 |/ o/ I) ^4 ]
在精英板运行,要编译全能板版本,只需要修改一项配置即可:
+ `% Z4 V, v {+ }. B' [9 i文件路径:iTop4412_ICS_git/device/samsung/smdk4x12/BoardConfig.mk
7 I' P8 V1 }2 I- @7 r" q配置项:BOARD_HAVE_MPU6050 ,该值配置成 false 代表编译版本是精英板版本,如果
X- q1 A4 ]/ K设置成 true,则会编译全能板版本。
! O: a" A$ _! j) B7 u精英版配置:
% z" Q) e: j& z; ?% Y
: u+ _+ r& k. P全能版配置:% ? n$ O+ T! N1 n/ f0 Z
1 M* D) f. M$ P9 C3 a完成,更多内容关注:迅为电子
6 T7 R4 h0 W9 {( z& s& S: l |
|