0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Ubuntu18.04编译AOSP10.0r41刷入Pixel3的步骤

哆啦安全 来源:黄大官AOSP 2023-05-29 10:09 次阅读

背景

已经在AOSP 7.1.1 nexus 5x上面实现了修改位置打卡,现在是想在pixel3中继续尝试。

如何选择代码

要选择有对应驱动版本的代码分支,如果没有标明,强行用其他版本的驱动来编译刷机不知道是否可行。

比如我选择的情况是这样的。

这里是查代码分支和驱动版本的网站。

402d6f92-fca4-11ed-90ce-dac502259ad0.jpg

为什么呢?因为我的网盘中的Android10代码有这个分支,如果通过repo的方式下载,我网络太差了,容易失败,相信很多人放弃都会卡在这一步,下个代码都下不了。

我们之间下载某个分支的代码就行了,前提是这个分支刚好有驱动。

复制代号:QQ3A.200805.001

去驱动的网页上面搜索:

403f95be-fca4-11ed-90ce-dac502259ad0.jpg

在这里找到你的手机和对应代号的驱动。

android-10.0.0_r41 -> QQ3A.200805.001 > Pixel 3 binaries for Android 10.0.0 (QQ3A.200805.001)

关联起来,点击下载那2个文件就行了,先保存起来,到时候参与编译的。

编译环境

Ubuntu 1804

安装好openjdk8

和下面一堆东西。

如果安装不了,请切换国内的源,快很多。(怎么切源,自己处理)

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

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

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

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

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

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

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

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

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

sudo apt-get install -y lib32z1-dev ccache

sudo apt-get install -y bc python flex bison gperf libsdl-dev libesd0-dev build-essential zip curl

sudo apt-get install -y libssl-dev liblz4-tool

sudo apt-get install -y libesd-java libwxgtk3.0-dev squashfs-tools pngcrush schedtool libxml2

sudo apt-get install -y lzop schedtool lib32readline-dev libswitch-perl libssl-dev

创建虚拟机的时候硬盘如果空间足够,尽量给多点比如300g,我给了虚拟机200g。

编译好之后我的虚拟机可用空间剩余20g了。

虚拟机内存至少16g。如果编译过程中遇到oom,内存不够,可以关机了加点,编译的进度会保留的。

准备编译

进入源码根目录,解压驱动。

用7z解压驱动包得到sh,如果安装7z,自己解决。

tar zxvf google_devices-blueline-qq.3a.200805.001-466a3cb1.tgz

tar zxvf qcom-blueline-200805.001-a5511ad3.tgz

解压后得到2个sh文件

extract-开头的。

执行sh文件

./extract-

都是按空格继续,最后要手动输入I ACCEPT。两个文件都是一样的流程。

如果开始编译的时候遇到这样的错误

find vendor: permission denied

给驱动文件夹权限。

sudo chmod -R 777 vendor

到此开始编译。

源码根目录输入:

source build/envsetup.sh

回车

lunch

回车

4054b8ea-fca4-11ed-90ce-dac502259ad0.jpg

我们的手机pixel3就选择blueline这个产品,userdebug模式刷机完成就打开adb调试,有su。

40619236-fca4-11ed-90ce-dac502259ad0.jpg

开始编译:

make -j4

回车

由于配置低就用4线程编译,如果你配置高,就配置多点

开始后你可能会遇到这个错误:

test github.com/google/blueprint/pathtools

FAILED: out/soong/.bootstrap/blueprint-pathtools/test/test.passed

out/soong/.bootstrap/bin/gotestrunner -p ./build/blueprint/pathtools -f out/soong/.bootstrap/blueprint-pathtools/test/test.passed -- out/soong/.bootstrap/blueprint-pathtools/test/test -test.short

--- FAIL: TestGlobEscapes (0.02s)

--- FAIL: TestGlobEscapes/**/* (0.02s)

glob_test.go:562: incorrect matches list:

glob_test.go:562: pattern: "**/*"

glob_test.go:562: got: []string{"a/", "b", "a/a"}

glob_test.go:562: expected: []string{"*", "**/", "?", "a/", "b", "**/*", "**/a", "**/b/", "**/b/b", "a/a"}

glob_test.go:562: incorrect deps list:

glob_test.go:562: pattern: "**/*"

glob_test.go:562: got: []string{".", "a"}

