安卓备份分区----手动查询安卓系统分区信息 导出系统分区的一些基本操作

news2025/1/15 19:50:20

在玩机搞机过程中。有时候需要手动查看有些分区信息,或者备份分区的操作。那么今天以小米8为例解析下其中的操作步骤

机型:小米8

adb版本:https://developer.android.com/studio/releases/platform-tools

机型芯片:高通骁龙845

手机系统版本:安卓10

机型界面:twrp

机型字库:UFS

查看分区

1---手机进入twrp模式里安装好联机驱动。然后打开adb输入指令

adb shell ls -al /dev/block/bootdevice/by-name/界面如下

C:\Users\Administrator\Desktop\adb>adb shell ls -al /dev/block/bootdevice/by-name/
drwxr-xr-x    2 root     root          1740 Aug 10  1970 .
drwxr-xr-x    3 root     root          1880 Aug 10  1970 ..
lrwxrwxrwx    1 root     root            15 Aug 10  1970 ImageFv -> /dev/block/sdf4
lrwxrwxrwx    1 root     root            16 Aug 10  1970 abl_a -> /dev/block/sde32
lrwxrwxrwx    1 root     root            16 Aug 10  1970 abl_b -> /dev/block/sde33
lrwxrwxrwx    1 root     root            16 Aug 10  1970 aop_a -> /dev/block/sde14
lrwxrwxrwx    1 root     root            16 Aug 10  1970 aop_b -> /dev/block/sde15
lrwxrwxrwx    1 root     root            15 Aug 10  1970 apdp -> /dev/block/sde6
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk01 -> /dev/block/sda3
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk02 -> /dev/block/sda4
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk03 -> /dev/block/sda5
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk04 -> /dev/block/sda8
lrwxrwxrwx    1 root     root            16 Aug 10  1970 bk05 -> /dev/block/sda13
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk31 -> /dev/block/sdd1
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk32 -> /dev/block/sdd3
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk33 -> /dev/block/sdd5
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk41 -> /dev/block/sde3
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk42 -> /dev/block/sde9
lrwxrwxrwx    1 root     root            16 Aug 10  1970 bk43 -> /dev/block/sde16
lrwxrwxrwx    1 root     root            16 Aug 10  1970 bk44 -> /dev/block/sde17
lrwxrwxrwx    1 root     root            16 Aug 10  1970 bk45 -> /dev/block/sde25
lrwxrwxrwx    1 root     root            16 Aug 10  1970 bk46 -> /dev/block/sde29
lrwxrwxrwx    1 root     root            16 Aug 10  1970 bk47 -> /dev/block/sde38
lrwxrwxrwx    1 root     root            16 Aug 10  1970 bk48 -> /dev/block/sde40
lrwxrwxrwx    1 root     root            16 Aug 10  1970 bk49 -> /dev/block/sde41
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk51 -> /dev/block/sdf2
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk52 -> /dev/block/sdf3
lrwxrwxrwx    1 root     root            15 Aug 10  1970 bk53 -> /dev/block/sdf5
lrwxrwxrwx    1 root     root            16 Aug 10  1970 bluetooth -> /dev/block/sde24
lrwxrwxrwx    1 root     root            16 Aug 10  1970 boot -> /dev/block/sde45
lrwxrwxrwx    1 root     root            16 Aug 10  1970 cache -> /dev/block/sda20
lrwxrwxrwx    1 root     root            15 Aug 10  1970 cdt -> /dev/block/sdd2
lrwxrwxrwx    1 root     root            16 Aug 10  1970 cmnlib64_a -> /dev/block/sde20
lrwxrwxrwx    1 root     root            16 Aug 10  1970 cmnlib64_b -> /dev/block/sde21
lrwxrwxrwx    1 root     root            16 Aug 10  1970 cmnlib_a -> /dev/block/sde18
lrwxrwxrwx    1 root     root            16 Aug 10  1970 cmnlib_b -> /dev/block/sde19
lrwxrwxrwx    1 root     root            16 Aug 10  1970 cust -> /dev/block/sda18
lrwxrwxrwx    1 root     root            15 Aug 10  1970 ddr -> /dev/block/sdd4
lrwxrwxrwx    1 root     root            16 Aug 10  1970 devcfg_a -> /dev/block/sde12
lrwxrwxrwx    1 root     root            16 Aug 10  1970 devcfg_b -> /dev/block/sde13
lrwxrwxrwx    1 root     root            16 Aug 10  1970 devinfo -> /dev/block/sda12
lrwxrwxrwx    1 root     root            16 Aug 10  1970 dip -> /dev/block/sde28
lrwxrwxrwx    1 root     root            16 Aug 10  1970 dsp -> /dev/block/sde44
lrwxrwxrwx    1 root     root            16 Aug 10  1970 dtbo -> /dev/block/sde37
lrwxrwxrwx    1 root     root            15 Aug 10  1970 frp -> /dev/block/sda7
lrwxrwxrwx    1 root     root            15 Aug 10  1970 fsc -> /dev/block/sdf1
lrwxrwxrwx    1 root     root            16 Aug 10  1970 fsg -> /dev/block/sde36
lrwxrwxrwx    1 root     root            16 Aug 10  1970 hyp_a -> /dev/block/sde26
lrwxrwxrwx    1 root     root            16 Aug 10  1970 hyp_b -> /dev/block/sde27
lrwxrwxrwx    1 root     root            16 Aug 10  1970 keymaster_a -> /dev/block/sde22
lrwxrwxrwx    1 root     root            16 Aug 10  1970 keymaster_b -> /dev/block/sde23
lrwxrwxrwx    1 root     root            15 Aug 10  1970 keystore -> /dev/block/sda6
lrwxrwxrwx    1 root     root            15 Aug 10  1970 limits -> /dev/block/sde2
lrwxrwxrwx    1 root     root            16 Aug 10  1970 logdump -> /dev/block/sda16
lrwxrwxrwx    1 root     root            16 Aug 10  1970 logfs -> /dev/block/sda10
lrwxrwxrwx    1 root     root            16 Aug 10  1970 logo -> /dev/block/sde43
lrwxrwxrwx    1 root     root            16 Aug 10  1970 minidump -> /dev/block/sda17
lrwxrwxrwx    1 root     root            15 Aug 10  1970 misc -> /dev/block/sda9
lrwxrwxrwx    1 root     root            16 Aug 10  1970 modem -> /dev/block/sde46
lrwxrwxrwx    1 root     root            15 Aug 10  1970 modemst1 -> /dev/block/sdf6
lrwxrwxrwx    1 root     root            15 Aug 10  1970 modemst2 -> /dev/block/sdf7
lrwxrwxrwx    1 root     root            15 Aug 10  1970 msadp -> /dev/block/sde7
lrwxrwxrwx    1 root     root            16 Aug 10  1970 oops -> /dev/block/sda11
lrwxrwxrwx    1 root     root            16 Aug 10  1970 persist -> /dev/block/sda14
lrwxrwxrwx    1 root     root            16 Aug 10  1970 persistbak -> /dev/block/sda15
lrwxrwxrwx    1 root     root            15 Aug 10  1970 qupfw_a -> /dev/block/sde4
lrwxrwxrwx    1 root     root            15 Aug 10  1970 qupfw_b -> /dev/block/sde5
lrwxrwxrwx    1 root     root            16 Aug 10  1970 recovery -> /dev/block/sda19
lrwxrwxrwx    1 root     root            15 Aug 10  1970 sec -> /dev/block/sde1
lrwxrwxrwx    1 root     root            16 Aug 10  1970 splash -> /dev/block/sde42
lrwxrwxrwx    1 root     root            16 Aug 10  1970 spunvm -> /dev/block/sde39
lrwxrwxrwx    1 root     root            15 Aug 10  1970 ssd -> /dev/block/sda2
lrwxrwxrwx    1 root     root            16 Aug 10  1970 sti -> /dev/block/sde30
lrwxrwxrwx    1 root     root            16 Aug 10  1970 storsec_a -> /dev/block/sde10
lrwxrwxrwx    1 root     root            16 Aug 10  1970 storsec_b -> /dev/block/sde11
lrwxrwxrwx    1 root     root            15 Aug 10  1970 switch -> /dev/block/sda1
lrwxrwxrwx    1 root     root            16 Aug 10  1970 system -> /dev/block/sda21
lrwxrwxrwx    1 root     root            16 Aug 10  1970 toolsfv -> /dev/block/sde31
lrwxrwxrwx    1 root     root            16 Aug 10  1970 tz_a -> /dev/block/sde34
lrwxrwxrwx    1 root     root            16 Aug 10  1970 tz_b -> /dev/block/sde35
lrwxrwxrwx    1 root     root            16 Aug 10  1970 userdata -> /dev/block/sda22
lrwxrwxrwx    1 root     root            15 Aug 10  1970 vbmeta -> /dev/block/sde8
lrwxrwxrwx    1 root     root            16 Aug 10  1970 vendor -> /dev/block/sde47
lrwxrwxrwx    1 root     root            15 Aug 10  1970 xbl_a -> /dev/block/sdb2
lrwxrwxrwx    1 root     root            15 Aug 10  1970 xbl_b -> /dev/block/sdc2
lrwxrwxrwx    1 root     root            15 Aug 10  1970 xbl_config_a -> /dev/block/sdb1
lrwxrwxrwx    1 root     root            15 Aug 10  1970 xbl_config_b -> /dev/block/sdc1

