OEM提供的rk3188+Android4.4.2源码包是把全部的android源码做成了一整个git仓,看着都吓人。于是我打算改造一下。
直接采用google管理android源码的方式,简单的把OEM提供的android源码按目录拆分成多个代码仓,然后用repo+git的方式搭建一套完整的版本管理。
网上介绍repo搭建代码仓的文章有很多,大致就是先用git建一个存放repo需要的default.xml的代码仓,用来存放各个xml配置文件。然后再新建多个git代码仓,存放android源码。default.xml中需要写好git仓的下载名称,远程git仓的下载连接,拉取到本地的路径名称等。下面是一个完整的default.xml,可以作为参考:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="ssh://[email protected]" ====> git代码仓库的下载链接
name="origin" ====> git远程服务器的名称,git pull/git fetch会用到
review="http://192.168.1.1"/> ====> repo upload提交修改的gerrit链接,如不需要review代码则不需要填写该项
<default remote="origin" revision="master"/> ====> 表示取远程git仓库的master分支,即主分支
<project path="abi" name="android/abi" /> ====> name代表git代码仓库名称,path代表clone到本地的目录。下同
<project path="art" name="android/art" />
<project path="bionic" name="android/bionic" />
<project path="bootable" name="android/bootable" />
<project path="build" name="android/build" />
<project path="cts" name="android/cts" />
<project path="dalvik" name="android/dalvik" />
<project path="developers" name="android/developers" />
<project path="development" name="android/development" />
<project path="device" name="android/device" />
<project path="docs" name="android/docs" />
<project path="external" name="android/external" />
<project path="frameworks" name="android/frameworks" />
<project path="hardware" name="android/hardware" />
<project path="kernel" name="android/kernel" />
<project path="libcore" name="android/libcore" />
<project path="libnativehelper" name="android/libnativehelper" />
<project path="ndk" name="android/ndk" />
<project path="packages" name="android/packages" />
<project path="pdk" name="android/pdk" />
<project path="prebuilts" name="android/prebuilts" />
<project path="RKDocs" name="android/rkdocs" />
<project path="rkst" name="android/rkst" />
<project path="RKTools" name="android/rktools" />
<project path="sdk" name="android/sdk" />
<project path="system" name="android/system" />
<project path="tools" name="android/tools" />
<project path="vendor" name="android/vendor" />
<project path="resource/android_bin" name="android/android-bin" /> ====> 存放自定义的apk等的git仓库,拉到本地resource/android_bin目录下
<project path="resource/android_logo" name="android/android-rom-oem-res" /> ====> 存放自定义开机logo的git仓库,拉到本地resource/android_logo目录下
<project path="resource/sdk_root_files" name="android/sdk_root_files" > ====> SDK根目录下的文件组成的git仓库,拉到本地resource/sdk_root_files目录下
<copyfile src="README" dest="README" /> ====> 把单个文件一个一个的复制到本地SDK根目录下。下同
<copyfile src="make.sh" dest="make.sh" />
<copyfile src="manifest.xml" dest="manifest.xml" />
<copyfile src="buildspec.mk" dest="buildspec.mk" />
<copyfile src="Makefile" dest="Makefile" />
<copyfile src="mkimage.sh" dest="mkimage.sh" />
<copyfile src="svn.sh" dest="svn.sh" />
<copyfile src=".gitignore" dest=".gitignore" />
</project>
</manifest>
以下是repo搭建代码仓的一些参考链接:
https://blog.csdn.net/kanyueliang410/article/details/79146145
https://blog.csdn.net/shift_wwx/article/details/19557031
https://www.cnblogs.com/aijianshi/p/5822647.html