Pixel 7 AOSP源码编译与烧录防踩坑指南

最近在折腾 Android 系统, 一直使用公司的开发环境,比较大, 不适合在家里折腾。因此在闲鱼上买了一个 Piexl 7手机,准备自己编译源码烧录进去玩,没想到历经坎坷,一度觉得买手机的钱要打水漂了。在此记录一下过程。

讲在前面的话

刚开始刷机可能会刷机失败,变砖或一直重启,不要慌张,大多数都是可以救回来的。可以查看此文章 pixel 变砖刷机教程, 建议使用浏览器的方式刷机,试了很多次,都成功了。

如果编译过程中遇到错误或者烧录过程中,遇到错误,可以查看此文章我编译的环境用的公司的服务器,所以问题较少。

一、获取适合 Pixel 7手机的源码

确认当前手机 build ID

在这里插入图片描述
我的 build ID 为TQ2A.230505.002。通过 build id 来指定, 我们要拉取的对应源码分支。需要在官网 代号、标记和 build 号找对应标记, 如下我们对应的标记应为android-13.0.0_r43, 接下来获取源码的时候会用到。
在这里插入图片描述

指定对应分支获取源码

# 初始化repo 
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r43

# 开始拉取
repo sync 

后面-b 指定的就是我们前面查找到的标记。(如何没有安装 repo工具的,需要自行搜索安装下哈)

二、下载对应的vendor和驱动包

我就是忘记执行这一步,刷完机之后一直重启!!!

下载对应 vendor 和驱动包链接地址

根据我们的 build id 找到对应压缩包

在这里插入图片描述

不过这里可能经常会出现如下界面,需要梯子。(如何有朋友刚好是Pixel 7手机,可以评论区联系我,我发送给你)
在这里插入图片描述
下载后是一个压缩包,解压后是一个 shell 脚本,拷贝到源码根目录下
在这里插入图片描述

执行脚本解压 vendor 包

执行之后,他会让你阅读一个协议文档,并接受。
在这里插入图片描述
阅读到最后(用 ctrl + d 会快速翻页, 不会真的有人认真看吧~),输入 I ACCEPT, 开始解压
在这里插入图片描述

三、编译AOSP源码

//初始化环境变量,执行源码仓库内的脚本自动初始化所需要的环境变量
source build/envsetup.sh 

//选择build 配置
//方法1
lunch # 展开所有配置列表
29 # 选择对应build 配置的id
//方法2 
lunch aosp_panther-userdebug #直接lunch 对应build 配置的id


//开始漫长的编译
make -j8 

//编译成功显示
#### build completed successfully (01:40:48 (hh:mm:ss)) ####

如果是编译其他手机源码,lunch 的时候,可以在这个映射表里面查找需要选择哪个产品

可能会遇到各种各样的问题,可以参考此博客

四、配置手机环境

1.进入开发者模式

在关于手机,版本号条目中,连续点击版本号多次,返回,进入系统条目,进入开发者选项,打开 adb和 OEM。
在这里插入图片描述

在这里插入图片描述

进入 fastboot模式解锁

通过 usb 数据线连接手机和电脑, adb device确认 adb 被正常打开后,输入adb reboot bootloader进入bootloader,通过 fastboot device 确认手机连接正常 (图片来自于参考链接
在这里插入图片描述
通过fastboot flashing unlock 指令进行解锁。比较老的手机可能为fastboot oem unlock。上面命令执行完成后,还需要手机上进行确认操作,通过操作按键解锁(图片来自于参考链接
在这里插入图片描述
接下来就是需要静静等待源码编译完整了.

五、刷机

等待源码编译完成后,我们进入/out/target/product/panther目录(其中panther为设备代号)

如果还在 fastboot 模式,则在执行 fastboot flashall -w指令即可。如果不在 fastboot 模式,执行adb reboot bootloader进入后执行 fastboot flashall -w,等待刷机
在这里插入图片描述

六、最终效果

在这里插入图片描述

七、参考链接

https://blog.youkuaiyun.com/learnframework/article/details/125269456
https://blog.youkuaiyun.com/weixin_43974127/article/details/137922141
https://zhuanlan.zhihu.com/p/638915928
https://source.android.com/docs/setup/build/running?hl=zh-cn#selecting-device-build

最后,祝各位刷机顺利,工作顺利~

### 如何忽略Sass `@import`规则已弃用的警告 在Dart Sass版本更新过程中,确实存在一些功能逐渐被标记为过时并最终移除的情况。对于`@import`规则,在较新的Dart Sass版本中已被视为不推荐使用的特性[^1]。 为了抑制有关`@import`规则即将废弃的具体警告信息而不影响其他正常的编译过程,可以采取如下措施: #### 方法一:通过命令行参数控制 如果是在命令行环境中运行Dart Sass,可以通过传递特定选项来关闭这些警告消息。具体来说就是使用`--quiet-deps`标志位启动程序: ```bash sass --quiet-deps input.scss output.css ``` 此方法适用于希望临时静默处理依赖项中的警告而不需要修改源码的情形。 #### 方法二:配置文件设置 当项目规模较大或者需要长期稳定地消除此类警告时,则可以在项目的根目录下创建名为`.sassrc.json`或`.sassrc.yml`这样的配置文件,并加入相应的字段以禁用警告输出。例如JSON格式下的实现方式如下所示: ```json { "quietDeps": true } ``` 这种方法的好处在于它能够作用于整个工作区内的所有Sass文件,无需每次执行都手动指定额外参数。 需要注意的是,虽然上述两种手段都可以有效地阻止`@import`相关的弃用通知显示出来,但从长远来看还是建议逐步迁移到官方推荐的新模块化导入机制上去,即采用`@use`和`@forward`语句替代旧版语法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是李校长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值