[Linux Device Driver] 分区大小导致的adb remount失败解决方法

02-SA8155P ADB数据传输 略... 阅读详情
AI摘要

本文针对ADB remount操作中常见的失败问题进行了详细分析,并提供了具体的解决步骤。通过对log的解读定位到分区大小设置错误的问题所在,并给出了正确的设置方法。

0. 背景

这个问题一般是系统组来搞,但是adb remount失败,特别影响audio/camera干活,于是我请教了下大佬,学习了一下。

对比log如下:

正常remount成功的设备:

Disabling verity for /system
Using overlayfs for /system
Disabling verity for /system_ext
Using overlayfs for /system_ext
Disabling verity for /product
Using overlayfs for /product
Disabling verity for /vendor
Using overlayfs for /vendor
Disabling verity for /odm
Using overlayfs for /odm
Now reboot your device for settings to take effect
remount succeeded

异常remount失败的设备:

C:\Users\Administrator
$ adb remount
[liblp]Device size does not match (got 6442450944, expected 12884901888)
[liblp]Block device super size mismatch (expected12884901888, got 6442450944)
[libfs_mgr]add partition scratch
Overlayfs setup for /system failed, skipping: No such file or directory
[liblp]Device size does not match (got 6442450944, expected 12884901888)
[liblp]Block device super size mismatch (expected12884901888, got 6442450944)
[libfs_mgr]add partition scratch
Overlayfs setup for /system_ext failed, skipping: No such file or directory
[liblp]Device size does not match (got 6442450944, expected 12884901888)
[liblp]Block device super size mismatch (expected12884901888, got 6442450944)
[libfs_mgr]add partition scratch
Overlayfs setup for /product failed, skipping: No such file or directory
[liblp]Device size does not match (got 6442450944, expected 12884901888)
[liblp]Block device super size mismatch (expected12884901888, got 6442450944)
[libfs_mgr]add partition scratch
Overlayfs setup for /vendor failed, skipping: No such file or directory
[liblp]Device size does not match (got 6442450944, expected 12884901888)
[liblp]Block device super size mismatch (expected12884901888, got 6442450944)
[libfs_mgr]add partition scratch
Overlayfs setup for /odm failed, skipping: No such file or directory
No partitions to remount
remount failed

C:\Users\Administrator

1. 关键log分析以及检索

Device size does not match (got 6442450944, expected 12884901888)
Block device super size mismatch (expected12884901888, got 6442450944)

这里说有个值不匹配,实际上获得的是6442450944,但是它期望或者的值是: 12884901888。 据此分析是软件某个地方对“分区”、“某个空间大小”的设置有问题,人家都说了只有6442450944这么大,然后你非要设置多了,当然报错了。

于是在整个代码环境中检索: 12884901888

grep -nr  "12884901888"   ./

在这里插入图片描述

问了下大佬,这个其实是分区的设置,实际有效的位置在:

./device/qcom/"对应lunch项"/BoardConfig.mk:69:        BOARD_SUPER_PARTITION_SIZE := 12884901888

对应lunch项是客制化的,找到之后打开这个文件:

在这里插入图片描述

这个两个位置都很重要,BOARD_SUPER_PARTITION_SIZE := 12884901888是报错的地方,我们设置的太大了,BOARD_QTI_DYNAMIC_PARTITIONS_SIZE 这个值需要符合高通的修改,这个有固定的计算方法。

2. 修改

BOARD_SUPER_PARTITION_SIZE := 12884901888

这个要修改为:6442450944,没啥说的,但是我们要搞清除这个是哪来的。下载的版本里面有个partition_XXXX.xml,
这个是高通分区表,

<partition label="super" size_in_kb="6291456" type="xxxxx" bootable="false" 
readonly="false" filename="super.img" sparse="true"/>

回到上面的报错:

Block device super size mismatch

我们需要转换成字节: 6291456*1024=6442450944

在这里插入图片描述

光改这个还不行,上面说了BOARD_QTI_DYNAMIC_PARTITIONS_SIZE 也要改,不然会报错:

RuntimeError: sum of sizes of ['qti_dynamic_partitions'] is 
greater than BOARD_SUPER_PARTITION_SIZE / 2:
6438256640 == 6438256640 > 3221225472 == 3221225472

这个值的字节数计算如下: BOARD_SUPER_PARTITION_SIZE/2 - 4MB

所以: BOARD_QTI_DYNAMIC_PARTITIONS_SIZE = 6442450944/2- 4 x 1024 x 1024=3217031168。

在这里插入图片描述
在这里插入图片描述

这个改了之后,问题就解决了,remount不会出错了。

(此问题还有后续,影响OTA升级,年后有时间更新。)

#更新 2021.03.19
这个影响OTA升级问题,原因是分配的内存不够了,modem重新配置了分区表,然后重新计算了super分区的大小,
问题就解决了,还是用的上面的计算方法。
#更新 2021.03.19

adb remount overlayfs的说明 在android R项目中执行adb remount的时候,能看到"Using overlayfs for xxx"的打印,类似如下: #adb root restarting adbd as root #adb remount Disabling verity for /system Using overlayfs for /system Disabling verity for /system_ext Using overlayfs for /system_ext Disabling verity f 阅读详情

相关推荐

ADB工具链安装与常见报错解决方案

ADB(Android Debug Bridge)是Android开发中不可或缺的调试工具,采用C/S架构实现设备与开发机的通信。其核心组件包括运行在开发机上的adb client和adb server,以及设备端的adbd服务。版本兼容性问题常导致"adb server version doesn't match"等报错,正确处理需要保证三组件版本一致。环境变量配置、USB驱动安装等基础操作直接影响ADB的可用性,而厂商定制系统如MIUI、EMUI等还存在特殊权限要求。掌握ADB的架构原理和排错方法,能有

weixin_30522183的博客 322

Android 11 无法remount问题

问题描述: 在Android 11开发的时候,想快速调试把单独编译好的模块push 到 /system 目录下,结果发现remount failed C:>adb root restarting adbd as root C:>adb remount Skipping /system for remount Skipping /vendor for remount Skipping /product for remount No partitions to remount remount fa

csdnxialei的博客 1万+

澎湃OS 4 Beta调试适配:玄戒工具箱3.4解决ADB授权与LSPosed模块失效

ADB调试与SELinux策略是Android系统级调试的核心环节。在Android 16底层,SELinux对untrusted_app域的权限收紧导致跨进程文件读取受限,zygote上下文标签变更也会影响LSPosed等模块的注入路径。理解这些权限模型的变化,对搞机用户、自动化测试开发者和嵌入式调试人员都有实际价值。玄戒工具箱3.4针对澎湃OS 4 Beta的ADB授权链路、SELinux临时切换和LSPosed注入修复做了系统性适配,帮助用户在系统收紧的趋势下恢复调试能力。

weixin_34332905的博客 443

【工具使用-ADB】ADB remount报错“Skipping /system for remount Skipping /vendor for remount Skipping /product“

本文主要介绍adb使用中的一些问题供参考。

专注音频,高效工作,快乐生活! 4736

安卓设备ADB调试全攻略:从环境搭建到词典笔深度管理

ADB(Android Debug Bridge)是连接计算机与安卓设备进行深度调试和管理的核心工具。其原理是通过USB或网络建立通信桥梁,允许开发者和高级用户在命令行环境下执行系统级操作。这项技术的价值在于提供了对安卓设备底层文件系统、应用管理和系统状态的直接访问能力,是实现自动化测试、数据备份、系统定制和故障排查的关键。在应用场景上,ADB不仅用于手机和平板的开发调试,更广泛适用于各类基于安卓系统的封闭式智能硬件,如智能电视、学习机和词典笔等设备的管理与个性化定制。本文聚焦于通过ADB连接并管理词典笔这

weixin_34127717的博客 320

Android开发必备:ADB无线与USB连接抓取Logcat日志全攻略

