如何获取Android设备的所有挂载点信息?

Noh*_*sib 5 android

如何以编程方式获取Android设备的所有挂载点信息?

Sam*_*ris 8

您可以通过检查查看系统已知的分区/proc/partitions.来自我的HTC Desire:

major minor  #blocks  name

  31        0        640 mtdblock0
  31        1       4608 mtdblock1
  31        2       3072 mtdblock2
  31        3     256000 mtdblock3
  31        4      40960 mtdblock4
  31        5     151168 mtdblock5
 179        0    3872256 mmcblk0
 179        1    2872070 mmcblk0p1
 179        2    1000185 mmcblk0p2
Run Code Online (Sandbox Code Playgroud)

这些mtdblock设备是手机的内部闪存.mmcblk0是手机的SD卡.

查看安装位置的最佳方法是检查/proc/self/mountinfo.这比/proc/mounts因为后者错过某些信息更好.再次,在我的HTC Desire上(我添加了列标题并通过输出输出以column -s获得良好的衡量标准):

ID  PARENT  BLOCK  ROOT              MOUNTPOINT                   OPTIONS                             -  TYPE     SOURCE                 SUPEROPTS
1   1       0:1    /                 /                            ro,relatime                         -  rootfs   rootfs                 ro
11  1       0:11   /                 /dev                         rw,relatime                         -  tmpfs    tmpfs                  rw,mode=755
12  11      0:9    /                 /dev/pts                     rw,relatime                         -  devpts   devpts                 rw,mode=600
13  1       0:3    /                 /proc                        rw,relatime                         -  proc     proc                   rw
14  1       0:12   /                 /sys                         rw,relatime                         -  sysfs    sysfs                  rw
15  1       0:13   /                 /acct                        rw,relatime                         -  cgroup   none                   rw,cpuacct
16  1       0:14   /                 /mnt/asec                    rw,relatime                         -  tmpfs    tmpfs                  rw,mode=755,gid=1000
17  1       0:15   /                 /mnt/obb                     rw,relatime                         -  tmpfs    tmpfs                  rw,mode=755,gid=1000
18  11      0:16   /                 /dev/cpuctl                  rw,relatime                         -  cgroup   none                   rw,cpu
19  1       31:3   /                 /system                      ro,relatime                         -  yaffs2   /dev/block/mtdblock3   ro
20  1       31:5   /                 /data                        rw,nosuid,nodev,relatime            -  yaffs2   /dev/block/mtdblock5   rw
21  1       31:4   /                 /cache                       rw,nosuid,nodev,relatime            -  yaffs2   /dev/block/mtdblock4   rw
22  21      31:5   /local/download   /cache/download              rw,nosuid,nodev,relatime            -  yaffs2   /dev/block/mtdblock5   rw
23  1       179:2  /                 /sd-ext                      rw,nosuid,nodev,noatime,nodiratime  -  ext4     /dev/block/mmcblk0p2   rw,commit=19,barrier=0,data=writeback
24  20      179:2  /app              /data/app                    rw,nosuid,nodev,noatime,nodiratime  -  ext4     /dev/block/mmcblk0p2   rw,commit=19,barrier=0,data=writeback
25  20      179:2  /data             /data/data                   rw,nosuid,nodev,noatime,nodiratime  -  ext4     /dev/block/mmcblk0p2   rw,commit=19,barrier=0,data=writeback
26  14      0:6    /                 /sys/kernel/debug            rw,relatime                         -  debugfs  /sys/kernel/debug      rw
27  1       179:1  /                 /mnt/sdcard                  rw,nosuid,nodev,noexec,relatime     -  vfat     /dev/block/vold/179:1  rw,dirsync,uid=1000,gid=1015,fmask=0602,dmask=0602,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro
28  1       179:1  /.android_secure  /mnt/secure/asec             rw,nosuid,nodev,noexec,relatime     -  vfat     /dev/block/vold/179:1  rw,dirsync,uid=1000,gid=1015,fmask=0602,dmask=0602,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro
29  27      0:17   /                 /mnt/sdcard/.android_secure  ro,relatime                         -  tmpfs    tmpfs                  ro,size=0k,mode=000
Run Code Online (Sandbox Code Playgroud)


Chr*_*ton 6

不完全是android apis的一部分,但底层的linux会告诉你如果你读/ proc/mounts 正在使用的那些

作为澄清,在后来的Android版本中,Linux能够为每个进程的祖先提供独特的挂载,因此应用程序进程看到的挂载可以(通常会)与从ADB或核心系统启动的挂载不同处理.