一.repo安卓编译工具
项目模块化/组件化之后各模块也作为独立的 Git 仓库从主项目里剥离了出去,各模块各自管理自己的版本。Android源码引用了很多开源项目,每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个子项目的Git仓库,需要一个上层工具批量进行处理,因此repo诞生。
repo也会建立一个Git仓库,用来记录当前Android版本下各个子项目的Git仓库分别处于哪一个分支,这个仓库通常叫做:manifest仓库(清单库)。
二.repo下载安装
git clone https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
三.使用repo工具下载安卓源码
sky-build@sky-build:~/project/rs09$ ./../git-repo/repo init -u git@192.168.1.18:android11-rk3568/manifest.common.git -m Android11.common.xml
命令效果:
首先当前目录产生一个.repo目录
然后克隆一份repo的源代码到.repo/repo下,里面存放了其他repo子命令,即repo的主体部分。
接着从manifest_git_path仓库地址clone清单库到.repo/manifests和.repo/manifests.git目录。
同时.repo目录下还包括manifest仓库(清单库)内容
sky-build@sky-build:~/project/rs09/.repo$ ls -l
total 16
drwxrwxr-x 4 sky-build sky-build 4096 Aug 21 06:33 manifests
drwxrwxr-x 10 sky-build sky-build 4096 Aug 21 06:33 manifests.git
-rw-rw-r-- 1 sky-build sky-build 509 Aug 21 06:33 manifest.xml
drwxrwxr-x 9 sky-build sky-build 4096 Aug 21 06:33 repo
sky-build@sky-build:~/project/rs09$ .repo/repo/repo sync
repo sync
相当于 git clone
初始化好一个 repo 工作目录后下一步就是把代码同步下来了,该命令用来下载新的更改并更新本地环境中的工作文件。如果您在未使用任何参数的情况下运行 repo sync
,则该操作会同步所有项目(所有项目是指manifest文件中所有的project元素)的文件。
四.Android 编译
source build/envsetup.sh
lunch
./build.sh -UKAup
五.固件说明
update.img是将全部固件打包起来的,一般整体烧录是烧写update.img.