glob_test.go:562: expected: []string{".", "**", "**/b", "a"}

--- FAIL: TestGlobEscapes/**/* (0.00s)

glob_test.go:562: incorrect matches list:

glob_test.go:562: pattern: "**/\*"

glob_test.go:562: got: []string(nil)

glob_test.go:562: expected: []string{"*", "**/*"}

glob_test.go:562: incorrect deps list:

glob_test.go:562: pattern: "**/\*"

glob_test.go:562: got: []string{".", "a"}

glob_test.go:562: expected: []string{".", "**", "**/b", "a"}

--- FAIL: TestGlobEscapes/**/* (0.00s)

glob_test.go incorrect matches list:

glob_test.go pattern: "\*\*/*"

glob_test.go got: []string(nil)

glob_test.go expected: []string{"**/*", "**/a", "**/b/"}

glob_test.go incorrect deps list:

glob_test.go pattern: "\*\*/*"

glob_test.go got: []string{"."}

glob_test.go expected: []string{".", "**"}

--- FAIL: TestGlobEscapes/**/**/* (0.00s)

glob_test.go incorrect matches list:

glob_test.go pattern: "\*\*/**/*"

glob_test.go got: []string(nil)

glob_test.go expected: []string{"**/*", "**/a", "**/b/", "**/b/b"}

glob_test.go incorrect deps list:

glob_test.go pattern: "\*\*/**/*"

glob_test.go got: []string{"."}

glob_test.go expected: []string{".", "**", "**/b"}

FAIL

1813 soong bootstrap failed with: exit status 1

就是把源码根目录下build/blueprint/Blueprints "pathtools/globtest.go"和fstest.go删除了保存就好了,找了几个小时的错误,就这个有用。

继续make -j4。

406d902c-fca4-11ed-90ce-dac502259ad0.jpg

编译完成。

刷入手机pixel3中

注意条件:

1:pixel3解开bl锁

2:必须退出登录的所有google账号,后果自负(懂的都懂)

3:usb接口已经配置好访问权限。

开始刷机。

手机连接电脑,触发虚拟机选择连接的设备,选择虚拟机就行。

adb devices

检查手机状态,如果已经连接会显示

sfasdfadf devices

我在这里遇到问题,我的手机之前系统是Android9,和现在编译的代码版本不一样,而且boot给我修改过的。

如果直接刷机,可能会遇到这样的错误。

fastboot flashall -w

--------------------------------------------

Bootloader Version...: b4s4-0.1-5613380

Baseband Version.....: g670-00011-190411-B-5457439

Serial Number........: XXXXXXXXXX

--------------------------------------------

Checking 'product' OKAY [ 0.057s]

Setting current slot to 'a' OKAY [ 0.372s]

Sending 'boot_a' (65536 KB) OKAY [ 1.850s]

Writing 'boot_a' OKAY [ 0.349s]

Sending 'dtbo_a' (8192 KB) OKAY [ 0.320s]

Writing 'dtbo_a' OKAY [ 0.095s]

Sending 'vbmeta_a' (4 KB) OKAY [ 0.120s]

Writing 'vbmeta_a' OKAY [ 0.066s]

Rebooting into fastboot FAILED (remote: 'Unsupported reboot option reboot-fastboot')

fastboot: error: Command failed

然后手机就挂了

40755aa0-fca4-11ed-90ce-dac502259ad0.jpg

查了资料,说是引导和当前编译的系统版本的不一样。

407eabd2-fca4-11ed-90ce-dac502259ad0.jpg

下载完成之后,解压zip,然后手机连接电脑,手机开机和音量下一起按住,等待进入BootLoader模式。

进入模式之后,电脑如果win,双击flash-all.bat,Mac和Linux执行./flash-all.sh就行。进入刷机,可能重启数次。

刷机完成之后,打开开发者模式,再次连接电脑,虚拟机连接手机。

进入源码根目录中,配置下fastboot。

cd out/host/linux-x86/bin

执行

sudo chown root:root fastboot && sudo chmod +s fastboot

输入你的虚拟机密码,回车。

回到根目录下

ANDROID_PRODUCT_OUT=out/target/product/blueline

开始刷机

如果你的手机开机,先重启

adb reboot bootloader

重启到bootloader后

fastboot devices

看看手机连接情况

fastboot flashall -w

408f352e-fca4-11ed-90ce-dac502259ad0.jpg

