0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

云服务器编译Android10系统源码遇到的坑介绍

哆啦安全 来源:哆啦安全 作者:云天实验室 2022-11-24 10:39 次阅读

LineageOS Google Pixel3(blueline) Android10系统源码的下载、环境搭建、编译方法

LineageOS的Android系统版本

lineage-17.1 //Android10

lineage-18.1 //Android11

lineage-19.1 //Android12

https://wiki.lineageos.org/devices/blueline/build

sudo apt-get install  openjdk-8-jdk
sudo apt-get install -y python-dev python-setuptools python-pip python-smbus
sudo apt-get install python3sudo apt-get install python3-pip
sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagicklib32ncurses5-dev lib32readline-dev lib32z1-dev libelf-dev liblz4-tool libncurses5 libncurses5-devlibsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsyncschedtool squashfs-tools xsltproc zip zlib1g-dev

pip或pip3的升级

pip install --upgrade pip #python2的版本命令pip3 install --upgrade pip #python3的版本命令

Pixel3手机提取vendor的方法

https://wiki.lineageos.org/devices/blueline/buildhttps://lineageosroms.com/blueline/https://wiki.lineageos.org/extracting_blobs_from_zips

protobuf版本和python不匹配

ec793244-3d2e-11ed-9e49-dac502259ad0.jpg

ec98fcf0-3d2e-11ed-9e49-dac502259ad0.jpg

ecaff0b8-3d2e-11ed-9e49-dac502259ad0.jpg

TypeError:__init__()gotanunexpectedkeywordargument'serialized_options'

sudo pip install -U protobuf或sudo pip3 uninstall protobufsudo pip3 install -U protobuf

ecd1dd54-3d2e-11ed-9e49-dac502259ad0.jpg

切换Python3的版本到Python3.7,参考如下文章

Ubuntu安装配置切换Python3版本的解决方法

Ubuntu环境Python3版本的更新升级使用方法

https://wiki.lineageos.org/extracting_blobs_from_zips

ece488a0-3d2e-11ed-9e49-dac502259ad0.png

python3 /scripts/update-payload-extractor/extract.py payload.bin --output_dir /home/payload或cd /scripts/update-payload-extractor/python3 extract.py payload.bin --output_dir /home/payload

ed0fbb9c-3d2e-11ed-9e49-dac502259ad0.png

ed5f8b5e-3d2e-11ed-9e49-dac502259ad0.png

sudo -H pip uninstall protobufsudo -H pip uninstall googlesudo -H pip install -U googlesudo -H pip install -U protobuf或sudo -H pip3 uninstall protobufsudo -H pip3 uninstall googlesudo -H pip3 install -U googlesudo-Hpip3install-Uprotobuf

LineageOS Downloads(Pixel3 Android10系统镜像下载地址)

https://download.lineageos.org/https://download.lineageos.org/bluelinehttps://lineageosroms.com/https://lineageosroms.com/blueline/

ed7d6de0-3d2e-11ed-9e49-dac502259ad0.png

从LineageOS zip中提取Pixel3手机Android系统版本匹配的vendor(方法1)

https://wiki.lineageos.org/extracting_blobs_from_zips

edab8e82-3d2e-11ed-9e49-dac502259ad0.jpg

edc16540-3d2e-11ed-9e49-dac502259ad0.jpg

eddaee20-3d2e-11ed-9e49-dac502259ad0.jpg

edfe118e-3d2e-11ed-9e49-dac502259ad0.jpg

连接上Google Pixel3手机,其中手机中的Android系统版本号需要跟即将编译的Android系统版本号匹配,然后执行以下命令进行提取vendor(方法2)

cd ~/android/lineage/device/google/blueline
./extract
cd ~/android/lineage/vendor/google

备注:提取vendor的方法采用以上方法之一即可

如果遇到编译问题,可以参考,如下文章

Ubuntu虚拟机环境搭建Android系统源码编译环境及问题解决方法

Ubuntu18.04/20.04虚拟机编译Android4/5/6/7/8/9/10/11系统源码的问题解决

Ubuntu20.04系统设置全局的环境变量

sudo vim /etc/profile或sudovim~/.bashrc

把以下内容添加到/etc/profile或~/.bashrc中