在Android应用开发与测试过程中,日志分析是定位问题、优化性能的核心手段。Android Debug Bridge(ADB)作为官方调试工具,通过建立设备与电脑的通信桥梁,使开发者能够远程查看和管理设备状态。其核心价值在于提供了实时、底层的系统与应用运行洞察,是进行崩溃分析、性能监控和自动化测试的基础。无论是开发环境搭建、日常调试,还是线上问题紧急排查,熟练掌握ADB的日志抓取能力都至关重要。本文聚焦于ADB查看应用日志的两种核心方式——USB连接与无线连接,深入讲解其配置原理、操作命令及实战技巧,并针

weixin_30564785的博客 447

RK3588开发板USB调试与ADB连接排查指南:从识别到文件传输

在嵌入式开发中,USB调试与ADB工具链是连接主机与开发板的核心桥梁,也是许多开发者入门时的第一道门槛。RK3588作为高性能异构SoC,其USB控制器、OTG接口与系统角色切换机制决定了调试链路的复杂性,常见的设备枚举失败、权限异常、传输中断等问题往往源于对底层原理的忽视。掌握ADB设备状态识别、驱动安装、udev规则配置以及不同系统下的文件传输策略,是提升开发效率的关键。本文从USB调试的基本概念出发,结合RK3588开发板的实际操作,系统梳理了从接口确认、供电排查、环境搭建到文件高效传输的完整流程,并

weixin_34379433的博客 808

ADB工程化落地手册:从驱动配置到系统级调试

ADB(Android Debug Bridge)是安卓平台底层通信的核心协议桥接工具,基于USB/网络与adbd守护进程交互,实现跨权限层级的设备控制。其技术原理源于Linux用户空间与内核服务的IPC机制,并依赖USB设备描述符识别、SELinux策略绕过、AVB验证兼容等系统级能力。作为Android开发、自动化测试和系统调优的关键基础设施,ADB支撑着应用调试、日志抓取、性能监控、批量设备管理等高价值场景。本文聚焦真实工程环境中的ADB部署痛点——包括Windows驱动识别失败、macOS Gate

weixin_34186128的博客 479

ADB设备连接全链路排查:从List of devices attached到无线调试

ADB设备连接是安卓开发与系统调试的基础能力,其核心在于理解USB协议栈、驱动加载、Android系统服务及安全授权四层协同机制。'List of devices attached'并非简单状态提示,而是物理层枚举成功、内核驱动绑定、adbd服务运行与RSA密钥授权共同达成的聚合信号。掌握该输出背后的分层原理,可精准定位线缆阻抗异常、Windows INF注册失败、ro.adb.secure硬编码限制或Android 12+授权超时等典型问题。结合adb wireless、dumpsys诊断、logcat过

weixin_34160277的博客 433

MGV3200刷安卓9教程:免拆机U盘+ADB精准刷机方案

安卓电视盒子刷机是嵌入式系统升级的基础技术,涉及Bootloader解锁、Recovery定制、ADB深度调试与eMMC分区操作等核心原理。掌握该技术可显著提升老旧设备性能,释放硬件潜力,并支撑远程教学、媒体中心搭建、短视频剪辑等实际场景。尤其针对广电/运营商定制的封闭终端(如MGV3200),传统线刷风险高、兼容性差,而基于U盘启动+ADB动态干预的方案,兼具安全性、可审计性与高成功率。本文聚焦S905L3A平台盒子的安卓9轻量ROM适配实践,详解如何绕过厂商签名验证、修复USB调试权限、稳定执行分区写入

weixin_34406086的博客 371

fstab && fsatboot flash fail EnableBatteryVoltageCheck

==================================调试=========================================fastboot flash 不能使用。

u012497906的专栏 693

华强北智能手表256G真相:ADB深度测绘eMMC存储拓扑