手机重启之后,虚拟机选择连接的手机设备就行了,重启多次。

40945d38-fca4-11ed-90ce-dac502259ad0.jpg

这个时候手机会自动重启。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • USB接口
    +关注

    关注

    9

    文章

    672

    浏览量

    54992
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27381
  • Ubuntu系统
    +关注

    关注

    0

    文章

    84

    浏览量

    3785

原文标题:Ubuntu18.04编译AOSP10.0r41刷入Pixel3

文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于ubuntu18.04搭建100ASK-ESP32开发环境并成功点灯

    前面搭了一个ubuntu18.04的服务器+远程VScode开发环境,最终就是为了玩板。
    发表于 06-25 11:41 434次阅读
    基于<b class='flag-5'>ubuntu18.04</b>搭建100ASK-ESP32开发环境并成功点灯

    【工程源码】ubuntu18.04使用静态ip

    的帖子更新了。在ubuntu18.04中,使用 NetPlan 进行网络管理。而且16.04之前使用的/etc/network/interfaces也已经不再使用。现在必须使用/etc/netplan
    发表于 02-29 19:59

    Ubuntu18.04工控机如何绑定USB串口?

    Ubuntu18.04工控机如何绑定USB串口?
    发表于 09-30 08:08

    ubuntu18.04虚拟机的登录密码是多少

    下载了i.mx8mm开发板官方提供的ubuntu18.04的虚拟机,登陆用户名是foxlinux,密码是多少?
    发表于 12-30 06:33

    Ubuntu18.04如何安装.Net5?

    的t507_linux_okt507_uart0.img镜像中,安装.Net5失败。这是微软的文档,Ubuntu18.04支持.Net5https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu请帮忙
    发表于 12-31 06:26

    Ubuntu18.04下运行run_demo报错怎么办

    为什么Ubuntu18.04下运行run_demo会报错呢?Ubuntu18.04下运行run_demo报错怎么办?
    发表于 02-16 06:37

    如何安装ubuntu18.04 QT开发环境?

    如何安装ubuntu18.04 QT开发环境?
    发表于 03-04 06:12

    怎样在ubuntu18.04的pc机上去编写程序呢

    怎样在ubuntu18.04的pc机上去编写程序呢?有哪些编写步骤呢?
    发表于 03-07 10:22

    怎样在RK3399核心板上安装ubuntu18.04系统呢

    怎样在RK3399核心板上安装ubuntu18.04系统呢?有哪些安装步骤
    发表于 03-07 11:02

    rk3399 ubuntu18.04 wifi 无法使用如何解决

    ubuntu18.04 ifconfig没有wlan0节点,同样编译出来的linuxrootfs和debian系统都没问题,有遇到同样问题的没?
    发表于 06-14 10:01

    新手求助RK3399 ubuntu18.04 wifi无法使用

    ubuntu18.04 ifconfig没有wlan0节点,同样编译出来的linuxrootfs和debian系统都没问题,有遇到同样问题的没?
    发表于 08-31 16:41

    Core 3399 JD4固件Ubuntu18.04/20.04(GPT)

    电子发烧友网站提供《Core 3399 JD4固件Ubuntu18.04/20.04(GPT).txt》资料免费下载
    发表于 09-02 09:43 0次下载
    Core 3399 JD4固件<b class='flag-5'>Ubuntu18.04</b>/20.04(GPT)

    Core 1808 JD4固件Linux根文件系统(Ubuntu18.04

    电子发烧友网站提供《Core 1808 JD4固件Linux根文件系统(Ubuntu18.04).txt》资料免费下载
    发表于 09-20 17:05 0次下载
    Core 1808 JD4固件Linux根文件系统(<b class='flag-5'>Ubuntu18.04</b>)

    ROC RK3399 PC Pro固件Ubuntu18.04/20.04(GPT)

    电子发烧友网站提供《ROC RK3399 PC Pro固件Ubuntu18.04/20.04(GPT).txt》资料免费下载
    发表于 09-20 15:53 3次下载
    ROC RK3399 PC Pro固件<b class='flag-5'>Ubuntu18.04</b>/20.04(GPT)

    如何在Ubuntu18.04编译小米K30U的内核呢?

    Ubuntu18.04编译小米官方内核K30U的内核,环境配置等。
    的头像 发表于 09-08 09:42 1739次阅读