ubunt20.4 LineageOS 编译环境搭建

2023-11-20 19:20

本文主要是介绍ubunt20.4 LineageOS 编译环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、服务器准备

建议 ubunt 20.4,有物理机最好,或者用自己电脑的虚拟机。


二、下载repo工具

mkdir -p ~/binmkdir Androidcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

三、将~/bin添加到用户执行路径下

vim ~/.profile

#以下内容添加至.profile文件中

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

保存后运行

source ~/.profile

四、安装依赖项

sudo apt update

先更新下软件包列表

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

有报错解决掉再进行下一步!

lineageOS版本不同所需要的jdk版本也不一样

根据你的设备确认要安装的lineageOS版本https://wiki.lineageos.org/devices/

LineageOS 18.1+:OpenJDK 11

LineageOS 16.0-17.1:OpenJDK 1.9

LineageOS 14.1-15.1:OpenJDK 1.8

LineageOS 11.0-13.0:OpenJDK 1.7


五、配置git

git config --global user.email "you@example.com"git config --global user.name "Your Name"

六、开启缓存加速构建

export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccacheccache -M 50G

七、设置lineageOS版本 

cd Androidrepo init -u https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git -b cm-14.1


八、修改官方源为清华源

 ~/Android/.repo/manifests/default.xml 文件中

  <remote  name="github"fetch=".."review="review.lineageos.org" />

改成

  <remote  name="github"fetch="https://github.com/" /><remote  name="lineage"fetch="https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/"review="review.lineageos.org" />

  <remote  name="aosp"fetch="https://android.googlesource.com"

改成

  <remote  name="aosp"fetch="https://mirrors.tuna.tsinghua.edu.cn/git/AOSP"

  <default revision="..."remote="github"

改成

  <default revision="..."remote="lineage"

~/bin/repo 文件中 

if not REPO_URL:REPO_URL = 'https://gerrit.googlesource.com/git-repo'

改成

if not REPO_URL:REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

修改完后给虚拟机做个快照!


九、开始下载源码

repo sync -j16

-j 按照自己虚拟机配置来,如果遇到错误尝试降低线程。

下载需要一段时间。现在已经完成了第一部分,还需要获取设备独有的二进制文件,后续文档会讲。 


报错处理

CA证书相关

Downloading Repo source from https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/
fatal: 无法访问 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/':server certificate verification failed. CAfile: none CRLfile: none
repo: error: "git" failed with exit status 128

设置lineageOS版本时可能会遇到,将https 替换为hppt 配置文件以及 repo init时都需要换。

如果是下载repo工具时遇到,curl 后面加 -k 跳过验证即可。

Python 相关

因为在repo工具中,根据不同的lineageOS版本,也会使用不同版本的python,建议在ubunt中同时安装python2跟python3,sudo apt install 即可,repo会自己调用。如果碰到python语法问题下载完再试一下。

依赖项报错

安装依赖前需要更新下软件包列表。可以使用国内源。出现异常如果解决不了建议全部卸载,更换国内源,update以后重新安装。

编译过程中的依赖报错先不在这里叙述。


这篇关于ubunt20.4 LineageOS 编译环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/396850

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热