赞
踩
目录
使用fastboot刷写分区时报错:'partition not found'或'Could not open partition',如何处理?
使用fastboot刷写分区时报错:'write img fail',如何处理?
使用fastboot刷写分区时报错:'Not enough space to resize partition',如何处理?
使用fastboot刷写分区时报错:'Failed to write partition table'。
Fastboot,英语翻译意思是快速启动。在安卓手机中fastboot是一种比recovery更底层(这个底层是更加接近硬件层的意思)的刷机模式(俗称引导模式)。就是使用USB 数据线连接手机的一种刷机模式。相对于某些系统卡刷来说,线刷更可靠,安全。
recovery是一种卡刷,就是将刷机包放在sd卡上,然后在recovery中刷机的模式。
关机状态下按返回+开机;主流Android手机进入Fastboot的方式为【音量-】+【电源键】.
开机状态下,使用adb 输入:adb reboot bootloader 进入fastboot 模式
fastboot [ <选项> ] <命令>
[]括起来表示这个是可选的.
<>括起来表示这个是必须的.
可用命令:
update <文件名> 从官方update.zip升级系统.该update.zip必须是官方的
flashall 'flash boot' +'flash system'
flash <分区名> [ <文件名> ] 将文件写入分区.文件必须正确的格式.分区名有但不限于system,recovery,boot,splash1,hboot,radio,userdata,cache
erase <分区名> 清空一个分区.
getvar <参数名> 显示一个启动参数
boot <内核文件> [ <ramdisk文件> ] 将电脑上的内核下载到手机并用该内核启动系统.
flash:raw boot <内核文件> [ <ramdisk文件> ] 创建boot.img并下载到手机启动系统.
devices 列出所有与电脑连接的设备.
reboot 正常启动系统
reboot-bootloader 启动系统到hboot
-w 清空用户数据分区和缓存分区.相当于recovery中的"wipe data/factoryreset"
-s <串口号> 指定要操作的设备的串口号
-p <产品名> 指定要操作的设备的产品名.比如hero,bravo,dream...
-c <命令行> 用命令行替换系统的启动命令行.
system:系统分区.我们刷机器一般就是刷的这个分区.
userdata:数据分区.
cache:缓存分区
recovery:Recovery分区.
boot:存放内核和ramdisk的分区.
modem:这个是modem通讯相关的分区.
sbl1:这个是第二启动相关的分区.
rpm:这个是电源/资源管理相关的分区.
tz:这个是安全相关的分区.
不同型号的手机进入fastboot的方式都不尽相同,最好的方法是在百度上搜索自己手机进入fastboot的方法,下面介绍一种多数手机都支持的方式。
如何进入fastboot
模式A:
1.手机开机状态,确定adb可以打开。
2.adb reboot bootloader
模式B:
1 将手机关机
2 同时按住返回键和电源键开机
3 当看到 界面上有fastboot选项时,按电源键点击进入fastboot模式。
fastboot工具(安卓工具箱中有提供)
自己手机能用的boot.img、recovery.img文件。
一、手机进入fastboot模式并用数据线连接电脑,安装好相关驱动程序。
二、解压下载好的fastboot工具,如解压到D:/fastboot/。
三、将准备好的boot.img、recovery.img文件文件也放到D:/fastboot/中。
四、打开命令行工具cmd,执行如下命令进入到fastboot所在目录中
d: 回车
cd fastboot 回车
fastboot devices 回车
如果它列出了你的手机,如DUT*******,说明手机连接好了
执行以下命令刷入boot与recovery:
fastboot flash recovery recovery.img 回车
等待OKAY (这里是刷新recovery)
fastboot flash boot boot.img 回车
等待OKAY (这里是刷新boot)
问题分析:fastboot模式下执行“getvar”命令获取partition-size、is-logical等信息时报错,是因为分区名后缀问题,不加后缀_a无法识别到分区。
解决方法:Android11之前,分区名后无需加后缀;Android11及以后,分区名后需要加后缀。
问题分析:
一般是执行flash命令时发生的错误,原因是fastboot无法识别到分区。常见的2种情况如下:
1. Android 11及之后的版本上,在bootloader模式下刷写物理分区时,没加后缀_a,不加后缀fastboot认为没有该分区;
2. 在bootloader模式下刷写了逻辑分区,bootloader模式下fastboot是无法访问到用户空间的逻辑分区的,因此fastboot无法识别到该分区。
解决方法:
针对情况1,加上后缀_a;
针对情况2,逻辑分区在fastbootd模式下刷写,非bootloader模式。
问题分析:flash逻辑分区时,由于镜像文件太大,super空间不足,导致刷入失败,从而报空间不足的错。
解决方法:不影响正常开机及其其他功能的情况下,可删除逻辑分区以释放空间。比如,GSI版本上就可以删除system_ext和product分区(因为GSI版本上不挂载这两个分区)。删除命令如下:
$ fastboot delete-logical-partition system_ext_a(product_a)。
问题分析:在执行delete、create或resize动态分区等命令时报的错,因为在执行这些操作时会先进行一些基本的分区表的检查,比如槽位数(slot_number)、super分区的size以及安全上下文等,如有不匹配,则出现上述报错。
解决方法:
1. 若是super分区size不匹配,即BOARD_SUPER_PARTITION的值(单位:B)与{board}.xml中配置的super分区size(单位:MB)不一致导致的错误,则:修改其中一个的值,使其与另一个相同。BOARD_SUPER_PARTITION_SIZE的值一般在/device/sprd/<soc>/<board>/module/partition/md.mk中定义。
2. 若是 super分区安全上下文错误,即非“super_block_device”。则:修改super的安全上下文标签。
具体地,执行adb shell->cd dev/block/by-name->ls -l,找到super对应的物理分区,如mmcblk0p48;再执行命令“ls -lZ /dev/block/mmcblk0p48”,看到mmcblk0p48安全上下文。若不是super_block_device,则修改。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。