通过这个指令可以看到手机所有分区对应的分区浩。例如

lrwxrwxrwx    1 root     root            16 Aug 10  1970 boot -> /dev/block/sde45

boot分区就是在sde45序号里

备份分区

那么知道了分区对应的分区号。如何提取这个boot分区呢

指令;dd if=/dev/block/sde45 of=/sdcard/boot.img

然后打开手机存储就有这个分区

按此方法。可以提取出当前机型所有的分区。在这个界面。例如我们怎么简单方便备份手机最重要的基带分区呢。在usf字库芯片的机型里,基带辅助分区基本全部都在sdf分区里。查看分区xml就可以很清楚的看到

<?xml version="1.0" ?>
<data>
  <!--NOTE: This is an ** Autogenerated file **-->
  <!--NOTE: Sector size is 4096bytes-->
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="fsc" num_partition_sectors="64" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="256.0" sparse="false" start_byte_hex="0x6000" start_sector="6"/>
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="bk51" num_partition_sectors="186" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="744.0" sparse="false" start_byte_hex="0x46000" start_sector="70"/>
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="bk52" num_partition_sectors="256" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="1024.0" sparse="false" start_byte_hex="0x100000" start_sector="256"/>
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="imagefv.elf" label="ImageFv" num_partition_sectors="512" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="2048.0" sparse="false" start_byte_hex="0x200000" start_sector="512"/>
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="bk53" num_partition_sectors="1024" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="4096.0" sparse="false" start_byte_hex="0x400000" start_sector="1024"/>
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modemst1" num_partition_sectors="2048" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="8192.0" sparse="false" start_byte_hex="0x800000" start_sector="2048"/>
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="modemst2" num_partition_sectors="2048" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="8192.0" sparse="false" start_byte_hex="0x1000000" start_sector="4096"/>
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="" label="last_parti" num_partition_sectors="0" partofsingleimage="false" physical_partition_number="5" readbackverify="false" size_in_KB="0" sparse="false" start_byte_hex="0x1800000" start_sector="6144"/>
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_main5.bin" label="PrimaryGPT" num_partition_sectors="6" partofsingleimage="true" physical_partition_number="5" readbackverify="false" size_in_KB="24.0" sparse="false" start_byte_hex="0x0" start_sector="0"/>
  <program SECTOR_SIZE_IN_BYTES="4096" file_sector_offset="0" filename="gpt_backup5.bin" label="BackupGPT" num_partition_sectors="5" partofsingleimage="true" physical_partition_number="5" readbackverify="false" size_in_KB="20.0" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." start_sector="NUM_DISK_SECTORS-5."/>