exportUSE_CCACHE=1export CCACHE_EXEC=/usr/bin/ccacheccache -M 50Gccache -o compression=true

source后设置才可以生效

source /etc/profile或source ~/.bashrc

编译Android10系统源码(Google Pixel3手机)

source build/envsetup.shbreakfast bluelinecrootbrunch blueline

ee16424a-3d2e-11ed-9e49-dac502259ad0.jpg

ee2d573c-3d2e-11ed-9e49-dac502259ad0.jpg

ee4a134a-3d2e-11ed-9e49-dac502259ad0.png

ee9a063e-3d2e-11ed-9e49-dac502259ad0.png

eecf67a2-3d2e-11ed-9e49-dac502259ad0.jpg

have enough space free (691224576 requested, 3392774144 used out of 4069523456)Not enough space on device for partition product with size 691224576

eeeac506-3d2e-11ed-9e49-dac502259ad0.png

ef312dd4-3d2e-11ed-9e49-dac502259ad0.png

du -h  --max-depth=1 ./

ef56cd64-3d2e-11ed-9e49-dac502259ad0.jpg

ef6ff258-3d2e-11ed-9e49-dac502259ad0.jpg

ef929812-3d2e-11ed-9e49-dac502259ad0.jpg

ef9f7a50-3d2e-11ed-9e49-dac502259ad0.png

efeb70fe-3d2e-11ed-9e49-dac502259ad0.jpg

f0111a0c-3d2e-11ed-9e49-dac502259ad0.png

f02fc240-3d2e-11ed-9e49-dac502259ad0.png

以上报错的主要原因是空间不足(参考以下方法解决)

https://stackoverflow.com/questions/70482311/how-can-i-increase-system-ext-partition-in-aosp
ExternalError: Failed to run command '['lpmake', '--metadata-size', '65536', '--super-name', 'system', '--metadata-slots', '2', '--auto-slot-suffixing', '--device', 'system:2952790016', '--device', 'vendor:805306368', '--device', 'product:314572800', '--group', 'google_dynamic_partitions:4069523456', '--partition', 'system:readonly:2344202240:google_dynamic_partitions', '--image', 'system=/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/IMAGES/system.img', '--partition', 'vendor:readonly:452227072:google_dynamic_partitions', '--image', 'vendor=/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/IMAGES/vendor.img', '--partition', 'product:readonly:1016426496:google_dynamic_partitions', '--image', 'product=/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/IMAGES/product.img', '--partition', 'system_ext:readonly:266698752:google_dynamic_partitions', '--image', 'system_ext=/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/IMAGES/system_ext.img', '--sparse', '--output', '/home/markus/EPhone/ethOS/out/target/product/blueline/obj/PACKAGING/target_files_intermediates/lineage_blueline-target_files-eng.markus/OTA']' (exit code 70):lpmake I 12-25 19:38:11 10456 10456 builder.cpp:1031] [liblp]Partition system will resize from 0 bytes to 2344202240 byteslpmake I 12-25 19:38:11 10456 10456 builder.cpp:1031] [liblp]Partition vendor will resize from 0 bytes to 452227072 byteslpmake I 12-25 19:38:11 10456 10456 builder.cpp:1031] [liblp]Partition product will resize from 0 bytes to 1016426496 byteslpmake E 12-25 19:38:11 10456 10456 builder.cpp:620] [liblp]Partition system_ext is part of group google_dynamic_partitions which does not have enough space free (266698752 requested, 3812855808 used out of 4069523456)Not enough space on device for partition system_ext with size 266698752

BoardConfigLineage.mkhttps://github.com/LineageOS/android_device_google_crosshatch/commit/155109c657c804ca14e4cbb78ddc2caf5bfeda46

f069ba68-3d2e-11ed-9e49-dac502259ad0.png

f08e4dce-3d2e-11ed-9e49-dac502259ad0.png

Pixel3手机Android10系统源码编译成功

f0b0fcfc-3d2e-11ed-9e49-dac502259ad0.jpg

f0d02be0-3d2e-11ed-9e49-dac502259ad0.jpg

Pixel3手机 Android10系统zip镜像

f0eadd6e-3d2e-11ed-9e49-dac502259ad0.png

在out目录找到Pixel3手机Android10系统编译成功的zip镜像,然后对Pixel3手机进行刷机

