自从cm转行做其他东西之后,从此开源界又少了一个大头,但是后来LineageOS系统继承了cm的遗志,由原班人马倾情打造的系统也就出来了。还是看看吧。
下载编译前的准备:
1.ubuntu16.04的系统
2.可以翻墙的网络
下载相关依赖:
下载编译环境以及java等等:
sudo apt-get install bison build-essential curl flex git gnupg libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libxml2 libxml2-utils lzop maven pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev bc ccache automake lzop gperf zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev python-networkx libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev squashfs-tools schedtool dpkg-dev liblz4-tool make optipng libwxgtk3.0-dev openjdk-8-jdk
下载repo等工具
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
下载代码:
创建目录,init代码库,这个地方需要翻墙.
cd ~/sourcecode/
repo init -u https://github.com/LineageOS/android.git -b cm-14.1
repo sync -j8 --no-tags
编译代码:
之后就可以编译代码
source build/envsetup.sh
breakfast hammerhead
brunch hammerhead
在breakfast hammerhead的时候会去github中查询对应的kernel和device相关信息。然后下载对应的库,驱动部分。
brunch就相当于我们平时使用的make命令
烧机:
烧机就比较简单了,编译完成后的东西都在out目录。有一个lineage-14.1-unofficial.zip
直接将recovery.img刷入到手机中:
fastboot flash recovery recovery.img
重启至recovery,然后使用sideload将zip刷入:
adb sideload Lineage*.zip
遇到的问题:
1.刷机后无法开机问题:
我不知道是库的依赖有问题还是就是少添加了库,在烧完机后,kernel无法启动,都无法启动到android部分。判断是驱动出了问题,于是在添加了以下代码在
.repo/local_manifest/roomservice.xml
<project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" />
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" />
重新sync代码,更新了以上的两个驱动库之后,编译完成可以启动。
后续的工作:
Jira 可以查看当前已有的bug,可以进行验证或者提供log。当然也可以提交代码。
gerrit 代码review的相关,gerrit设置什么的就不多说了。
reviewer 提交代码后可以让这些人帮忙review。