Ubuntu 16.04下载编译Android11源码
Ubuntu 16.04下载编译Android11源码
- Ubuntu 16.04下载编译Android11源码
- 1. 硬件要求
- 2. 设置Linux构建环境
- 1. 安装所需的软件包
- 2. 安装Open JDK1.8
- 3. 安装git
- 4. 安装Python3.7
- 3. 源码下载
- 1. 下载repo
- 2. 下载Android11 源码
- *3. 获取专有二进制文件
- 4. 编译 Android
- 5. kernel下载编译
- 6. 合入内核,重新编译
- 7. 刷入设备
- 1. 构建 `fastboot` 和 `adb`,如果你没有 `fastboot` 和 `adb`,可以使用常规构建系统进行构建。
- 2. 解锁引导加载程序
- 3. 刷写设备
1. 硬件要求
必须达到或超出以下硬件要求:
- 如果是 Android 2.3.x (Gingerbread) 及更高版本(包括 master 分支),需要 64 位环境。如果是较低的版本,则可以在 32 位系统中进行编译。
- 如果要检出代码,至少需要 250 GB 可用磁盘空间;如果要进行构建,则还需要 150 GB。如果要进行多次构建,则需要更多空间。
- 至少需要 16 GB 的可用 RAM/交换空间。
2. 设置Linux构建环境
1. 安装所需的软件包
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
2. 安装Open JDK1.8
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo apt-get install openjdk-8-jre
注意: 如果系统已经安装了jdk,多个JDK版本需要配置和切换。Ubuntu多个JDK版本配置和切换
3. 安装git
安装git:
sudo apt-get install git
配置git:
git config --global user.name xxx
git config --global user.email xxx@qq.com
4. 安装Python3.7
sudo apt-get install python3.7
直接使用apt-get安装python3.7失败。改为手动安装:
python 官网找到python3.7的下载地址:Python3.7.1
https://www.python.org/ftp/python/python3.7.1/Python-3.7.1.tgz下载安装包:
wget https://www.python.org/ftp/python/python3.7.1/Python-3.7.1.tgz
- 解压安装,参考手动安装python3.7
3. 源码下载
1. 下载repo
- 确保你的主目录中有一个
bin/
目录,并且它包含在你的路径中:
mkdir ~/bin
PATH=~/bin:$PATH
- 下载 Repo 启动器,并确保它可执行:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2. 下载Android11 源码
创建用于存放源码的目录:
mkdir aosp
进入到 aosp
目录,初始化仓库,并指定版本:android-11.0.0_r17
cd aosp
repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r17
下载Android源代码树:
repo sync
*3. 获取专有二进制文件
如果只是编译运行于虚拟器,则不需要下载设备驱动文件。我们使用真机调试(这里使用的是Pixel 3a),所以需要下载对应源码分支真机驱动,并解压到源码目录一起编译。
代号、标记和 Build 号
下载的代码分支为:android-11.0.0_r17,对应的build ID为: RP1A.201105.002,
下载样机对应Android分支的驱动文件:
Google驱动程序
解压驱动文件到源码目录:
执行解压后的 .sh
文件。
4. 编译 Android
- 设置环境,使用
envsetup.sh
脚本初始化环境:
source build/envsetup.sh
*说明:
如果之前已经编译过,重新编译需要清除缓存和之前生成的文件
make clobber // 清除缓存
- 选择目标:
使用 lunch 选择要构建的目标。lunch product_name-build_variant
会选择product_name
作为需要构建的产品,并选择build_variant
作为需要构建的变体,然后将这些选择存储在环境中,以便供后续对 m 和其他类似命令的调用读取。
设备对应代号
我们使用Pixel 3a真机调试,其对应代号:sargo,编译配置:aosp_sargo-userdebug
lunch aosp_sargo-userdebug
- 编译,并把log保存到build.log文件。
make -j4 2>&1 | tee build.log
5. kernel下载编译
创建用于存放kernel的目录:
mkdir kernel
进入到 kernel
目录,初始化仓库,并指定分支:
cd kernel
repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-bonito-4.9-android11
设备对应内核分支
下载kernel源代码:
repo sync
编译内核:
./build/build.sh
6. 合入内核,重新编译
将内核合入image:
export TARGET_PREBUILT_KERNEL=/home/lxy/kernel/out/android-msm-pixel-4.9/private/msm-google/arch/arm64/boot/Image.lz4-dtb
编译:
cd ~/aosp
make bootimage
7. 刷入设备
1. 构建 fastboot
和 adb
,如果你没有 fastboot
和 adb
,可以使用常规构建系统进行构建。
make fastboot adb
2. 解锁引导加载程序
只有在引导加载程序允许的情况下,您才可以刷写自定义系统。但请注意,引导加载程序默认处于锁定状态。您可以解锁引导加载程序,但这样做会导致系统出于隐私原因而删除用户数据。解锁之后,系统会清空设备上的所有数据,即应用中的私人数据以及可通过 USB 访问的共享数据(包括照片和影片)。请先备份设备上的所有重要文件,然后再尝试解锁引导加载程序。
自 2014 年以来发布的所有 Nexus 和 Pixel 设备(从 Nexus 6 和 Nexus 9 开始)都内置有恢复出厂设置保护功能,需要执行多个步骤才能解锁引导加载程序。
如需在设备上启用 OEM 解锁功能,请执行以下操作:
在“设置”中,点按关于手机,然后点按版本号七次。
a. 当看到“您已处于开发者模式”这条消息后,点按返回按钮。
b. 点按开发者选项,然后启用 OEM 解锁和 USB 调试(如果 OEM 解锁处于停用状态,请连接到互联网,以便设备可以至少检入一次。如果“OEM 解锁”仍处于停用状态,说明设备可能已被运营商锁定 SIM 卡,系统无法解锁引导加载程序。)重新启动进入引导加载程序,然后使用 fastboot 解锁。
fastboot flashing unlock
- 在屏幕上确认解锁。
3. 刷写设备
- 在启动时按住相应的组合键或使用以下命令使设备进入
fastboot
模式:
adb reboot bootloader
- 在设备处于
fastboot
模式后,运行以下命令:
fastboot flashall -w
-w
选项会擦除设备上的 /data
分区;该选项在您第一次刷写特定设备时非常有用,但在其他情况下则没必要使用。
第一次需要刷入所有img文件,之后只需要刷入修改模块的img文件,如:
fastboot flash boot out/target/product/sargo/boot.img
- 刷入内核:
fastboot flash dtbo /home/lxy/kernel/out/android-msm-pixel-4.9/private/msm-google/arch/arm64/boot/dtbo.img
fastboot boot /home/lxy/kernel/out/android-msm-pixel-4.9/private/msm-google/arch/arm64/boot/Image.lz4-dtb
- 推入
.ko
文件:
提示: 需要先对设备进行remount
后才能成功推入,否则会推入失败,同时remount
后还需要重启设备,才能生效。
adb root
adb remountadb push /home/lxy/kernel/out/android-msm-pixel-4.9/dist/*.ko /vendor/lib/modules/
Ubuntu 16.04下载编译Android11源码相关推荐
- android .9编译,在Ubuntu 9.04下编译Android源码
一直都是刷官方的版本,准备自己编译一下刷机. 首先是下载,Android的源码是托管在Linux Kernel的源码站点,所以版本工具是git.关于git的使用和安装请见我的另一篇文章<在Ubu ...
- Ubuntu 16.04 下载、编译 友善之臂NanoPC-T2的Android5.1.1源码
友善之臂官网: http://www.arm9.net 友善之臂NanoPC-T2维基使用手册链接: http://wiki.friendlyarm.com/wiki/index.php/NanoPC ...
- Ubuntu 16.04安装编译MRPT 1.5.7
Ubuntu 16.04安装编译MRPT MRPT(Mobile Robot Programming Toolkit,移动机器人编程工具箱)的安装 1.准备必需的环境依赖 sudo apt insta ...
- win10最新下载编译Android源码的简易方法分享(已亲测)
win10最新下载编译Android源码的简易方法分享(已亲测) 准备至少150G的硬盘空间 win+R 输入control 打开程序与功能-启用或关闭Windows功能 勾选"适用于Lin ...
- ubuntu 16.04 编译android,Ubuntu 16.04 64bit 编译 Android 4.4 源码
1.获取Android源码 (1)下载repo 在用户目录下创建一个bin文件夹来存放repo,并把该路径设置到环境变量中mkdir ~/binPATH=~/bin:$PATH 下载repo脚本cur ...
- Ubuntu 15.04 安装TensorFlow(源码编译) 及测试梵高作画
介绍Google的TensorFlow机器学习开源库,在UbuntuKylin上的安装和和源码编译. 原始官方文档参见:http://www.tensorflow.org. 本电脑配置如下: 3.19 ...
- ubuntu20.04修改编译chromium源码实战
首先,利用vmware搭建ubuntu20.04的虚拟机 由于chromium的源码比较大,在git的时候需要分配数据交换的大小,如果小了就下不下来.所以最好给这台虚拟机分配12G内存以上.存储100 ...
- Ubuntu18.04系统编译android源码环境配置
1. 前言 我们做andorid系统开发,肯定时刻与源码打交到,特别是做新项目时,最重要的事情就是下载源码,然后配置环境编译,假如你的电脑是刚重装系统过,一个全新的开发环境,那么首要解决的事情就是完善 ...
- ubuntu下wget下载Linux内核源码、make生成.config文件
根据资料,如果要调试Linux内核源码,需要自己编译内核源码:原因是,一般下载的内核并不是为调试而编译的,要在编译时开启 "Compile the kernel with debug inf ...
最新文章
- 自动售货机编程_Rosmaro中基于视觉自动机的编程简介
- windows系统c++多线程开发
- memset 结构体内指针_数据结构之线性表应用——内存管理
- 遇见未来 | 软件定义数据中心:人类文明运行在软件之上
- linux---編輯器
- 使用Jacob自动替换书签内容
- JAVA各类基础高级面试题和中间件面试题资料
- U盘被写保护怎么解除?
- 迅雷下载太慢怎么办?
- RS/CQI/SINR/RSRP/RSSI都是什么意思?
- 自动化测试框架rf(Robot Framework)的安装
- 如何远程桌面局域网内计算机,如何使用远程桌面控制局域网中的另一台计算机...
- PS新手教程!五分钟绘制一张半调效果的耐克体育海报
- C++:求整数num中包含因子k的个数
- 《云计算核心技术剖析》迷你书连载三 – 云计算的商业模式
- Agent and recipient nouns
- HTML5画布Canvas线段、矩形、弧形及贝塞尔曲线等简单图形绘制
- 思科刀片服务器统一计算系统,思科统一计算系统白皮书.doc
- 最大的郁闷,关于psp的升级问题
- 第三方支付重新洗牌,拉卡拉支付能否激流勇进?