</data>

如果单一的进行备份比较麻烦。我们可以把这个sdf分区全部备份下来。指令:

dd if=/dev/block/sdf of=/sdcard/sdf.bin

按此方法你也可以备份所有的总分区 sda sdb  sdc sdd sde ,

恢复分区

怎么备份的就可以怎么恢复。无非把指令调换了下。例如刚才备份的boot分区和sdf分区

dd if=/sdcard/boot.img of=/dev/block/sde45

dd if=/sdcard/sdf.bin of=/dev/block/sdf

 dd if与of指令含义

dd命令是一个特殊的命令,它使用底层比特复制的方式从源头将数据复制并转换至一个指定的目的地。在Android破解中,在数据和结果必须确切时,dd命令通常被用于将一个映像文件写入内存或文件,从而使其可以在诸如操作系统引导文件等重要过程中被找到和使用。

dd命令使用如下语法:

dd if=<源文件> of=<目标文件>

if(输入文件)参数告诉命令在哪里找源文件。

of(输出文件)告诉命令将目标文件写到哪里。

在使用这两个参数时应特别小心:将if和of这两个参数顺序颠倒其结果将会是毁灭性的。

更多提取方法
例如使用cat指令也可以提取

cat /dev/block/sde45 > /sdcard/boot2.img