f12ad7fc-3d2e-11ed-9e49-dac502259ad0.jpg

Android10系统zip镜像的刷机方法,参考如下文章

玩转Android10(二)刷机操作

Android系统镜像刷机方法(一)

Android系统镜像刷机方法(二)

Android系统镜像刷机方法(三)

免Magisk使用adb命令安装Edxposed

编译Windows平台adb和fastboot工具

树莓派4B/2W,烧写SD卡刷入Android 系统

玩转Android10(二)刷机操作之fastboot刷机演示

玩转Android10(二)刷机操作之Recovery刷机演示

谷歌Pixel 2手机刷入官方安卓10工厂镜像图文详细教程

支持Pixel3手机刷机的twrp工具下载地址

https://twrp.me/google/googlepixel3.htmlhttps://eu.dl.twrp.me/blueline/

解锁Google Pixel3 Bootloader

备注:解锁bootloader将擦除设备中的所有数据,包括保存在设备内部存储器上的所有媒体,如图片,视频,音乐,文档等。为了避免不必要的麻烦和损失,请务必先将所有重要文件备份到PC或云存储,然后再执行此操作

(1).打开手机设置-关于手机-点击版本号7次,以打开“开发者选项”。

(2).返回到设置,打开 开发者选项-打开USB 调试,打开“OEM解锁”。出于安全考虑,这可能会要求你输入锁屏PIN/密码。

(3).向下滚动,直到看到“USB调试”选项并启用。

f14e5dda-3d2e-11ed-9e49-dac502259ad0.png

f18d9842-3d2e-11ed-9e49-dac502259ad0.png

f1cabf4c-3d2e-11ed-9e49-dac502259ad0.png

f1e7dd34-3d2e-11ed-9e49-dac502259ad0.png

f22a8486-3d2e-11ed-9e49-dac502259ad0.jpg

adb devicesadb reboot bootloaderfastboot devicesfastboot flashing unlockfastbootreboot

进入recovery模式后就显示no command

adb reboot recovery

问题原因:

recovery mode是官方的Recovery,没有刷入永久Twrp的Recovery

解决方法:

当未安装twrp,直接进入recovery会出现的界面,需要长按电源键强制关机,如图所示:

f2430376-3d2e-11ed-9e49-dac502259ad0.png

f2a95cf2-3d2e-11ed-9e49-dac502259ad0.png

f2c85a1c-3d2e-11ed-9e49-dac502259ad0.png

f301de9a-3d2e-11ed-9e49-dac502259ad0.png

支持google Pixel3手机的twrp工具安装成功

fastboot boot twrp-3.6.0_11-0-blueline.img

f31adaa8-3d2e-11ed-9e49-dac502259ad0.png

f33f9dca-3d2e-11ed-9e49-dac502259ad0.png

f3682240-3d2e-11ed-9e49-dac502259ad0.png

f3a135da-3d2e-11ed-9e49-dac502259ad0.png

LineageOS官方镜像

https://lineageosroms.com/blueline/

f3db4b94-3d2e-11ed-9e49-dac502259ad0.png

把云服务器上编译成功的Android10 Pixel3手机的zip镜像拷贝到sdcard,然后使用twrp工具进行刷机

adbpushpixel3_blueline.zip /sdcard/

f3fdfc0c-3d2e-11ed-9e49-dac502259ad0.png

f43c2ab8-3d2e-11ed-9e49-dac502259ad0.png

f47063fa-3d2e-11ed-9e49-dac502259ad0.png

f4acc2d2-3d2e-11ed-9e49-dac502259ad0.png

f4ddda02-3d2e-11ed-9e49-dac502259ad0.png

Pixel3手机刷Android10系统刷机成功

f514122a-3d2e-11ed-9e49-dac502259ad0.png

google系列机型,如果无法连接WIFI,可以参考如下文章

google手机连接WIFI后总会提示"无法连接互联网"的解决方法

f55412ee-3d2e-11ed-9e49-dac502259ad0.png

特别注意:

其他Google机型或其他手机厂商的机型,都可以参考以上方法进行Android系统各版本源码的下载、环境搭建、系统编译、刷机等的通用方法





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android系统
    +关注

    关注

    0

    文章

    56

    浏览量

    13185
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27377
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466

