在 AOSP(Android Open Source Project)中,可以使用一些命令来查看设备的分区信息。通常,你会用到以下方法:
举例都是通过adb来执行的, 当然通过串口一样是没问题的。
1. 使用 adb
如果你连接了一个 Android 设备并且已启用 USB 调试,可以通过 adb
(Android Debug Bridge)查看分区信息。
adb shell
cat /proc/partitions
这将显示系统中所有的分区信息。
.....
259 23 4529152 mmcblk0p31
254 0 836604 dm-0
254 1 387904 dm-1
254 2 235360 dm-2
254 3 984 dm-3
254 4 131200 dm-4
254 5 66096 dm-5
254 6 340 dm-6
254 7 340 dm-7
253 0 524288 zram0
254 8 4529152 dm-8
....
2. 使用 lsblk
如果你能在设备的 shell 中使用 lsblk
命令,可以执行此命令来查看分区和它们的挂载状态。
adb shell
lsblk
3. 查看 fstab
文件
在 Android 设备中,分区的挂载信息通常定义在 fstab
文件中。你可以查找 fstab
文件以寻找分区的详细信息。通常,这个文件位于 /vendor/etc/
或者 /system/etc/
中。例如:
adb shell
cat /vendor/etc/fstab.* # 根据你的设备和 vendor 路径变化
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
system /system ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,avb_keys=/avb
system_ext /system_ext ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
system_dlkm /system_dlkm ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
vendor /vendor ext4 ro,barrier=1 wait,slotselect,avb=vbmeta,logical,first_stage_mount
product /product ext4 ro,barrier=1 wait,slotselect,avb,logical,first_stage_mount
odm /odm ext4 ro,barrier=1 wait,slotselect,avb,logical,first_stage_mount
vendor_dlkm /vendor_dlkm ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect,avb
odm_dlkm /odm_dlkm ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect,avb
/dev/block/by-name/oem /oem ext4 ro,barrier=1 wait,slotselect,avb,first_stage_mount
/dev/block/by-name/metadata /metadata f2fs noatime,nosuid,nodev wait,check,formattable,first_stage_mount
/dev/block/by-name/odm_ext /mnt/vendor/odm_ext ext4 ro,noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,slotselect,first_stage_mount
/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,reserve_root=32768,fsync_mode=nobarrier latemount,wait,check,fileencryption=aes-256-xts,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=32M,checkpoint=fs
/dev/block/by-name/param /mnt/vendor/param ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,quota,formattable
/dev/block/by-name/tee /mnt/vendor/tee ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,formattable
/dev/block/by-name/factory /mnt/vendor/factory vfat noatime,nodiratime,nosuid,noexec,dmask=0022 wait,check
/dev/block/platform/soc/fe08c000.mmc/by-name/misc /misc emmc defaults defaults
# Add for zram. zramsize can be in numeric (byte) , in percent
/dev/block/zram0 none swap defaults wait,zramsize=536870912
/dev/block/loop auto loop defaults voldmanaged=loop:auto
/devices/*.sd*/*/block/mmcblk* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata
/devices/*/xhci-hcd.*.auto/usb?/*/host*/target*/block/sd* auto auto defaults voldmanaged=usb:auto,encryptable=userdata
/devices/*/xhci-hcd.*.auto/usb?/*/host*/target*/block/sr* auto auto defaults voldmanaged=sr0:auto,encryptable=userdata
4. 使用 getprop
你也可以使用 getprop
命令来查看系统属性,其中一些属性可能会涉及到分区的信息:
adb shell
getprop | grep partition
[ro.boot.dynamic_partitions]: [true]
[ro.boot.dynamic_partitions_retrofit]: [true]
[ro.product.ab_ota_partitions]: [boot,bootloader,dtbo,init_boot,odm,odm_dlkm,odm_ext,oem,product,system,system_dlkm,system_ext,vbmeta,vbmeta_system,vendor,vendor_boot,vendor_dlkm]
这是一些常用的方法来查看 AOSP 上的分区信息。还可以根据具体需要查看更多的细节。如果你在开发过程中需要特定的分区信息,请参考 AOSP 文档和你设备的硬件规格。