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

    浏览量

    13473
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28064
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84439

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

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

    求大佬分享RK3399 Android10 ROOT方法

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

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

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

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

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

    服务器可以挖矿吗_服务器怎么挖矿

    本文对服务器的定义、对服务器优势进行了详细分析。最后详细的介绍使用
    发表于 01-08 17:19 3w次阅读
    <b class='flag-5'>云</b><b class='flag-5'>服务器</b>可以挖矿吗_<b class='flag-5'>云</b><b class='flag-5'>服务器</b>怎么挖矿

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

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

    Redmi K20迎来基于Android10的MIUI更新

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

    诺基亚7.2可升级Android10系统

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

    服务器的用途及优势介绍

      服务器不像我们熟悉的物理服务器,而是运行在计算环境中的虚拟服务器。该服务器是通过使用互联
    的头像 发表于 05-25 17:10 2297次阅读

    被誉为轻量服务器“鼻祖”的腾讯遇到最硬核对手

    技术发展和行业深耕,腾讯轻量应用服务器遇到多方挑战,其中华为耀服务器 L 实例更是表现出
    的头像 发表于 10-20 15:38 396次阅读
    被誉为轻量<b class='flag-5'>云</b><b class='flag-5'>服务器</b>“鼻祖”的腾讯<b class='flag-5'>云</b>,<b class='flag-5'>遇到</b>最硬核对手

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

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

    服务器和虚拟服务器的区别是什么

    服务器和虚拟服务器是两种常见的服务器类型,它们在很多方面有相似之处,但也有一些关键的区别。本文将详细介绍
    的头像 发表于 07-02 09:48 643次阅读