android12.0(S) Pixel 3XL (QCOM 845) 编译刷机

简介: android12.0(S) Pixel 3XL (QCOM 845) 编译刷机

androidS 发布已经有一段时间了,作为一名搞机人,咱也不能落后,今天就来开盘 12 代码。

下载这个 S 代码前前后后搞了快一个月,哈哈我不愧是树懒本懒。唉,其实是中间遇到了不少问题,

环境都搞废了,还得重装系统,今天就来总结一下吧。


编译环境


1、Ubuntu16.04.5 系统

2、三星500G SSD EVO系列

3、内存8G,cpu 4核,I5(8年老本了凑合着用用)

4、二手 Pixel 3 XL一台


坑位集锦


1、磁盘大小

如果你是在虚拟机来盘这套代码的话,磁盘大小至少200G以上(血泪教训),中间扩容了三次最终还是不够大

仅仅 repo 文件夹就有 70G 左右


I7jivt.png


磁盘空间一定要大,一定要大,一定要大

不是虚拟机的请忽略这步

2、Python 版本要求

这次下载 aosp 的 S 代码时,repo init 就出现了问题,提示要求 Python 版本 3.6 以上


I7xzUU.png


在这也是费了好长时间才解决这个问题,具体可参考 Linux python升级


从官网下载最新版本 Python-3.9.8 解压,解压完成后先不要着急 make install


还有个小坑,会报


ModuleNotFoundError: No module named ‘_ctypes’ 这个错误


以及 ModuleNotFoundError: No module named ‘_ssl’ 这个错误

IHS9df.png


解决办法,执行如下两条指令

sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev

成功后,再参考 python3虚拟环境中解决 ModuleNotFoundError: No module named ‘_ssl’


修改源码 vim Modules/Setup


取消 _socket socketmodule.c 和下面的 SLL 注释


然后执行 make install 安装重新配置环境变量。


3、HTTP SSL 证书问题


执行 git config --global http.sslverify false 关闭

cczheng@ubantu:~/google$ cd Android12/
cczheng@ubantu:~/google/Android12$ export REPO_URL='https://gerrit-googlesource.proxy.ustclug.org/git-repo'
cczheng@ubantu:~/google/Android12$ repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b  android-12.0.0_r3
Downloading Repo source from https://gerrit-googlesource.proxy.ustclug.org/git-repo
fatal: unable to access 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
repo: error: "git" failed with exit status 128
  cwd: /home/cczheng/google/Android12/.repo/repo
  cmd: ['git', 'fetch', '--quiet', '--progress', 'origin', '+refs/heads/*:refs/remotes/origin/*', '+refs/tags/*:refs/tags/*']
fatal: cloning the git-repo repository failed, will remove '.repo/repo' 
cczheng@ubantu:~/google/Android12$ git config --global http.sslverify false
cczheng@ubantu:~/google/Android12$ repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b  android-12.0.0_r3
Downloading Repo source from https://gerrit-googlesource.proxy.ustclug.org/git-repo
... A new version of repo (2.17) is available.
... You should upgrade soon:
    cp /home/cczheng/google/Android12/.repo/repo/repo /home/cczheng/bin/repo
Downloading manifest from git://mirrors.ustc.edu.cn/aosp/platform/manifest
remote: Enumerating objects: 92903, done.
remote: Counting objects: 100% (92903/92903), done.
remote: Compressing objects: 100% (41747/41747), done.
remote: Total 92903 (delta 31091), reused 92896 (delta 31088)
Your identity is: yangtao <yangtao@innovatech.net.cn>
If you want to change this, please re-run 'repo init' with --config-name
repo has been initialized in /home/cczheng/google/Android12


做完这些步骤后,repo init 终于可以成功了。


IHSsld.png


准备工作


1、设置 git 账户


git config --global user.email "xxxxxxx@gmail.com"
git config --global user.name "xxxxx"


2、配置PATH环境变量


