LineageOS 14.1(CM14.1)的快速下载与编译
Posted TonyHo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LineageOS 14.1(CM14.1)的快速下载与编译相关的知识,希望对你有一定的参考价值。
代码的快速下载
Cyanogenmod OS或者说后来的Lineage OS的代码都是分为两个部分:
- cm团队自己或者社区开发的代码: 主要是适配设备, 例如vendor相关,放在github上面
- aosp代码: google的AOSP代码, 作为base
因为本地有一份AOSP的Mirror,所以这部分AOSP代码就不需要再从google去下载了, 直接从本地获取即可.
local mirror的建立可以参考AOSP的repo 与get source相关文档.
关于repo与如何快速使用本地代码可以参考前面的博客:
repo详解与如何更改manifest快速获取和复用AOSP代码
修改步骤
1. repo init
根据LineageOS的的使用方法直接init:
repo init -u git://github.com/lineageos/android.git -b cm-14.1
这样就获取了.repo目录中的manifest仓库.
2. 修改manifest.git来源的url
因为前面的repo文章说明的是一个remote的使用, 而这里说明一下多个remote情况下的使用.
因为在manifest.xml中, 所有的name都是都没有自带.git, 所以无法直接修改remote中的fetch来完成:
注意高亮Line的的name结尾没有.git, 而我们的local mirror中参考却是有的:
$ realpath /ExtDisk/android/aosp_mirror/platform/developers/build.git/
/ExtDisk/android/aosp_mirror/platform/developers/build.git
因此我们还是直接修改config文件, 避免去全局修改manifest文件.
下面是修改后的url地址:
同时将LineageOS的remote fetch与aosp的fetch更改一下:
提取proprietary files
这个提取的流程在以前的博客中有说明:
为小米4与小米3 Mi3 Mi4编译Cyanogenmod 12.1与13.0 (CM12与CM13) 的步骤以及错误解决
但是到了CM14.1, 和前面又有一些不一样, 因此再次说明一下.
提取的流程
脚本根据下面这个文件:
device/asus/flo/proprietary-blobs.txt
知道需要提取的文件
然后使用adb从实机提取, 或者从extract ROM中提取.
从Extract ROM中提取
步骤还是和以前一样, 使用sdat2img获取ext4格式的image:
$ sdat2img.py system.transfer.list system.new.dat system.img
然后需要mount到一个新创建的system目录.例如:
mkdir ../system
sudo mount system.img ../system
realpath ..
/ExtDisk/android/Nexus7/lineage-14.1-20170307-nightly-flo-signed
然后就可以运行提取脚本了:
cd $ANDROID/device/asus/flo/
./extract-files /ExtDisk/android/Nexus7/lineage-14.1-20170307-nightly-flo-signed
注意第二行里面的$1参数为system目录的路径, 而不是mount的路径, 这个因为在脚本中会自动添加system:
同时我们在后面加入echo可以知道从哪个位置提取出来的. 提取完成后, 脚本还会自动创建makefile/*.mk用来完成拷贝功能.
编译
直接使用下面命令即可完成编译, 这个过程和以前的CM还是一样的.. build/envsetup.sh
breakfast flo
brunch flo
参考
https://forum.xda-developers.com/moto-g-2014/general/guide-build-lineageos-titan-ubuntu-t3537396以上是关于LineageOS 14.1(CM14.1)的快速下载与编译的主要内容,如果未能解决你的问题,请参考以下文章