zoukankan      html  css  js  c++  java
  • 如何查看Android设备上的分区信息

    Android设备上,一般都会存在一块eMMC存储芯片来存放系统和用户数据,甚至部分的引导程序。

    一般设备出厂时,各个厂商都会将这块存储芯片分成很多的分区,每个分区内存放不同的内容。具体分区的布局每个厂商或者芯片供应商都会不一样。

    可以通过下面的命令来查看目前系统中到底有多少分区:

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. cat /proc/partitions  

    这条命令会显示系统中的所有分区,以及每个分区的大小是多少个block,还有主设备号和次设备号等信息。在Google Nexus 6设备上,命令的显示结果如下:

    major下的数字代表这个分区所在设备的主设备号,同样minor下的数字代表次设备号。而#blocks下的数字代表这个分区占用了多少块。name下的字符串代表了这个分区的名字。

    啰嗦一句,可以通过下面的命令查看当前系统中所有设备的主设备号:

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. cat /proc/devices  

    在Google Nexus 6设备上,命令的显示结果如下:

    可以看到,系统中有这么多个块设备,179对应的就是mmc,259对应的是blkext。

    如果想知道每个挂载到文件系统上的分区大小和使用情况的信息,可以像普通Linux一样使用df命令:

    不过df命令只显示了在文件系统上的挂载点,并没有显示对应的块设备是哪个,这点可以通过使用mount命令来弥补:

    dfmount命令的结果相结合,可以得到更加完整的信息,比如对于/system来说,其块设备是/dev/block/platform/msm_sdcc.1/by-name/system,文件系统使用的是ext4,大小是1.9G,当前已使用了1.6G,等等。

    如果想看某些分区的别名信息,对于高通平台上来说,可以通过下面的命令:

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. ls -al /dev/block/platform/msm_sdcc.1/by-name  

    在Google Nexus 6设备上,命令的显示结果如下:

    这些信息可以帮助发现每个分区到底是用来干什么的,比如/dev/block/mmcblk0p41这个分区就是用来存放/system的。

    有了这些信息,就可以使用dd命令,将感兴趣的分区全部倒出来进行分析。比如,如果想将TrustZone相关的tz分区倒出到sdcard上,可以使用下面的命令:

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. dd if=/dev/block/platform/msm_sdcc.1/by-name of=/sdcard/tz.img<pre>  

  • 相关阅读:
    CentOS7和Ubuntu下安装Docker & Docker-Compose
    【译】ModSecurity
    【译】ModSecurity事务生命周期
    开源WAF工具ModSecurity
    RHEL/CentOS 安装最新版Nginx
    Linux流量监控工具iftop & nload
    Docker安全扫描工具之docker-bench-security
    wireshark抓包如何查看视频分辨率和码率
    【译】如何使用docker-compose安装anchore
    Docker安全扫描工具之DockerScan
  • 原文地址:https://www.cnblogs.com/liang123/p/6325182.html
Copyright © 2011-2022 走看看