手把手教你aosp android 12 pixel 解锁oem 编译刷入大全

hi,因为同学们学完了我的课程后,开始想玩一下google的pixel实体机,不想一直玩模拟器了,那么千里马老师今天也在咸鱼上掏了一个pixel 3来给大家展示一下这个google的机子怎么玩,其实我自己本身是有小米的lineage系统在玩,为了满足广大粉丝的好奇心也就自掏腰包买了个pixel玩,下面我们正式开始记录整个pixel 3的刷入自己编译修改的aosp代码:

1、开始前准备

前期我有2篇blog大家可以先去按blog搭建好,然后再来看这篇哈
aosp环境搭建:
https://blog.youkuaiyun.com/learnframework/article/details/107887594 Ubuntu16的看这里
https://blog.youkuaiyun.com/learnframework/article/details/121345533 Ubuntu 20看这里

实体硬件准备个pixel,我这里是pixel 3
在这里插入图片描述

2 解锁pixel 3

2.1 adb 连接pixel 3
Ubuntu环境下需要在udev下加上对应rule

test@test-Lenovo:~$ cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"

然后reboot电脑
2.2 开启adb开关和oem开关(加入开发选项方法:设置–》关于手机–》编译版本)
在这里插入图片描述开usb调试(如果会有弹出允许设备调试弹框,选择允许既可以)
在这里插入图片描述
开启oem解锁
然后在Ubuntu终端输入如下,可以看到对应的手机设备

test@test-Lenovo:~$ adb devices
List of devices attached
89DY05ZHM	device

2.3 进入解锁模式

test@test-Lenovo:~/aosp$ adb reboot bootloader
//进入BootLoader模式
test@test-Lenovo:~/aosp$ fastboot devices
89DY05ZHM	fastboot
//查看fastboot模式下是否有设备
test@test-Lenovo:~/aosp$ fastboot flashing unlock
OKAY [  0.031s]
Finished. Total time: 0.031s
//执行解锁

上面命令执行完成后,还需要手机上进行确认操作
在这里插入图片描述这时候还处于locked,按音量上下键可以
在这里插入图片描述

点击power键确认解锁既可以,然后fastboot reboot重启即可以

成功解锁Bootloader!至此解锁bootloader加载程序后,每次手机启动时,你都会见到一条警告,提示解锁了,这个其实没关系本来我们就是要解锁。

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

下载地址如下:
https://developers.google.cn/android/drivers
根据自己手机型号取这里里面点击下载对应的,我们这里选择下载android 12的最新版本(可能需要梯子)
在这里插入图片描述
在这里插入图片描述在这里插入图片描述把以上压缩包解压得到两个.sh文件拷贝到aosp的根目录
在这里插入图片描述然后在aosp根目录分别执行2个sh:

test@test-Lenovo:~/aosp$ ./extract-qcom-crosshatch.sh
(会提示按Enter键,这里一直按,到最后一行输入“I ACCEPT”就可以)

然后会执行解压

4、编译刷入

4.1 aosp部分请切到一个android-12的分支
这里可以考虑进入.repo/manifests下面直接进行checkout

test@test-Lenovo:~/aosp/.repo/manifests$ git branch 
* android-12.0.0_r32

checkout后
到根目录进行 repo sync就可以
4.2 编译刷入
上面所有步骤完成后既可以进入无脑的编译和刷入了

 1. build/envsetup.sh 
 2、 lunch aosp_crosshatch-userdebug 
 //选择正取产品目标
 3make -j 20
 4cd out/target/product/crosshatch/
  //进入out下镜像目录
 5、 adb reboot bootloader
 //进入bootloader
 6、fastboot flashall -w 
   //刷入out下面所有镜像

//注意这里crosshatch是产品代号,可以在https://developers.google.cn/android/drivers根机型查看

### 解决Content Security Policy (CSP) 中 `img-src` 违反策略的问题 当遇到 Content Security Policy (CSP) 错误,特别是 `img-src` 的违反策略问题时,通常是由于浏览器阻止了不符合 CSP 配置的图像资源加载。以下是详细的解决方案: #### 1. 修改 CSP 配置以允许特定类型的图片源 可以通过调整 CSP 头部中的 `img-src` 值来解决问题。常见的值包括 `'self'`, `data:`, 和 `base64:`。 - **`'self'`**: 表示只允许来自同一域名下的图片。 - **`data:`**: 允许数据 URI 方式的图片嵌。 - **`base64:`**: 明确指定 Base64 编码的图片可以被加载。 修改后的 CSP 可能看起来像这样: ```plaintext Content-Security-Policy: img-src 'self' data:; ``` 此配置表示仅允许从同域加载图片以及通过 Data URL 加载的图片[^1]。 #### 2. 在 Grafana 或其他应用中更新 CSP 设置 如果使用的是 Grafana,则可以在其配置文件中设置 CSP。具体方法如下: - 找到并编辑 Grafana 的配置文件(可通过日志文件 `/usr/local/var/log/grafana/grafana.log` 获取路径[^3])。 - 添加或修改 `[security]` 节点下的 `content_security_policy` 属性。例如: ```ini [security] content_security_policy = default-src 'self'; img-src 'self' data:; ``` 保存更改后重启 Grafana 服务即可生效。 #### 3. 使用 Homebrew 管理 Grafana 服务状态 如果你是通过 Homebrew 安装和管理 Grafana 的,可以利用以下命令检查和控制服务状态: ```bash brew services list ``` 上述命令可以帮助确认 Grafana 是否正在运行及其配置文件的位置[^3]。 #### 4. 测试新的 CSP 配置 完成以上操作后,在浏览器开发者工具中观察网络请求部分是否有任何剩余的 CSP 报错信息。如果没有进一步报错说明问题已成功解决。 --- ### 示例代码片段 下面是一个简单的 HTML 页面例子展示如何正确地定义 CSP 并支持 inline 图片: ```html <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:;"> </head> <body> <!-- Inline image encoded in base64 --> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..." alt="Base64 Image"/> </body> </html> ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

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

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

打赏作者

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

抵扣说明:

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

余额充值