mkdir ~/bin
echo "PATH=~/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc


3、安装 curl 库,并设置权限


sudo apt-get install curl
curl -sSL  'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo


下载源码


1、建立工作目录


mkdir Android12
cd Android12


2、添加科大镜像源


export REPO_URL='https://gerrit-googlesource.proxy.ustclug.org/git-repo'


3、初始化仓库,并指定要下载android版本


repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b  android-12.0.0_r3


4、同步源码


repo sync -j4


IHp0H0.png


编译源码


1、安装 openjdk8

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

如果电脑里面存在多个java 版本,则通过如下命令选择openjdk-8即可


sudo update-alternative --config java
sudo update-alternative --config javac


2、安装依赖库

sudo apt-get install 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 tofrodos python-markdown libxml2-utils xsltproc zlib1g-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
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-get install libssl-dev


3、下载对应闭源驱动文件合入源码

可以到下面的地址下载 pixel 对应驱动文件或者完整 rom 包

Google play 中文站

4、开始编译

通过 lscpu 命令查看当前cpu的详细信息

20200202142509646.png


执行命令


source build/envsetup.sh
lunch 25  (aosp_crosshatch-userdebug 版本)
make -j8


lunch 根据上面cpu的类型,make -j cpu核数*2

编译完成23小时,哈哈哈哈哈哈


image.png


刷机,参考官方包自己写个刷机脚本,将你编译后out目录下得到的如下文件



TDTG79.png

copy出来,全部添加到压缩文件 aosp12.zip

然后依次执行

adb reboot fastboot

fastboot -w update .\aosp12.zip

fastboot reboot

