要编译和安装 Android 系统,需要执行以下步骤: 1. 安装必要的软件 您需要安装 JDK、Git、Python、GCC 等必要的软件。可以使用以下命令将其安装在终端中:“sudo apt-get updatesudo apt-get install openjdk-8-jdk git python gcc-multilib'''2。下载 Android 源代码通过运行以下命令在终端中下载 Android 源代码:“mkdir androidcd androidrepo init -u android.googlesource.com/platform/manifest -b android-10.0.0_r31repo sync”'其中 android-10.0.0_r31 是 Android 10 的版本号编译安卓源码笔记本配置,您可以根据需要修改版本号。3. 配置环境变量 使用以下命令将 Android 源代码中的环境变量设置为您的系统:“源代码构建/envsetup.shlunch”4。编译 Android system通过在终端中运行以下命令编译 Android 系统:“make -j4”-j4 表示编译 4 个线程,可以根据需要修改线程数。5. 安卓系统安装编译完成后,可以使用快启动工具将安卓系统安装到设备上。首先,将设备逐步进入快速启动模式,然后将其加入笔记本。在终端中运行以下命令安装安卓系统:“快启动闪光灯”编译安卓源码笔记本配置,以上是编译安装安卓系统的基本步骤。由于Android编译和安装过程的复杂性,请确保您已仔细阅读相关文档并做好必要的准备。
截至目前,最新的避坑手册是根据mac环境下的android源码编译而成
避坑
源码、SDK、型号版本一定要清楚。 一些特殊版本需要特殊方法。 官方网站可能有说明。 之前看过别人的博客,大家都写的差不多,但是因为我的os比别人新,所以系统使用的sdk位置发生了变化。 。 。 ,而我的模型比较特殊(pixel 2 xl),这需要添加一个特殊的命令来使驱动程序可用。 。 。 ,我不能保证其他机型没有这些情况,所以出现奇怪问题时最好仔细看看官网教程。
配置(不说配置都是流氓)
操作系统:macos11.3.1
SDK:10.15(注意不要误读,我之前下载的是10.1.5...)
Java版本:1.8
Android源码:android-10.0.0_r1代号、标记和细分版本号、源码下载(根据对应的代号和标记下载对应版本的源码)
型号:Pixel 2 XL
下载
下载repo(源码同步工具,类似git),这里添加环境变量,方便使用repo同步源码树
mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo #使用tuna的git-repo镜像
chmod a+x ~/bin/repo #为repo文件添加权限
#为了能够到tuna上找镜像,需要将bin文件夹下的repo文件中的REPO_URL更改
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
#改为
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
初始化repo客户端
这里需要注意的是,macos上的默认文件系统是不区分大小写的,而android源码是区分大小写的,所以不能直接放在默认文件系统上。 方法一:对文件系统进行分区(这里需要选择区分大小写、日志式); 方法二:在内置移动硬盘上分区(同样选择区分大小写、日志式),如果内置移动硬盘已经是这种格式,则不需要进行此操作。 考虑到外接ssd空间的大小,我采用了第二种方法。 这里建议分配300G以上。
#建立工作目录,工作目录可以改成任何你喜欢的名字,这儿建议改成android版本,
#例如android_10。由于我是在外置的磁盘上放入android源码,
#因而该目录放在外置磁盘区分大小写和日志式的分区下。
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
#初始化仓库
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
#下载特定的android版本(我这儿下的是android-10的第1个版本),
#不加-b xxxx会默认下载最新版本。
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r1
下载android源码树
repo sync
编译
编译爽了一阵子,掀翻了火葬厂,这里是陷阱最多的地方,虽然只有几个命令obs源码编译,但可能会报各种错误。
准备
现在你可以真正进入编译阶段了(祝你一切顺利)
这里需要进入android源码的根目录,cd到WORKING_DIRECTORY。
#可以换成make clean,它用来清除上次编译的产物,
#第一次编译可不用这条命令,后续编译需要加这条命令
make clobber
#初始化编译环境
source build/envsetup.sh
#选择与设备对应的编译版本,
#可查看https://source.android.google.cn/setup/build/running?hl=zh-cn#selecting-device-build
lunch
#x是一个数字,选择机器核的个数的两倍最为适宜,我机器为6核,则x取12,make -j12
make -jx
第一次编译至少需要3个小时。 如果没有报错,最终会正常退出并显示红色成功消息,告诉你编译花了多长时间。
燃烧
本来编译完之后剩下的应该很容易了,但是我踩了坑,原因是这个模型比较特殊,我们先看一下官方教程
上面写着只用于loader版本早于TMZ20a的Pixel 2 XL机型(这里我要吐槽一万遍),好家伙,我按照别人的编程流程做了一遍又一遍obs源码编译,开机界面而且bootloader界面总是出现无限重启的现象,结果就是这个原因。 。 。 ,所以当你遇到奇怪的问题或者别人没有遇到过的问题时,一定要仔细阅读官方教程。 我不能保证不仅是这个模型或者android源码,其他的东西都不需要添加。
那么知道了这些之后就可以正常刻录和写入了。如有不清楚的地方请看
#首先设置一下ANDROID_PRODUCT_OUT,这个变量就是告诉手机到电脑的哪里找镜像烧录。
echo ${ANDROID_PRODUCT_OUT} #如果输出为空,则说明未设置,否则已经设置
#这儿是我编译好的镜像所在目录,你设置成你自己的,
#由于这里我为省事,没有加入环境变量,电脑重启后需要重设,当然也可以选择加入环境变量
ANDROID_PRODUCT_OUT=/Volumes/AOSP/android-10/out/target/product/taimen
#解锁
fastboot flashing unlock #对于新款设备(2015 年及之后发布的设备)
fastboot oem unlock #对于老款设备(2014 年及之前发布的设备)
fastboot flashing unlock_critical #这条命令只有我这个奇葩机型需要,不过别的机型可能需要别的,哈哈哈
#注:很多设备可能只需第一条命令fastboot flashing unlock即可
adb reboot bootloader #进入fastboot模式(或长按Volume Down + Power键)
fastboot flashall -w #刷机
一般情况下,刷机后手机会手动重启,如果能正常开机就成功了
防范措施
本教程尚未经过验证。 经过编译和烧录,我花了一段时间来写这个教程。 也许有些内容还不够详细,但我已经强调了一些关键问题。 如果您有任何疑问,请原谅我。
发表评论