文章目录

  • 介绍
  • 前期准备
  • 构建LineageOS和LineageOS Recovery
    • 安装SDK
    • 安装构建软件包
      • Java
    • 创建文件夹
    • 安装repo命令
    • 将~/bin目录放在环境变量中
    • 初始化LineageOS源码仓库
    • 下载源码
    • 准备设备特定的代码
    • 提取专有文件
    • 打开缓存以加快构建速度
    • 开始构建
  • 安装
    • 成功了!那么,接下来是什么?
  • 更多帮助

介绍

这些说明有望帮助您的Motorola Moto X 2014开始,解锁引导加载程序(如有必要),然后为您下载所需的工具以及LineageOS的最新源代码(基于Google的Android操作系统)。设备。使用这些,您可以从源代码构建LineageOS和LineageOS Recovery映像,然后将它们都安装到设备中。

前期准备

  • 一台LineageOS支持的Android手机 例如摩托罗拉 moto X 2014
  • 比较新的64位计算机(Linux,macOS或Windows),具有比较大的的内存和大约100 GB的硬盘(如果启用ccache或为多个设备构建,则更多)。 您拥有的内存越少,构建所需的时间就越长(目标为8 GB或更多)。 与传统硬盘相比,使用SSD可以大大缩短构建时间。
  • 一条连接手机的数据线
  • 比较好的网络和可靠的电源
  • 对Android的基本操作和术语有所了解。 如果您已在其他设备上安装了自定义rom并熟悉了恢复操作,则将很有帮助。 了解一些基本的命令行概念,例如cd(代表“更改目录”),目录层次结构的概念以及在Linux中用/分隔的概念等,也可能会很有用。

好了让我们开始吧

构建LineageOS和LineageOS Recovery

NOTE: You only need to do these steps once. If you have already prepared your build environment and downloaded the source code, skip to Prepare the device-specific code

安装SDK

如果您以前没有安装过adb和fastbboot,则可以从Google下载它们。 提取运行:

unzip platform-tools-latest-linux.zip -d ~

现在,您必须将adb和fastbboot添加到PATH。 打开~/.profile并添加以下内容:

# add Android SDK platform tools to path
if [ -d "$HOME/platform-tools" ] ; thenPATH="$HOME/platform-tools:$PATH"
fi

然后,运行 source ~/.profile以更新您的环境变量

安装构建软件包

√ TIP: A package manager in Linux is a system used to install or remove software (usually originating from the Internet) on your computer. With Ubuntu, you can use the Ubuntu Software Center. Even better, you may also use the apt-get install command directly in the Terminal.

构建 LineageOS你需要

  • bc bison build-essential ccache curl flex g+±multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev

对于16.04(xenial)之前的Ubuntu版本,请替换为:

  • libwxgtk3.0-dev → libwxgtk2.8-dev

Java

不同版本的LineageOS需要不同的JDK(Java开发套件)版本。

  • LineageOS 16.0: OpenJDK 1.9 (included by default)
  • LineageOS 14.1-15.1: OpenJDK 1.8 (install openjdk-8-jdk)
  • LineageOS 11.0-13.0: OpenJDK 1.7 (install openjdk-7-jdk)*

*Ubuntu 16.04和更高版本在标准软件包存储库中没有OpenJDK 1.7。 请参阅Ask Ubuntu问题How do I install openjdk 7 on Ubuntu 16.04 or higher?”。 请注意,使用PPA openjdk-r的建议已过时(PPA从未更新过openjdk-7-jdk的产品,因此缺少安全修复程序); 即使是最受支持的,也请跳过该答案。

创建文件夹

您需要在构建环境中创建一些目录。
要创建它们:

mkdir -p ~/bin
mkdir -p ~/android/lineage

~/bin目录将包含git-repo工具(通常称为“ repo”),而~/android/lineage目录将包含LineageOS的源代码。

安装repo命令

输入以下内容以下载repo二进制文件并使其可执行(可运行):

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

将~/bin目录放在环境变量中

在最新版本的Ubuntu中,~/bin应该已经在您的PATH中。 您可以通过使用文本编辑器打开~/.profile并验证以下代码是否存在来进行检查(如果缺少,则添加它):

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; thenPATH="$HOME/bin:$PATH"
fi