PS H:\rom12\aosp12> adb reboot fastboot
PS H:\rom12\aosp12> fastboot -w update .\aosp12.zip
--------------------------------------------
Bootloader Version...: b1c1-0.4-7617406
Baseband Version.....: g845-00194-210812-B-7635520
Serial Number........: 89BY05MBQ
--------------------------------------------
extracting android-info.txt (0 MB) to RAM...
Checking 'product'                                 OKAY [  0.001s]
Setting current slot to 'b'                        OKAY [  0.035s]
extracting boot.img (64 MB) to disk... took 0.317s
archive does not contain 'boot.sig'
Sending 'boot_b' (65536 KB)                        OKAY [  2.063s]
Writing 'boot_b'                                   OKAY [  0.393s]
extracting dtbo.img (8 MB) to disk... took 0.048s
archive does not contain 'dtbo.sig'
Sending 'dtbo_b' (8192 KB)                         OKAY [  0.257s]
Writing 'dtbo_b'                                   OKAY [  0.066s]
archive does not contain 'dt.img'
archive does not contain 'recovery.img'
extracting vbmeta.img (0 MB) to disk... took 0.004s
archive does not contain 'vbmeta.sig'
Sending 'vbmeta_b' (8 KB)                          OKAY [  0.001s]
Writing 'vbmeta_b'                                 OKAY [  0.003s]
archive does not contain 'vbmeta_system.img'
archive does not contain 'vendor_boot.img'
extracting super_empty.img (0 MB) to disk... took 0.004s
Sending 'system_b' (4 KB)                          OKAY [  0.001s]
Updating super partition                           OKAY [  0.006s]
Resizing 'product_b'                               OKAY [  0.006s]
Resizing 'system_b'                                OKAY [  0.006s]
Resizing 'system_ext_b'                            OKAY [  0.006s]
Resizing 'vendor_b'                                OKAY [  0.006s]
archive does not contain 'boot_other.img'
archive does not contain 'odm.img'
extracting product.img (261 MB) to disk... took 2.240s
archive does not contain 'product.sig'
Resizing 'product_b'                               OKAY [  0.006s]
Sending sparse 'product_b' 1/2 (262140 KB)         OKAY [  8.237s]
Writing 'product_b'                                OKAY [  1.592s]
Sending sparse 'product_b' 2/2 (6092 KB)           OKAY [  0.210s]
Writing 'product_b'                                OKAY [  0.086s]
extracting system.img (795 MB) to disk... took 6.101s
archive does not contain 'system.sig'
Resizing 'system_b'                                OKAY [  0.006s]
Sending sparse 'system_b' 1/4 (262140 KB)          OKAY [  8.247s]
Writing 'system_b'                                 OKAY [  1.634s]
Sending sparse 'system_b' 2/4 (262140 KB)          OKAY [  8.788s]
Writing 'system_b'                                 OKAY [  1.685s]
Sending sparse 'system_b' 3/4 (262140 KB)          OKAY [  8.642s]
Writing 'system_b'                                 OKAY [  1.632s]
Sending sparse 'system_b' 4/4 (27832 KB)           OKAY [  0.935s]
Writing 'system_b'                                 OKAY [  0.199s]
extracting system_ext.img (123 MB) to disk... took 0.779s
archive does not contain 'system_ext.sig'
Resizing 'system_ext_b'                            OKAY [  0.004s]
Sending 'system_ext_b' (126872 KB)                 OKAY [  3.976s]
Writing 'system_ext_b'                             OKAY [  0.826s]
extracting system_other.img (66 MB) to disk... took 0.402s
archive does not contain 'system.sig'
Sending 'system_a' (68120 KB)                      OKAY [  2.129s]
Writing 'system_a'                                 OKAY [  0.410s]
extracting vendor.img (461 MB) to disk... took 3.112s
archive does not contain 'vendor.sig'
Resizing 'vendor_b'                                OKAY [  0.006s]
Sending sparse 'vendor_b' 1/2 (262140 KB)          OKAY [  8.233s]
Writing 'vendor_b'                                 OKAY [  1.651s]
Sending sparse 'vendor_b' 2/2 (210424 KB)          OKAY [  7.042s]
Writing 'vendor_b'                                 OKAY [  1.296s]
archive does not contain 'vendor_dlkm.img'
archive does not contain 'vendor_other.img'
Erasing 'userdata'                                 OKAY [  5.861s]
Erase successful, but not automatically formatting.
File system type raw not supported.
Erasing 'metadata'                                 OKAY [  0.111s]
Erase successful, but not automatically formatting.
File system type raw not supported.
Rebooting                                          OKAY [  0.000s]
Finished. Total time: 89.950s
PS H:\rom12\aosp12>


刷机结束,重启开始搞机啦。

Android 系统开发系列(1):Android 12 源代码下载、编译和刷机

Android系统编译之AOSP刷机

在谷歌云上高速编译安卓AOSP ROM、驱动、内核并完成刷机

目录
相关文章
|
6月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
447 1
|
4月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
142 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
4月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
4月前
|
Ubuntu Shell API
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
|
6月前
|
Android开发 Docker 容器
docker中编译android aosp源码,出现Build sandboxing disabled due to nsjail error
在使用Docker编译Android AOSP源码时,如果遇到"Build sandboxing disabled due to nsjail error"的错误,可以通过在docker run命令中添加`--privileged`参数来解决权限不足的问题。
1224 1
|
6月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
351 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
6月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
462 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
6月前
|
搜索推荐 Android开发
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
本文分享了不同价位电脑配置对于编译AOSP安卓系统源代码的影响,提供了从6000元到更高价位的电脑配置实例,并比较了它们的编译时间,以供学习AOSP源代码时电脑配置选择的参考。
385 0
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
|
6月前
|
Java Android开发
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
885 1
|
6月前
|
Ubuntu 开发工具 Android开发
Repo下载、编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27
文章记录了作者在Ubuntu 21.04服务器上配置环境、下载并编译基于Android 12.1.0_r27版本的AOSP源码的过程,包括解决编译过程中遇到的问题和错误处理方法。
367 0

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 7
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 10
    Android 13 SystemUI 启动流程