AOSP之代码下载、编译和烧录(Pixel3)

清华镜像站地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

google官网代号标记和细分版本:https://source.android.com/setup/start/build-numbers

pixel3 Binary Drive下载地址:https://developers.google.com/android/drivers#walleye

google kernel地址:https://source.android.com/setup/build/building-kernels#id-version

1. 首先通过清华源下载aosp最新代码压缩包

1.1 安装repo工具

mkdir ~/bin && cd ~/bin

PATH=~/bin:$PATH

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo

chmod +x repo

可以把repo的路径加入到环境变量里这样就不用每次都跑临时环境变量

sudo vi ~/.bashrc

// 添加如下语句到文件末尾

PATH=~/bin:$PATH

// 保存

1.2 下载每月更新的初始化包

wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包

tar xf aosp-latest.tar

cd AOSP  # 解压得到的 AOSP 工程目录

# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录

repo sync # 正常同步一遍即可得到完整目录

# 下载完成记得生成md5码校验,因为文件比较大,校验不对的话,编译出来的代码会出问题

# 另外,如果是月底去下载aosp-latest.tar需要注意,因为该包每月更新一次,

# 包很大,有90G,短时间内下载不完,那这个时候,请下载带日期的最新包,

# 避免更新aosp-latest.tar导致数据出入,其实aosp-latest.tar包就是网站上

# 最晚月份的包,只是重命名了而已

1.3 同步完成后,根据自己的硬件手机来制定对应的分支拉出代码,我使用的是谷歌pixel3

下载Android11的代码

从这里可以查出对应pixel3最新Android11的分支号,然后使用下面命令拉出,

google官网代号标记和细分版本:https://source.android.com/setup/start/build-numbers

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r17

repo sync

等待sync完成,一般晚上12点开始,很快。

2. 开始编译之前,进行编译依赖包安装,为了提高软件包,安装速度,请自行修改软件源为国内的源,我这里使用了阿里云的源。


sudo apt install openjdk-8-jdk -y #请输入java -version确认安装正确

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib -y

sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386

sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev

sudo apt-get install git-core gnupg flex bison gperf build-essential

sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib

sudo apt-get install libc6-dev-i386 -y

sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev

sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

sudo apt-get install lib32z-dev ccache

sudo apt install make make-guile -y

sudo apt-get install tofrodos -y

sudo apt-get install python-markdown libxml2-utils xsltproc zlib1g-dev:i386

安装依赖:

sudo apt-get install libesd0-dev 可能会出现错误,请参考下面排错进行解决

3. 提取pixel3手机对应的kernel和bootloader文件,这部分谷歌没有开源,只有对应的image包,是生成在sh脚本里面,只能说谷歌厉害,直接用脚本提取就可以,所以需要下载。

Binary Drive下载:

https://developers.google.com/android/drivers#walleye

选取pixel3手机对应Android版本的编号,我选的是这个build id RP1A.201105.002这个版本

这个脚本可以查看,

Pixel 3 binaries for Android 11.0.0 (RP1A.201105.002)


两个都进行下载,一个是google vendor,一个qcom。

解压得到

extract-google_devices-blueline.sh

extract-qcom-blueline.sh

将这两个脚本放到aosp代码目录下,进行提取

sh extract-google_devices-blueline.sh

sh extract-qcom-blueline.sh

这里需要一直按回车进行读取下一行,然后到最后输入I ACCEPT,进行确认

由于很容易错过最后一行,可以在运行之后,直接 / 进行搜索,"ACCEPT",直达最后一行

然后输入 "I ACCEPT" 提取镜像,此处应有掌声(太厉害了)

4. 编译,等待编译完成

make -j4 | tee make.log

5. 刷机

将pixel3连接上电脑,进入bootloader模式

adb reboot bootloader

把out目录下编译出来的*.img镜像刷进机器

fastboot flashall -w

提示ANDROID_PRODUCT_OUT no set,将存放img的路径配置到环境变量里,设置好之后,重来一遍

这次提示:fastboot: error: could not read android-info.txt

将out目录下的android-info.txt拷贝准备刷机器的img目录下


成功,Done!!!

排错:

1. sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev 报错如下:

E: Unable to locate package libesd0-dev


# 解决方法:

sudo vi /etc/apt/sources.list

# 在文件末尾添加如下信息:

deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe

deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe

# 更新源之后并进行重新安装,

sudo apt-get update && sudo apt-get install libesd0-dev

开始编译出错:

[100% 1/1] out/soong/.minibootstrap/minibp out/soong/.bootstrap/build.ninja

FAILED: out/soong/.bootstrap/build.ninja

out/soong/.minibootstrap/minibp -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/.bootstrap/build.ninja.d -globFile out/soong/.minibootstrap/build-globs.ninja -o out/soong/.bootstrap/build.ninja Android.bp

internal error: could not open symlink hardware/qcom/sm7250/Android.bp; its target (gps/os_pickup.bp) cannot be opened

ninja: build stopped: subcommand failed.

16:26:06 soong minibootstrap failed with: exit status 1

----解决方法:把对应的mk和bp文件重命名

cd android-11.0.0_r17/hardware/qcom/sm7250

mv Android.bp Android.bp.ori

mv Android.mk Android.mk.ori

重新开始编译,编译通过没有问题。


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容