Mise à jour : Android 7 - LineageOS 14
Android dispose d'un noyau de type Linux. Ce document décrit le partitionnement et l'utilisation du disque à partir du shell.
Note : certaines commandes peuvent ne pas être disponibles dans la ROM de base : fdisk, blkid, ... et nécessiter les droits root. En mode recovery TWRP, ces commandes sont disponibles via la busybox intégrée et les droits root intégrés.
crackling:/ # ls -l sys/block |grep -vE "loop|ram"
total 0
lrwxrwxrwx 1 root root 0 2018-05-15 17:48 dm-0 -> ../devices/virtual/block/dm-0
lrwxrwxrwx 1 root root 0 2018-05-15 17:48 mmcblk0 -> ../devices/soc.0/7824900.sdhci/mmc_host/mmc0/mmc0:0001/block/mmcblk0
lrwxrwxrwx 1 root root 0 2018-05-15 17:48 mmcblk0rpmb -> ../devices/soc.0/7824900.sdhci/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0rpmb
lrwxrwxrwx 1 root root 0 2018-05-15 17:48 mmcblk1 -> ../devices/soc.0/7864900.sdhci/mmc_host/mmc1/mmc1:0007/block/mmcblk1
Le système ci-dessus possède
une disque interne mmcblk0
une mémoire externe mmcblk1
crackling:/ # cat /proc/partitions
major minor #blocks name
179 0 15267840 mmcblk0
179 1 512 mmcblk0p1
179 2 512 mmcblk0p2
179 3 1024 mmcblk0p3
179 4 1024 mmcblk0p4
179 5 512 mmcblk0p5
179 6 512 mmcblk0p6
179 7 512 mmcblk0p7
179 8 512 mmcblk0p8
179 9 512 mmcblk0p9
179 10 512 mmcblk0p10
179 11 4 mmcblk0p11
179 12 1536 mmcblk0p12
179 13 1536 mmcblk0p13
179 14 1024 mmcblk0p14
179 15 1 mmcblk0p15
179 16 8 mmcblk0p16
179 17 10240 mmcblk0p17
179 18 512 mmcblk0p18
179 19 65536 mmcblk0p19
179 20 32 mmcblk0p20
179 21 65536 mmcblk0p21
179 22 1536 mmcblk0p22
179 23 16 mmcblk0p23
179 24 32768 mmcblk0p24
179 25 1572864 mmcblk0p25
179 26 32768 mmcblk0p26
179 27 65536 mmcblk0p27
179 28 32768 mmcblk0p28
179 29 153600 mmcblk0p29
179 30 512 mmcblk0p30
179 31 12983791 mmcblk0p31
179 32 4096 mmcblk0rpmb
179 64 30375936 mmcblk1
179 65 16384 mmcblk1p1
179 66 30358511 mmcblk1p2
253 0 30358511 dm-0
Le disque mmblk0 dispose de 32 partitions
La disque mmblk1 dispose de 2 partitions et est chiffrée (dm-0)
$ adb shell fdisk -l /dev/block/mmcblk0
Found valid GPT with protective MBR; using GPT
Disk /dev/block/mmcblk0: 15269888 sectors, 3360M
Logical sector size: 512
Disk identifier (GUID): 52444e41-494f-2044-4d4d-43204449534b
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 15269854
Number Start (sector) End (sector) Size Code Name
2 256 1023 384K 0700 MasterTOC
3 1024 3071 1024K 0700 PIT
4 6144 8191 1024K 0700 MD5HDR
5 8192 9215 512K 0700 STEboot1
6 9216 10239 512K 0700 STEboot2
7 10240 11263 512K 0700 Dnt
8 11264 12287 512K 0700 reserved
9 16384 18431 1024K 0700 CSPSAFS
10 18432 20479 1024K 0700 CSPSAFS2
11 20480 53247 16.0M 0700 EFS
12 53248 86015 16.0M 0700 ModemFS
13 86016 118783 16.0M 0700 ModemFS2
14 118784 221183 50.0M 0700 Fota
15 380928 381055 65536 0700 IPL Modem
16 385024 413695 14.0M 0700 Modem
17 417792 421887 2048K 0700 Loke4
18 421888 425983 2048K 0700 2ndLoke4
19 425984 458751 16.0M 0700 PARAM
20 458752 491519 16.0M 0700 Kernel
21 491520 524287 16.0M 0700 Kernel2
22 524288 2981887 1200M 0700 SYSTEM
23 2981888 4702207 840M 0700 CACHEFS
24 4702208 5357567 320M 0700 HIDDEN
25 5357568 15269854 4839M 0700 DATAFS
Liste des partitions physiques montées (en fonctionnement normal)
crackling:/ # df -h |grep /dev/block
/dev/block/mmcblk0p25 1.4G 975M 513M 66% /system
/dev/block/mmcblk0p31 12G 5.8G 6.5G 48% /data
/dev/block/mmcblk0p29 148M 14M 134M 10% /cache
/dev/block/mmcblk0p28 27M 240K 27M 1% /persist
/dev/block/mmcblk0p21 64M 52M 12M 81% /firmware
/dev/block/dm-0 29G 5.8G 23G 21% /mnt/expand/b17d8594-37b5-4d2f-b842-1a132d9e8c66
Système de fichier et options de montage
Les principaux types de système de fichier sont ext4, f2fs et vfat. Pour afficher le système de fichier d'une partition :
# mount -f |grep /system
/dev/block/mmcblk0p25 on /system type ext4 (rw,seclabel,relatime,data=ordered)
# blkid
/dev/block/dm-0: UUID="f0068a1a-30e0-45c7-8f91-c3c09afea3c5" TYPE="f2fs"
/dev/block/mmcblk1p1: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"
/dev/block/mmcblk0p25: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"
/dev/block/mmcblk0p24: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"
/dev/block/mmcblk0p23: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"
/dev/block/mmcblk0p22: UUID="fb9309f0-c90e-425c-94e9-8185b3a023c6" TYPE="f2fs"
/dev/block/mmcblk0p12: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"
/dev/block/mmcblk0p11: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" TYPE="ext4"
La carte SD externe, lorsqu'elle est présente, peut-être utilisée
soit comme extension de la carte sd interne
golden:/ # df -h |grep /mt/expand
/dev/block/dm-0 15G 1.0G 14G 8% /mnt/expand/f6740725-dc6d-4220-8bae-049ee2c95b7c
golden:/ # blkid |grep mmcblk1p1
/dev/block/mmcblk1p1: UUID="cc975aa0-d3ef-4c42-a00b-e1423abc7ace" TYPE="f2fs"
soit comme carte amovible
golden:/ # df -h |grep /storage/
/dev/fuse 4.6G 612M 4.0G 13% /storage/emulated
/dev/fuse 15G 224K 15G 1% /storage/383F-0915
golden:/ # blkid |grep mmcblk1p1
/dev/block/mmcblk1p1: UUID="383F-0915" TYPE="vfat"
Voir en Annexe 1, la sélection de l'un ou l'autre mode.
Le système ne dispose pas de table /etc/fstab. Les commandes mount ou cat /sys/mounts listent les systèmes de fichier montés
En mode normal, la partition /system est montée en lecture seule, Pour identifier la partition system
$ mount |grep system
/dev/block/mmcblk0p22 on /system type f2fs (r,relatime,background_gc=on,user_xattr,acl,active_logs=6)
Pour remonter la partition /system en lecture écriture
~ # mount -o remount,rw /system
Pour remonter la partition /system en lecture - écriture
~ # mount -o remount,ro /system
En mode recovery, une table de montage /etc/fstab est disponible.
~ # cat /etc/fstab
/dev/block/mmcblk0p25 /system ext4 rw 0 0
/dev/block/mmcblk0p31 /data f2fs rw 0 0
/dev/block/mmcblk0p29 /cache f2fs rw 0 0
/dev/block/mmcblk0p28 /persist ext4 rw 0 0
/dev/block/mmcblk0p21 /firmware vfat rw 0 0
/dev/block/dm-0 /sdcard1 f2fs rw 0 0
Par défaut, la partition correspondant à /system est démontée. Pour monter la partition /system, en lecture écriture, utiliser
~ # mount /system
Dans le mode de fonctionnement normal, la racine de la carte SD externe dm-0 n'est pas visible par l'utilisateur. Elle est montée (dans cet exemple) en
/mnt/expand/b17d8594-37b5-4d2f-b842-1a132d9e8c66
Son contenu est donné par :
crackling:/ $ ls -l mnt/expand/b17d8594-37b5-4d2f-b842-1a132d9e8c66
total 0
drwxrwx--x 13 system system 3488 2018-05-10 14:15 app
drwxr-x--x 3 root root 3488 1970-01-17 19:34 local
drwxrwx--- 4 media_rw media_rw 3488 2018-01-26 19:00 media
drwxrwx--t 3 system misc 3488 2018-01-22 02:59 misc
drwx--x--x 3 system system 3488 1970-01-17 19:34 user
drwx--x--x 3 system system 3488 1970-01-17 19:34 user_de
Les principaux emplacements sont :
/system/app/<nom_fichier_paquet_sans_apk>
/system/priv-app/<nom_fichier_paquet_sans_apk>
Applications utilisateur
/data/app/<nom_fichier_paquet_sans_apk>
/data/app-private/<nom_fichier_paquet_sans_apk>
/<Carte_SD_externe>/app/<nom_fichier_paquet_sans_apk>
/data/data/<nom_du_paquet_sans_apk>
/sdcard/<nom_du_paquet_sans_apk>
/sdcard>/Android/<nom_du_paquet_sans_apk>
Exemples :
golden:/ # ls /sdcard/Android/data/org.fdroid.fdroid/cache/apks/f-droid.org--1
org.billthefarmer.editor_120.apk
......
Fichiers apk téléchargés par Yalp
golden:/ # ls /sdcard/Android/data/com.github.yeriomin.yalpstore/ <
me.kuder.diskinfo.49908.apk
Les données utilisateur sont disponibles en /sdcard
crackling:/ # ls /sdcard
846b44643ec609f507828878741e1f9a Birthdays Documents_partagés Magnifier Notifications Ringtones backups myMail rerware
AUDIO PROLog BubbleUPnP Download MapsWithMe OpenSignal TWRP bluetooth navit wifiaudio
Alarms DCIM Iphigenie Movies Pictures Uptodown copie_ecran.jpg osmand wm
Android Documents LazyList Music Podcasts WhatsApp dianxin pdf x
On y trouve par exemple
Photos >> /sdcard/DCIM
Documents >> /sdcard/Documents
Téléchargement >> /sdcard/Download
Films >> /sdcard/Movies
Musique >> /sdcard/Music
Photos >> /sdcard/Pictures
Sonneries >> /sdcard/Ringtones
...
Données par application >>/sdcard/<nom_application>
Données par application >>/sdcard/Android/<nom_application>
/sdcard est, pour l'utilisateur 0, un lien vers /storage/emulated/0 :
crackling:/ $ ls -l /sdcard
lrwxrwxrwx 1 root root 21 1970-01-01 01:00 /sdcard -> /storage/self/primary
crackling:/ $ ls -l /storage/self/primary
lrwxrwxrwx 1 root root 19 1970-01-01 13:40 /storage/self/primary -> /mnt/user/0/primary
crackling:/ $ ls -l /mnt/user/0/primary
lrwxrwxrwx 1 root root 19 2018-05-10 21:31 /mnt/user/0/primary -> /storage/emulated/0
en présence d'une carte SD externe, le lien pointe sur le répertoire /media/0 de la carte SD externe
crackling:/ $ mount -f |grep /storage/emulated
/mnt/expand/b17d8594-37b5-4d2f-b842-1a132d9e8c66/media on /storage/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6)
en l'absence de carte SD externe, le lien pointe sur le répertoire /media/0 de la partition /data (stockage interne)
golden:/ # ls -l /data/media/
total 16
drwxrwx--- 19 media_rw media_rw 4096 2018-05-09 21:41 0
drwxrwxr-x 2 media_rw media_rw 4096 2012-01-01 03:49 ob