可能遇到的问题

这边提到一个问题,有时候提取后当时查看提取到的分区大小为0.不要着急。这个是没有同步的原因。重新联机下twrp即可显示实际分区大小。有时候需要重启twrp。

查看分区大小

通过cat /proc/partitions可以查看分区大小。例如我们刚才备份的boot分区

当然以上描述的步骤只是纯手动进行备份分区。还可以借助第三方成品工具进行备份和回复。我前面很多博文有过解析。例如在开机界面使用工具箱备份或者9008端口和mtk的BROM模式里进行备份分区。

感兴趣的可以参考:玩机搞机---安卓机型mtk和高通芯片查看分区 导出分区 备份分区的一些工具分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1036694.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于微信小程序的校园商铺系统,附源码、数据库

文章目录 第一章 简介第二章 技术栈第三章&#xff1a;总体设计第四章系统详细设计4.1 前台功能模块4.2后台功能模块4.2.1管理员功能模块 五 源码咨询 第一章 简介 今天&#xff0c;为大家带来的事基于微信小程序的校园商铺系统。本系统的主要意义在于&#xff0c;全力以赴为用…

Redis双写一致性、持久化机制、分布式锁

一.双写一致性: 含义:当数据库中的数据被修改了以后&#xff0c;我们也需要同时修改缓存&#xff0c;使缓存和数据库的数据保持一致 &#xff08;1&#xff09;读操作:当请求发来的时候&#xff0c;先去看redis里面是否有对应的数据&#xff0c;如果有直接返回&#xff0c;如果…

轻量级的日志采集组件 Filebeat 讲解与实战操作

文章目录 一、概述二、Kafka 安装三、Filebeat 安装1&#xff09;下载 Filebeat2&#xff09;Filebeat 配置参数讲解3&#xff09;filebeat.prospectors 推送kafka完整配置1、filebeat.prospectors2、processors3、output.kafka 4&#xff09;filebeat.inputs 与 filebeat.pros…

【STL】vector常见用法及模拟实现(附源码)

目录 前言1. vector介绍及使用1.1vector的介绍1.2 vector的使用1.2.1 构造函数 1.2.2 vector对象遍历1.2.3 reserve和resize1.2.4 insert和erase 2. vector模拟实现2.1 vector迭代器失效问题2.2 模拟实现reserve函数浅拷贝问题2.3模拟实现源码2.3.1 vector.h2.3.2 test.cpp 前言…

org.postgresql.util.PSQLException: Bad value for type long

项目用 springbootmybatis mybatisplus&#xff0c; 数据库是&#xff1a;postgresql 。 执行查询时候返回错误。 org.springframework.dao.DataIntegrityViolationException: Error attempting to get column city_id from result set. Cause: org.postgresql.util.PSQLExce…

如何让ChatGPT为留学生所用?

“我们这一届学Data Analyics和Data Science的没一个找到工作的。”朋友饭桌上的闲话让研究生才算踏入DA圈子的我瑟瑟发抖。 还没开始正式求职的我&#xff0c;似乎已经被宣告失业了。而这一切都要“归功”于以ChatGPT为代表的大语言模型&#xff08;LLMs&#xff09;。 问世不…

接口测试练习步骤

在接触接口测试过程中补了很多课&#xff0c; 终于有点领悟接口测试的根本&#xff1b; 偶是个实用派&#xff5e;&#xff0c;那么现实中没有用的东西&#xff0c;基本上我都不会有很大的概念&#xff1b; 下面给的是接口测试的统一大步骤&#xff0c;其实就是让我们对接口…

第9章 【MySQL】InnoDB的表空间

表空间 是一个抽象的概念&#xff0c;对于系统表空间来说&#xff0c;对应着文件系统中一个或多个实际文件&#xff1b;对于每个独立表空间来说&#xff0c;对应着文件系统中一个名为 表名.ibd 的实际文件。大家可以把表空间想象成被切分为许许多多个 页 的池子&#xff0c;当我…

机器学习之正则化与验证提高模型泛化

文章目录 正则化&#xff08;Regularization&#xff09;&#xff1a;验证&#xff08;Validation&#xff09;&#xff1a; 正则化和验证是机器学习中重要的概念&#xff0c;它们帮助提高模型的性能和泛化能力。让我详细介绍一下这两个概念&#xff1a; 正则化&#xff08;Re…