eMMC是嵌入式设备中常见的嵌入式多媒体卡存储技术,其物理容量、分区结构与系统挂载逻辑共同决定真实可用空间。本文从eMMC基本原理切入,解析主控芯片支持能力与固件驱动实现之间的关键断层,揭示‘标称容量’与‘可访问存储’的本质差异。技术价值在于通过ADB命令链(如cat /sys/block/mmcblk0/device/size、fdisk -l、mount、df)完成端到端的存储拓扑测绘,建立对硬件资源的真实掌控。典型应用场景包括华强北智能手表、白牌Android穿戴设备等资源受限终端的性能优化与ROM定

weixin_34090562的博客 372

adb,支持adb disable-verity命令,解锁system分区

重新编译的支持adb disable-verity命令的adb,通常用于解锁system分区

DiLink车机ADB调试深度解析:不止Root的系统定制路径

ADB(Android Debug Bridge)是嵌入式Android系统最基础的调试协议,其原理源于USB CDC ACM通信与守护进程adbd的协同机制,技术价值在于提供可控、可审计、可回滚的底层探针通道。在车载电子领域,ADB不仅是开发工具,更是连接应用层与HAL/Bootloader的关键桥梁,广泛应用于车机系统定制、诊断分析与OTA兼容性调优。DiLink作为深度定制的车载Android系统,其ADB通道叠加了签名验证、设备白名单与SELinux策略等多重约束,使得常规ADB调试失效。本文聚焦D

weixin_34081595的博客 305

PDN设计

作者:AirCity 2020.2.6 Aircity007@sina.com 本文所有权归作者Aircity所有 PDN设计的目的是降低电源纹波水平,减小电压跌落。我们通常要求LDO的文波水平是30mV,DCDC是50mV,超过这个就需要PDN设计。 PDN设计的方法是用不同的容值,合适的总电容量,降低电源平面与地平面之间的交流阻抗,确定容值总量和电容大小的过程,就是PDN设计过程。 为什么需...

AirCity123的博客 4147

ESP32实战:破解校园网WPA2-Enterprise认证的完整指南

本文详细介绍了如何使用ESP32开发板破解校园网WPA2-Enterprise认证的完整指南。通过硬件准备、环境搭建、核心代码实现及常见问题排查,帮助开发者解决企业级WiFi连接难题,特别适用于校园网环境下的物联网设备开发。

weixin_29194817的博客 454

ADB实战速查手册:Windows/Linux/PowerShell全环境调试指南

ADB(Android Debug Bridge)是Android系统底层调试与设备交互的核心工具,其原理基于客户端-服务端架构,通过USB或TCP/IP协议与设备adbd守护进程通信。掌握ADB不仅关乎命令语法,更涉及驱动加载、权限配置、日志过滤与跨平台兼容等工程实践难点。在真实开发与测试场景中,Windows PowerShell环境需解决驱动签名绕过与PATH持久化问题;Linux则依赖精准的udev规则覆盖华为、小米等国产厂商Vendor ID;而PowerShell深度集成能力可将ADB封装为原生

weixin_34356555的博客 333

科研效率革命:Zotero与Web of Science联动实现千篇文献一键获取

本文详细介绍了如何利用Zotero与Web of Science联动实现科研文献的高效管理,包括批量导入、智能下载和自动整理千篇文献的技巧。通过精准检索、RIS文件导出和Zotero插件设置,科研人员可以大幅提升文献获取和管理的效率,特别适合开题报告和综述写作等场景。

weixin_29219539的博客 253

为方便用 adb 命令调试安卓设备,用 python 的 tkinter 模块做了一个封装了 adb 的图形化界面小工具

摘要:该代码展示了一个基于Python tkinter开发的ADB GUI工具集,包含两个主要模块。第一个模块是ADB控制工具,提供亮灭屏、重启、截屏、录屏、显示参数调整等常用ADB命令的图形化操作界面。第二个模块是扩展工具集,包含查看屏幕参数、安装应用、批量设备管理等高级功能。代码实现了设备列表获取、命令执行、多设备管理等核心功能,通过子进程调用ADB命令并与GUI界面交互。工具支持亮屏时间设置、触摸轨迹显示、休眠唤醒测试等特色功能,适用于Android设备的测试和调试场景。

m0_73462935的博客 1万+

