Android

Android

File System

Partitions and Images

实际分区:

  • /boot : 存放 kernel(以及附带的ramdisk) 的分区。一些ROM刷机包里包含了这个分区的镜像 boot.img。也可以通过 fastboot flash boot boot.img 手动刷入新内核。
  • /recovery : recovery 分区。通过 fastboot flash recovery recovery.img 刷入。
  • /system : 系统分区。通常在Android运行时这个分区是只读的。
  • /data : 数据分区。里面内容包括:
    • /data/app : 用户安装的 App
    • /data/data : 所有 App 的数据。
    • /data/media : 内置存储。(详见下文)

某些手机还可能有一些其他分区:

  • /vendor

虚拟分区 / 挂载点:

  • /storage : 存放 Internal Storage / External Storage 等挂载点的 tmpfs.
  • /storage/emulated : 所有用户的 Internal Storage 存放路径。实际指向 /data/media
  • /sdcard : 等效于 Linux 的 ~ 用户根目录。实际指向 /data/media/{USER_ID},对于第一个(主)用户,即为 /data/media/0。

/storage 和 /sdcard 不是实际物理分区。

  • 在 TWRP 里 wipe /data 时不会清除 /data/media,因此不影响 /sdcard 里内容。(所以这个 wipe 工作在文件系统层,而不是直接格式化块设备?)
  • /sdcard 和 /data 共用设备(除 /system 和其他几个小分区以外的)剩余存储空间。
  • /system, /data 等分区大小是设备出厂时固定的。可以在 recovery 里用 fdisk 等工具重新分区以调整各分区大小,但过程十分复杂、与具体设备相关并且具有危险性(错误操作设备会变砖)。

Systemless

不写入 /system 分区而对系统进行修改。最常用的是 Magisk:

  • patch 并替换 boot 分区实现 root。
  • Systemless modules

Last update: 2018-12-22 04:36:14 UTC