然后,运行 source ~/.profile以更新您的环境变量

初始化LineageOS源码仓库

摩托罗拉Moto X 2014正式支持以下分支:

  • cm-14.1
  • lineage-16.0
    输入以下内容以初始化源码仓库:
android/lineage
repo init -u https://github.com/LineageOS/android.git -b lineage-16.0

下载源码

要开始将源代码下载到您的计算机,请键入以下内容:

repo sync

LineageOS清单包含一个repo的默认存储库配置,我们强烈建议您使用该配置(即不要添加任何要同步的选项)。 作为参考,我们的默认值为-j 4和-c。 -j 4部分意味着将同时存在四个线程/连接。 如果您遇到同步问题,可以将其降低至-j 3或-j2。另一方面,-c将要求repo仅拉入当前分支,而不是GitHub上可用的所有分支。

准备设备特定的代码

下载源代码后,请确保您位于源代码(cd ~/android /lineage)的根目录下,然后键入:

source build/envsetup.sh
breakfast victara

这将下载您设备的设备特定配置和内核。

提取专有文件

现在,确保已通过USB电缆将Moto X 2014连接到计算机,并且已启用ADB和root,并且您位于~/android/lineage/device/motorola/victara文件夹中。 然后运行extract-files.sh脚本:

./extract-files.sh

打开缓存以加快构建速度

如果你想加速后续的构建,请使用ccache:

export USE_CCACHE=1

并将该行添加到~/.bashrc文件中。 然后,通过键入以下命令指定要ccache使用的最大磁盘空间:

ccache -M 50G

其中50G对应于50GB的缓存。 这需要运行一次。 从25GB到100GB的任何地方都将显着提高构建速度(例如,典型的1小时构建时间可以减少到20分钟)。 如果您仅针对一台设备构建设备,则25GB-50GB即可。 如果计划为不共享相同内核源的多个设备进行构建,则目标为75GB-100GB。 此空间将永久占用您的驱动器,因此请考虑到这一点。

您还可以启用可选的ccache压缩。 尽管这可能会导致性能略有下降,但会增加适合缓存的文件数量。 要启用它,请运行:

export CCACHE_COMPRESS=1

或者将这一行添加到~/.bashrc文件中。

开始构建

是时候开始构建了!现在,键入:

croot
brunch victara

构建应该开始了。

安装

假定构建已完成且没有错误(完成后将很明显),请在构建运行的终端窗口中键入以下内容:

cd $OUT

在这里,您会找到所有已创建的文件。 更重要的两个文件是:

  • recovery.img,这是LineageOS恢复映像。
  • lineage-16.0-20200307-UNOFFICIAL-victara.zip,这是LineageOS安装程序包。

成功了!那么,接下来是什么?

你已经做到了!欢迎加入自我建设精英俱乐部。您已经从头开始构建了自己的操作系统。你是你的领域的主人,希望你在这个过程中学到了一些东西,也得到了一些乐趣。

更多帮助

  • #LineageOS-dev-Freenode IRC网络上的一个有用的实时聊天室(或“频道”)。