从零配置XDMA:手把手教你PCIe BAR与AXI总线的地址转换(基于Vivado2023)

本文基于Vivado2023,手把手教你配置XDMA IP核,深入解析PCIe BAR与AXI总线地址转换的核心原理。通过实战步骤,详细说明如何正确设置BAR参数(如32/64位、预取使能)及地址映射,确保主机能稳定访问FPGA侧寄存器与内存,是解决PCIe通信调试难题的关键指南。

2w3e4r5t6y的博客 1213

泛微E9统一待办接口说明

需要第三方表单,在提交自己的流程后,通过【window.location.href=‘oa地址/workflow/request/ViewRequestOS.jsp?需要第三方表单,在提交自己的流程后,通过【window.location.href=‘oa地址/workflow/workflow/WfRefreshList.jsp’】通过中转页面与第三方系统对接,按照第三系统的验证方式开发中转页面中的程序。C)第三方根据相同的数据加密,结果一致就认证成功,打开流程。优点:可以灵活的对接各个系统。

泛微二次开发后端知识总结 6396

RK3399 USB ADB识别失败根因与实战修复指南

USB设备识别是嵌入式开发的基础能力,其本质依赖USB协议栈的枚举流程——主机通过请求设备描述符(Descriptor)获取VID/PID、设备类(bDeviceClass)等关键信息,进而匹配驱动。当Android设备(如RK3399开发板)返回非法描述符(如bDeviceClass=0x00)或未启用ADB功能,Windows将静默跳过枚举,导致设备管理器完全不可见。此类问题不属驱动缺失,而是USB Device端配置失效,需从configfs gadget配置、VID/PID设定及Windows IN

weixin_34268753的博客 389

西门子200SMART PID温控实战:从配置到避坑(附加热棒控制案例)

本文详细介绍了西门子200SMART PLC在PID温控系统中的实战应用,涵盖硬件配置、PID参数整定及工程避坑技巧。通过加热棒控制案例,重点解析了信号处理、固态继电器选型、断电保持和无扰切换等关键问题,为工业自动化领域的温度控制提供可靠解决方案。

weixin_28727975的博客 356

华强北手表256G真相:ADB实测拆解虚拟存储伪装

安卓智能手表的‘超大存储’常被误解为硬件升级,实则涉及存储抽象层、内存文件系统(tmpfs)与loop设备映射等底层机制。其原理在于通过init.rc脚本动态挂载RAM盘或压缩镜像,绕过物理eMMC容量限制,以营销参数替代真实规格。这种设计虽提升应用兼容性幻觉,却导致JVM堆内存压缩、OOM频发及安装失败等典型工程问题。技术价值体现在对Android调试桥(ADB)权限机制的深度利用——直通内核挂载表与块设备信息,规避Framework层封装干扰。典型应用场景包括第三方ROM验证、低配设备存储优化及嵌入式安

weixin_33851177的博客 358

PCB铺铜技巧如何铺铜经验总结

铺铜是指在PCB电气层添加整块的铜皮;铺铜包括电源层铺铜,地层铺铜和信号走线层空闲区域铺铜;铺铜是PCB设计的一个重要的环节。

fydar的博客 1万+

AI Agent Harness实时监控大屏搭建实战

本文将以目前主流的AI Agent管控框架Harness为基础,结合React、ECharts、WebSocket技术,手把手带你搭建一套完整的实时监控大屏,覆盖全局概览、状态分布、工具调用统计、异常告警、实时日志等核心功能,不需要复杂的底层开发,复制代码就能快速跑通。本文我们从需求出发,先梳理了AI Agent的核心监控指标,然后搭建了监控大屏的静态布局,逐个实现了各个图表,对接了Harness的实时数据源,最后加了交互和告警功能,完整走了一遍监控大屏从设计到落地的全流程。

大数据洞察的博客 174
上一篇: [Linux Audio Driver] 移植外部CODEC常见编译报错解决(持续更新)
下一篇: [Linux Audio Driver] 高通音频相关汇总(持续更新)
1byte ≠ 8bit
博客等级 码龄8年 7242粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值