原文标题:干货|云服务器编译Android10系统源码或刷机或联网过程遇到的坑(Google Pixel3手机)

文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    服务器有什么优势?怎么选对服务器

    自身的优势,支持企业业务在弹性扩展能力上的高要求,具有高可用性,满足企业对数据进行快速恢复需求。服务器能够满足企业在电子商务、企业网站、OA系统、企业ERP/CRM管理软件、论坛和SNS等等各种需求
    发表于 07-31 18:35

    【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】使用服务器搭建编译环境

    服务器来搭编译环境!上面扯得有点远了,现在切入正题:服务器搭环境:现在
    发表于 12-23 10:37

    服务器安全吗?服务器有哪些优势?

    稳定性是很高。3、升级很便利如果我们现在使用的服务器空间不足的话,要想提升一下配置,是不需要重装系统的,直接就可以升级CPU、内存、硬盘,这样是不会影响使用的,很方便。4、安全性高服务器
    发表于 03-27 14:31

    RV1126 适配 Debian10(搭建人脸识别服务器)

    前言 主要借助人脸识别服务器的应用来介绍 RV1126 的 Debian10 系统和 Rockx。 Debian
    发表于 07-12 10:13

    服务器搭建嵌入式Linux开发环境的步骤

    Linux学习之服务器搭建嵌入式Linux开发环境第一步:购买服务器进入腾讯官方网站腾讯
    发表于 11-08 07:37

    服务器与物理服务器的区别是什么?

    是指物理上的单独服务器,物理服务器的构成包括处理、硬盘、内存、系统总线。用户可以方便的进行远程维护,免费重装系统 硬件级别上实现
    发表于 12-09 09:56

    求大佬分享RK3399 Android10 ROOT方法

    求大佬分享RK3399 Android10 ROOT方法
    发表于 03-08 09:03

    怎样去编译RK3288平台上的Android系统源码

    怎样使用Linux操作系统去搭建一种服务器环境呢?怎样去编译RK3288平台上的Android系统源码
    发表于 03-10 07:28

    教你怎样去搭建基于ROC-RK3399-PC Pro的Android10系统固件

    一、开发环境搭建Android 10 SDK的编译对PC机的要求不低,据官方介绍:64 位 CPU16GB 物理内存 + 交换内存30GB 空闲的磁盘空间用于构建,
    发表于 04-06 14:12

    芯一号ARM微服务器板卡的方法和过程介绍

    1、芯一号统一固件和多分区镜像文件的方法芯一号是极术社区发布的一款ARM微型服务器板卡,有幸成为“芯一号”ARM微服务器的第一批试用工
    发表于 06-16 16:02

    在华为弹性服务器上远程编译RK3568的相关资料介绍

    1、在华为弹性服务器上远程编译rk3568配置华为弹性服务器首先注册并登陆华为登陆后进入控
    发表于 09-08 17:06

    三星Galaxy S10海外部分用户收到Android10更新

    早前三星公布了国行版机型更新Android10的升级计划表,最快的Galaxy S10国行版要等到明年1月份才能获得Android10系统更新。
    的头像 发表于 12-03 15:42 2666次阅读

    Redmi K20迎来基于Android10的MIUI更新

    要知道Redmi K20在发布的时候,它预装的是基于Android9.0深度定制的MIUI,此番升级Android10对于该机的用户来说是个好消息。
    的头像 发表于 12-27 14:11 2727次阅读

    诺基亚7.2可升级Android10系统

    在最新的Android10中,谷歌针对大屏设备进行了体验上的优化,同时改进了ART机制,谷歌将部分预先配置好的文件放在云端,以提升应用的加载速度和运行效率,使Android应用整体的流畅度以及稳定性进一步提升。
    的头像 发表于 04-01 16:37 3742次阅读
    诺基亚7.2可升级<b class='flag-5'>Android10</b><b class='flag-5'>系统</b>

    基于Android13的AOSP源码下载及编译指南

    AOSP(Android Open Source Project)是Android操作系统的开源项目,通过下载和编译AOSP源码,您可以获得
    的头像 发表于 01-17 09:49 1039次阅读
    基于<b class='flag-5'>Android</b>13的AOSP<b class='flag-5'>源码</b>下载及<b class='flag-5'>编译</b>指南