【Git】轻松学会 Git:深入理解 Git 的基本操作

文章目录 前言一、创建 Git 本地仓库1.1 什么是仓库1.2 创建本地仓库1.3 .git 目录结构 二、配置 Git三、认识 Git 的工作区、暂存区和版本库3.1 什么是 Git 的工作区、暂存区和版本库3.2 工作区、暂存区和版本库之间的关系 四、添加文件4.1 添加文件到暂存区和版本库中的命令4…

php文件上传功能(文件上传)

实现文件上传是Web开发中常用的功能之一&#xff0c;而PHP也是支持文件上传的。那么&#xff0c;下面我们就来介绍一下常用的PHP实现文件上传的方法。 使用HTML表单实现文件上传 HTML表单是Web开发中最基本的元素之一&#xff0c;它可以接收用户输入的数据&#xff0c;并通过…

第75步 时间序列建模实战:多步滚动预测 vol-3(以决策树回归为例)

基于WIN10的64位系统演示 一、写在前面 上两期&#xff0c;我们讲了多步滚动预测的第两种策略&#xff1a; 对于重复的预测值&#xff0c;取平均处理。例如&#xff0c;&#xff08;1,2,3&#xff09;预测出3.9和4.5&#xff0c;&#xff08;2,3,4&#xff09;预测出5.2和6.…

【深度学习】ONNX模型快速部署【入门】

【深度学习】ONNX模型快速部署【入门】 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】ONNX模型快速部署【入门】前言搭建打包环境打包可执行文件总结 前言 之前的内容已经尽可能简单、详细的介绍CPU【Pytorch2ONNX】和GPU【Pyto…

MySQL常见join关联查询分析

1、join关联查询七大类型结构图 2、建表语句 CREATE TABLE t_dept (id INT(11) NOT NULL AUTO_INCREMENT,deptName VARCHAR(30) DEFAULT NULL,address VARCHAR(40) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEINNODB AUTO_INCREMENT1 DEFAULT CHARSETutf8;CREATE TABLE t_emp (id…

均匀辐照度和局部遮光条件下光伏系统的新型样条-MPPT技术(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Spring Boot】Spring Boot源码解读与原理剖析

这里写目录标题 前言精进Spring Boot首选读物“小册”变“大书”&#xff0c;彻底弄懂Spring Boot全方位配套资源&#xff0c;学不会来找我&#xff01;技术新赛道&#xff0c;2023领先抢跑 前言 承载着作者的厚望&#xff0c;掘金爆火小册同名读物《Spring Boot源码解读与原理…

【100天精通Python】Day66:Python可视化_Matplotlib 3D绘图,绘制3D曲面图、3D填充图,3D极坐标图,示例+代码

目录 1 绘制曲面图 2 绘制3D填充图 3 绘制极坐标图 1 绘制曲面图 当绘制3D曲面图时&#xff0c;mpl_toolkits.mplot3d 模块中的 Axes3D 对象提供了多种方法来呈现不同类型的曲面图。以下是一些常见的3D曲面图类型以及示例&#xff1a; 曲面图&#xff1a;使用 plot_surface …

Spring Boot的新篇章:探索2.0版的创新功能

文章目录 引言1. Spring Boot 2.0的响应式编程2. 自动配置的改进3. Spring Boot 2.0的嵌入式Web服务器4. Spring Boot 2.0的Actuator端点5. Spring Boot 2.0的Spring Data改进6. Spring Boot 2.0的安全性增强7. Spring Boot 2.0的监控和追踪8. Spring Boot 2.0的测试改进结论 &…

java面试题-设计模式基础

面试专题-设计模式 前言 在平时的开发中&#xff0c;涉及到设计模式的有两块内容&#xff0c;第一个是我们平时使用的框架&#xff08;比如spring、mybatis等&#xff09;&#xff0c;第二个是我们自己开发业务使用的设计模式。 面试官一般比较关心的是你在开发过程中&#…

华为OD机考算法题:分积木

目录 题目部分 解读与分析 代码实现 题目部分 题目分积木难度难题目说明Solo和koko是两兄弟&#xff0c;妈妈给了他们一大堆积木&#xff0c;每块积木上都有自己的重量。现在他们想要将这些积木分成两堆。哥哥Solo负责分配&#xff0c;弟弟koko要求两个人获得的积木总重量“…