下载编译LineageOS代码相关推荐

  1. windows平台下载编译好的webrtc代码vs2015

    windows平台下载编译好的webrtc代码vs2015 编译好的源码工程地址:  https://github.com/hujianhua888/webrtc_vs2015,工程目录如下,包含所有 ...

  2. windows平台下载并编译webrtc代码(代理)2021.8.11

    好久没更写新博客了,当然好久没更新webrtc代码了,突发奇想拉去最新代码,无奈找了很多办法不行.经过不懈努力还是找到了简单实用的方法,现分享与大家. **注意:**起步之前,你需要配置科学上网方法, ...

  3. Mokee android 10.0代码下载编译总结

    Mokee代码下载 mokee下载 mokee编译 过程问题 做android framework开发也有很多年了,一直都是在公司里面下载编译,最近因为自己有个小需求想要实现,因此想着自己下载一个ao ...

  4. optee介绍(一)代码下载编译以及使用qemu运行

    系列文章目录 第一章 optee介绍(一)代码下载与编译 第二章 optee介绍(二)qemu run-only运行 文章目录 系列文章目录 前言 一.optee代码下载 1.repo方式下载 2.手 ...

  5. 给红米Note 4X编译LineageOS 14.1刷机包过程【详细】

    最近忙着找工作,今天就把以前的一篇文章放上来,防止自己搞忘,也帮助他人少走冤枉路.小米的MIUI确实做得很不错,但是可能你不会知道,它背后收集了大量你的系统数据和用户使用数据,现在是一个强调网络安全, ...

  6. 用SVN下载编译Spring3.2.4源码导入eclipse

    想学习研究下Spring源码,就在网上搜索一堆资料,别人的东西在自己的电脑上总是有问题.总结下自己的使用方法,以便备忘. 前提:导入eclipse成功,导入不了myeclipse. 1.准备条件: ( ...

  7. Nacos 快速开始、版本选择、预备环境准备、下载源码或者安装包、从 Github 上下载源码方式、下载编译后压缩包方式、配置nacos、配置集群、启动服务器、服务注册发现和配置管理、关闭服务器

    1.Nacos 快速开始 1.1.版本选择 1.2.预备环境准备 1.3.下载源码或者安装包 1.3.1.从 Github 上下载源码方式 1.3.2.下载编译后压缩包方式 1.3.3.配置nacos ...

  8. Android FrameWork学习(一)Android 7 0系统源码下载 编译

    最近计划着研究下 Android 7.0 的系统源码,之前也没做过什么记录,这次正好将学习的内容记录下来,方便以后复习巩固. 既然要学习我们的系统源码,那我们第一步要做的就是下载源码并进行编译了. # ...

  9. 【APICloud系列|8】APICloud下载编译包安装,点击图标打不开,提示很抱歉,程序出现异常,即将退出

    下载编译包之后,安装在真机上提示很抱歉,程序出现异常,即将退出.进不去这个应用,请问有什么解决办法? 分享一下解决办法:大体分为两个方向: 1.检查新添加的模块. 2.检查config.xml文件(及 ...

  10. sqlhelper 下载 使用指南 代码 [收藏]

    sqlhelper  下载 使用指南 代码 SqlHelper 下载 UploadFiles/2005-12/1216252638.rar   UploadFiles/2005-12/12165095 ...

最新文章

  1. Django使用心得(四)
  2. Spring学习笔记八--Bean生命周期和后置处理器
  3. MySQL分库分表 mycat
  4. Facebook图片存储架构技术全解析
  5. 当实在受不了了,就开干吧!
  6. 爬虫工具获取页面中域名及子域名(SQL注入、渗透)
  7. JS onclick 传参异常问题
  8. L1-008 求整数段和 (10 分)—团体程序设计天梯赛
  9. python实现四阶龙格库塔法
  10. selenium下载或保存图片最好的方法
  11. 调查上网行为管理软件(或设备)
  12. Django-登录注册
  13. 整理备忘:【已解决】VMware虚拟机提示“锁定文件失败 打不开磁盘”
  14. 【AnySDK】接入必读及常见问题
  15. 百万数据使用子查询进行SQL优化
  16. Pytorch张量(Tensor)复制
  17. 小括号在c语言的作用,C语言的小括号----其实是逗号运算符
  18. 对称加密和非对称加密原理
  19. 面向对象的高分辨率遥感影像分类实例
  20. 基于SVM支持向量机实现人脸识别

热门文章

  1. 介绍几个json在线格式化网站
  2. 在thinkphp中引入自定义的敏感词库
  3. 【读书笔记】《王道论坛计算机考研机试指南》第二章
  4. Linux 镜像文件ISO下载
  5. 软件测试--计算机基础
  6. 基于springboot小区物业管理系统
  7. 生成api接口文档的故事
  8. 基于Java科研成果管理系统_基于Java的高校科研管理系统的设计与实现(含源文件).doc...
  9. 楼房噪音模拟测试软件,房子不隔音?4种方法让你进入“静音”模式!
  10. mysql省市区三级联动数据库的源码(一)