Ubuntu 22.04.3编译AOSP13刷机

文章目录

设备信息

手机:Pixel 4XL

下载AOSP并切换分支

清华大学开源软件镜像站下载初始化包aosp-latest.tar

解压缩,切换到Pixel 4XL对应的AOSP 13分支然后同步代码。

复制代码
tar xf aosp-latest.tar
cd aosp
repo init -b android-13.0.0_r31 #切换代码分支
repo sync

获取设备驱动

https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn中获取build ID。

以android-13.0.0_r31为例,对应build ID为TP1A.221005.002.B2

根据build ID在https://developers.google.com/android/drivers?hl=zh-cn中下载驱动文件。

驱动文件解压缩后是sh脚本文件,把sh脚本文件移动到aosp根目录下并执行,输入 I ACCEPT 获取驱动文件。

编译系统

在aosp根目录执行下面命令。

复制代码
source build/envsetup.sh
lunch XXX
m

编译遇到的问题Cannot allocate memory

解决方法:

复制代码
ulimit -n 20480

分析部分:

复制代码
从表面上看,分配内存失败,以为是内存不够,但是我这是64G的内存,以前在16G内存+16G虚拟内存情况下都能正常编译,现在转到服务器上怎么就有问题呢?报错期间,查看内存是有剩余的。期间从网上找了不同的解决方法,一个是去掉oat,WITH_DEXPREOPT 和WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY改为false,测试无效;另一个是修改dalvik.vm.dex2oat-Xmx 和dalvik.vm.image-dex2oat-Xmx等配置,调大,仍然无效。

没办法,自己看看dex2oatd代码,从报错的位置跟到mapmem,发现mmap报错位置是fd.get()==-1,难道是内有文件描述符的问题吗?通过cat /proc/sys/fs/file-nr命令查看,

10720 0 9223372036854775807服务器最大文件描述符很大,根本用不完,那就是每个用户的数量受限了?ulimit -n查看是1024,既然服务器这么大,那调整一下,ulimit -n 20480。

再次编译的时候,没有报错,一次通过,删除out目录,再次重新编译,也是一次通过。
原文链接:https://blog.csdn.net/fuyl1985/article/details/134378503

Ubuntu设置USB调试

Ubuntu设置后才能adb连接到手机。

复制代码
sudo usermod -aG plugdev $LOGNAME
apt-get install android-sdk-platform-tools-common

刷机

复制代码
adb reboot bootloader
fastboot devices #确认是否连接上手机
fastboot flashall -w #刷机

参考链接

https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn
https://yanke.info/?id=128
https://blog.csdn.net/fuyl1985/article/details/134378503
https://developer.android.com/studio/run/device.html?hl=zh-cn#setting-up
https://source.android.com/docs/setup/build/running?hl=zh-cn

相关推荐
下一页盛夏花开4 小时前
ubuntu 20中安装QT以后出现红色空心断点
linux·运维·ubuntu
拾贰_C9 小时前
【OpenClaw | openai | QQ】 配置QQ qot机器人
运维·人工智能·ubuntu·面试·prompt
郝亚军10 小时前
ubuntu 22.04如何安装libmodbus
运维·服务器·ubuntu
乌恩大侠11 小时前
【AI-RAN】在空ubuntu服务器安装环境和生成TV,高达430G文件
服务器·人工智能·ubuntu·fpga开发·o-ru
Hello.Reader11 小时前
Ubuntu 上正确安装 Kali 虚拟机、Docker 与 kail 工具指南
linux·ubuntu·docker
一袋米扛几楼9812 小时前
【报错问题】解决 Vercel 部署报错:Express 类型失效与 TypeScript 2349/2339/2769 错误排查
ubuntu·typescript·express
andr_gale12 小时前
04_rc文件语法规则
android·framework·aosp
MIXLLRED13 小时前
Ubuntu22.04 + ROS2 Humble + RealSense D435i 部署VINS-Fusion视觉惯性SLAM
ubuntu·slam·d435i·ros2·humble·vins
Gary Studio14 小时前
ubuntu 16.04一键换源
linux·运维·ubuntu
拾贰_C15 小时前
【node.js | Ubuntu | update】如何升级旧的nodejs本版至最新;如何升级npm
ubuntu·npm·node.js