pixel刷入Android15 userdebug版本

发布于:2025-06-06 ⋅ 阅读:(23) ⋅ 点赞:(0)

最近入手一个pixel7,想着刷个userdebug版本,就不用模拟器调试开发了,结果按照网上的教程,每次刷机后都是卡在goole logo界面,卡了一天多我才找到问题所在,想着记录下,给自己做个备份。

1. 前期准备:

pixel型号: pixel7;
准备刷入版本:Android 15.0.0 (BP1A.250305.019)

2. 代码下载:

代码下载可参考:ubuntu下载和编译Android源码
不过我后面根据这个重新下载代码的时候有点问题,应该是ubuntu版本更新导致的一些依赖库的问题,具体问题不记得了,不过可以根据第一部安装依赖项的时候的报错,去搜索解决方案,问chatgpt可以直接解决。
重点来了,首先下载代码时确定需要分支,这里需要查询对应关系,不同的分支支持的设备不同,我们用的pixel7,所以就用最新的分支,对应关系查询链接
版本与分支对应关系
在表格中可见,android-15.0.0_r20支持的设备中有pixel7,所以repo init的时候采用下面的指令:

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-15.0.0_r20	
repo sync -j32

代码同步完成之后,还需要下载对应的驱动,首先得查表,根据对应关系,查找pixel7(代号panther)的BP1A.250305.019 该buildId对应的驱动是下图第一个。这里可能链接点不开,我把我下的文件放在附件中,需要的自取,也可以参考这个,不过,亲测没用,最好的办法就是换台电脑,就是这么神奇,我的笔记本就没问题。
驱动选择
下载完成得到压缩包,解压后得到一个.sh文件,将其放入代码的根目录:
在这里插入图片描述
执行脚本,中间需要回车确认,并阅读协议之后输入 I ACCEPT。

./extract-google_devices-panther.sh 

3. 编译代码:

代码下载完成后,需要进行编译:

source build/envsetup.sh
lunch aosp_panther-bp1a-userdebug
make -j32

这里需要注意lunch的参数,网上一大堆博客都没验证就乱写了,都写lunch aosp_panther-userdebug,简直是捣乱来的,我lunch参数这么写,一刷机就卡goole logo界面,这里参数的含义是以 - 为分隔符,aosp_panther代表的是设备,panther是pixel7的代号,然后bp1a代表的是我们下载的版本代码的buildId中前缀部分,如图1中第一列的内容,然后userdebug版本是我们版本的类型,因为希望能够push编译的jar包,所以需要userdebug版本,此版本性能较差,所以用的时候可能会有卡顿。当然也可以选择其他版本型号:
user 权限受限;适用于生产环境
userdebug 与“user”类似,但具有 root 权限和调试功能;是进行调试时的首选编译类型
eng 具有额外调试工具的开发配置

4. 刷写版本:

先进入fastboot界面:
能开机的前提下:

adb reboot bootloader
fastboot flashing unlock

终端输出下面内容时,表示成功
在这里插入图片描述
如国目前不能正常开机,那就长按电源键,直到关机,再长按电源+音量下键,进入fastboot即可。
接下来就是刷入版本:

fastboot flashall -w

好了,接下来静等开机即可。

5. 验证push jar包:

为了验证userdebug版本是否成功,先随便找一个地方加上log,然后编译,这里修改ActivityRecord.java,为了方便就在onFirstWindowDrawn处加一个日志点,这样只要每个activity的第一帧绘制完成后就会有日志输出。
在这里插入图片描述
在代码根目录执行:

make services -j32
cd out/target/product/panther/system/framework/
adb root      #root设备
adb remount
adb reboot	  #刷机后第一次root需要重启
adb root
adb remount	  
adb shell umount -l system/framework   #授权向该目录push文件
adb push services.jar system/framework/
adb shell stop && adb shell start

好了,点击一个应用启动,可以看到日志打印:
在这里插入图片描述
从日志可以看出,这里启动的是相册。


网站公告

今日签到

点亮在社区的每一天
去签到