学习文件系统的第一步,先搞清楚文件系统在设备上的存储结构,先来简单了解一下。
F2FS空间布局图和描述选自《F2FS技术拆解》 https://mp.weixin.qq.com/s/k1ibtWF_TRQi8wbqUGjMrg
F2FS空间布局
F2FS空间布局整个存储空间被划分为6个区域:
在sdcard中,新建一个100MB大小的文件f2fs_device
dd if=/dev/zero of=/sdcard/f2fs_device bs=1MB count=100
将文件f2fs_device格式化成f2fs文件系统
make_f2fs /sdcard/f2fs_device
将f2fs_device和loop设备绑定,生成一个虚拟块设备,如果提示设备忙,13换成其他数字
losetup /dev/block/loop13 /sdcard/f2fs_device
新建一个目录f2fs_root_dir
mkdir /sdcard/f2fs_root_dir
将loop13挂在到f2fs_root_dir目录
mount -t f2fs /dev/block/loop13 /sdcard/f2fs_root_dir
在目录中新建一个1.txt文件,并且写入hello world
T1_PRO:/sdcard/f2fs_root_dir # touch 1.txt
T1_PRO:/sdcard/f2fs_root_dir # echo "hello world" > 1.txt
pull出文件f2fs_device,千万别出pull f2fs_root_dir这个路径
adb pull sdcard/f2fs_device
直接用hexdump分析块设备的原始数据
hexdump -C f2fs_device
首先你会看到下面的一堆16进制的数字,就是块设备的原始数据
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
#super block 1 start
*
00000400 10 20 f5 f2 01 00 0b 00 09 00 00 00 03 00 00 00 |. ..............|
00000410 0c 00 00 00 09 00 00 00 01 00 00 00 01 00 00 00 |................|
00000420 00 00 00 00 00 64 00 00 00 00 00 00 2a 00 00 00 |.....d......*...|
00000430 31 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 |1...............|
00000440 01 00 00 00 2a 00 00 00 00 02 00 00 00 02 00 00 |....*...........|
00000450 00 06 00 00 00 0a 00 00 00 0e 00 00 00 10 00 00 |................|
00000460 03 00 00 00 01 00 00 00 02 00 00 00 b6 71 aa 9d |.............q..|
00000470 8e e2 40 64 81 df 52 71 22 74 8d ac 00 00 00 00 |..@d..Rq"t......|
00000480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000870 00 00 00 00 00 00 00 00 00 00 00 00 22 00 00 00 |............"...|
00000880 6a 70 67 00 00 00 00 00 67 69 66 00 00 00 00 00 |jpg.....gif.....|
00000890 70 6e 67 00 00 00 00 00 61 76 69 00 00 00 00 00 |png.....avi.....|
000008a0 64 69 76 78 00 00 00 00 6d 34 61 00 00 00 00 00 |divx....m4a.....|
000008b0 6d 34 76 00 00 00 00 00 6d 34 70 00 00 00 00 00 |m4v.....m4p.....|
000008c0 6d 70 34 00 00 00 00 00 6d 70 33 00 00 00 00 00 |mp4.....mp3.....|
000008d0 33 67 70 00 00 00 00 00 77 6d 76 00 00 00 00 00 |3gp.....wmv.....|
000008e0 77 6d 61 00 00 00 00 00 6d 70 65 67 00 00 00 00 |wma.....mpeg....|
000008f0 6d 6b 76 00 00 00 00 00 6d 6f 76 00 00 00 00 00 |mkv.....mov.....|
00000900 61 73 78 00 00 00 00 00 61 73 66 00 00 00 00 00 |asx.....asf.....|
00000910 77 6d 78 00 00 00 00 00 73 76 69 00 00 00 00 00 |wmx.....svi.....|
00000920 77 76 78 00 00 00 00 00 77 76 00 00 00 00 00 00 |wvx.....wv......|
00000930 77 6d 00 00 00 00 00 00 6d 70 67 00 00 00 00 00 |wm......mpg.....|
00000940 6d 70 65 00 00 00 00 00 72 6d 00 00 00 00 00 00 |mpe.....rm......|
00000950 6f 67 67 00 00 00 00 00 6f 70 75 73 00 00 00 00 |ogg.....opus....|
00000960 66 6c 61 63 00 00 00 00 6a 70 65 67 00 00 00 00 |flac....jpeg....|
00000970 76 69 64 65 6f 00 00 00 61 70 6b 00 00 00 00 00 |video...apk.....|
00000980 73 6f 00 00 00 00 00 00 65 78 65 00 00 00 00 00 |so......exe.....|
00000990 64 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |db..............|
000009a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
...省略大量数据
超级块(SB)从0x00000400开始,也就是从1KB开始存,不是从0开始. 存在两个一模一样的超级块(SB),f2fs的设计,防止数据损坏,两个结构体间隔4KB
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000400 10 20 f5 f2 01 00 0b 00 09 00 00 00 03 00 00 00 |. ..............|//SB1
*
00001400 10 20 f5 f2 01 00 0b 00 09 00 00 00 03 00 00 00 |. ..............|//SB2
检查点(CP)从0x00200000开始,也就是2MB开始,因为一个Segment为2MB,检查点(CP)是对齐的
*
00200000 3b 51 5b 23 00 00 00 00 00 28 00 00 00 00 00 00 |;Q[#.....(......|#CP
整个1.txt文件对应的索引(inode)从地址0x01201000到0x01202000等于0x1000B = 4KB
留个疑问:为什么文件内容"hello world"会保存在inode块而不是在数据块?
01201000 b6 81 00 0b 00 00 00 00 00 00 00 00 01 00 00 00 |................|
01201010 0c 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 |................|
01201020 4f 26 70 5e 00 00 00 00 57 26 70 5e 00 00 00 00 |O&p^....W&p^....|
01201030 57 26 70 5e 00 00 00 00 a2 f4 2a 02 9e 08 d3 1d |W&p^......*.....|
01201040 9e 08 d3 1d af 1e c5 19 00 00 00 00 00 00 00 00 |................|
01201050 00 00 00 00 03 00 00 00 05 00 00 00 31 2e 74 78 |............1.tx|
01201060 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |t...............|
01201070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01201160 00 00 00 00 00 00 00 00 00 00 00 00 68 65 6c 6c |............hell|
01201170 6f 20 77 6f 72 6c 64 0a 00 00 00 00 00 00 00 00 |o world.........|
01201180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01201f00 00 00 00 00 00 00 00 00 00 00 00 00 11 20 f5 f2 |............. ..|
01201f10 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01201f20 00 00 00 00 06 07 18 00 73 65 6c 69 6e 75 78 75 |........selinuxu|
01201f30 3a 6f 62 6a 65 63 74 5f 72 3a 75 6e 6c 61 62 65 |:object_r:unlabe|
01201f40 6c 65 64 3a 73 30 00 00 00 00 00 00 00 00 00 00 |led:s0..........|
01201f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01201fe0 00 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 |................|
01201ff0 01 00 00 00 3a 51 5b 23 21 79 00 61 02 12 00 00 |....:Q[#!y.a....|
01202000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
最后一行,最大的寻址是0x06400000=100MB,我们创建的块设备就是100MB
*
06400000
单纯的用hexdump去分析f2fs块设备上的存储结构,我们还可以通过dump.f2fs工具去查看,当然Android源码下默认dump.f2fs是关闭的,以后我再写文章如何开启Android下的dump.f2fs。
Usage: dump.f2fs [options] device
[options]:
-d debug level [default:0]
-i inode no (hex)
-n [NAT dump nid from #1~#2 (decimal), for all 0~-1]
-s [SIT dump segno from #1~#2 (decimal), for all 0~-1]
-S sparse_mode
-a [SSA dump segno from #1~#2 (decimal), for all 0~-1]
-b blk_addr (in 4KB)
-V print the version number and exit
触发dump node address table
1|T1_PRO:/sdcard $ dump.f2fs -n 0~-1 f2fs_device
Info: No support kernel version!
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 204800 (100 MB)
Info: MKFS version
"4.14.117+ #1 SMP PREEMPT Mon Mar 9 21:37:48 CST 2020"
Info: FSCK version
from "4.14.117+ #1 SMP PREEMPT Mon Mar 9 21:37:48 CST 2020"
to "4.14.117+ #1 SMP PREEMPT Mon Mar 9 21:37:48 CST 2020"
Info: superblock features = 0 :
Info: superblock encrypt level = 0, salt = 00000000000000000000000000000000
Info: total FS sectors = 204800 (100 MB)
Info: CKPT version = 235b513e
Info: checkpoint state = c5 : nat_bits crc compacted_summary unmount
Done.
查看生成文件dump_nat
T1_PRO:/sdcard $ cat dump_nat
nid: 3 ino: 3 offset: 0 blkaddr: 4098 pack:2
nid: 4 ino: 4 offset: 0 blkaddr: 4609 pack:2
注意nid 4对应的blkaddr 4609,转成16进制就是1201,有没有点眼熟,看看3.2 中dump的1.txt的文件对应的inode第一样的地址01201000,所以blkaddr:4609就是代表nid为4的数据结构在存储设备中的地址,也就是blkaddr * 4k,还记得开头说的主区域 Main Area 由4KB大小的数据块组成嘛,正好对应。
01201000 b6 81 00 0b 00 00 00 00 00 00 00 00 01 00 00 00 |................|
dump inode号对应的inode结构体
T1_PRO:/sdcard $ dump.f2fs -i 4 f2fs_device
Info: No support kernel version!
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 204800 (100 MB)
Info: MKFS version
"4.14.117+ #1 SMP PREEMPT Mon Mar 9 21:37:48 CST 2020"
Info: FSCK version
from "4.14.117+ #1 SMP PREEMPT Mon Mar 9 21:37:48 CST 2020"
to "4.14.117+ #1 SMP PREEMPT Mon Mar 9 21:37:48 CST 2020"
Info: superblock features = 0 :
Info: superblock encrypt level = 0, salt = 00000000000000000000000000000000
Info: total FS sectors = 204800 (100 MB)
Info: CKPT version = 235b513e
[print_node_info: 275] Node ID [0x4:4] is inode
i_mode [0x 81b6 : 33206]
i_advise [0x 0 : 0]
i_uid [0x 0 : 0]
i_gid [0x 0 : 0]
i_links [0x 1 : 1]
i_size [0x c : 12]
i_blocks [0x 1 : 1]
i_atime [0x5e70264f : 1584408143]
i_atime_nsec [0x 22af4a2 : 36369570]
i_ctime [0x5e702657 : 1584408151]
i_ctime_nsec [0x1dd3089e : 500369566]
i_mtime [0x5e702657 : 1584408151]
i_mtime_nsec [0x1dd3089e : 500369566]
i_generation [0x19c51eaf : 432348847]
i_current_depth [0x 0 : 0]
i_xattr_nid [0x 0 : 0]
i_flags [0x 0 : 0]
i_inline [0x b : 11]
i_pino [0x 3 : 3]
i_dir_level [0x 0 : 0]
i_namelen [0x 5 : 5]
i_name [1.txt]
i_ext: fofs:0 blkaddr:0 len:0
i_addr[ofs] [0x 0 : 0]
i_addr[ofs + 1] [0x6c6c6568 : 1819043176]
i_addr[ofs + 2] [0x6f77206f : 1870078063]
i_addr[ofs + 3] [0x a646c72 : 174353522]
i_addr[0x3] points data block [0xa646c72]
i_nid[0] [0x 0 : 0]
i_nid[1] [0x 0 : 0]
i_nid[2] [0x 0 : 0]
i_nid[3] [0x 0 : 0]
i_nid[4] [0x 0 : 0]
xattr: e_name_index:6 e_name:selinux e_name_len:7 e_value_size:24 e_value:
753A6F626A6563745F723A756E6C6162656C65643A733000
Do you want to dump this file into ./lost_found/? [Y/N] y
Info: checkpoint state = c5 : nat_bits crc compacted_summary unmount
Done.
如果选择y,可以dump出1.txt到./lost_found/路径下 似乎这个指令以后可以用来从原始数据直接生成文件
Do you want to dump this file into ./lost_found/? [Y/N] y
T1_PRO:/sdcard $ cat ./lost_found/1.txt
hello world
注意inode的i_addr,看起来数字是不是也很眼熟,其实就是hello world,为什么i_addr不是指向数据块,而是直接存储hello world。因为F2FS支持inline data(数据直接存储在inode中),小文件大小最大可达约3.4KB,在Android大量小文件场景中对存取空间占用和性能有一定优化。
i_addr[ofs + 1] [0x6c6c6568 : 1819043176]
i_addr[ofs + 2] [0x6f77206f : 1870078063]
i_addr[ofs + 3] [0x a646c72 : 174353522]
01201160 00 00 00 00 00 00 00 00 00 00 00 00 68 65 6c 6c |............hell|
01201170 6f 20 77 6f 72 6c 64 0a 00 00 00 00 00 00 00 00 |o world.........|
对f2fs存储结构学习,只有这么一点是远远不够的,为什么研究文件系统要先研究存储结构?因为文件系统的很多代码都是按照存储结构来写的,我觉得文件系统其实就是块设备的原始数据的翻译者,管理者。
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000400 10 20 f5 f2 01 00 0b 00 09 00 00 00 03 00 00 00 |. ..............|//SB1
00000410 0c 00 00 00 09 00 00 00 01 00 00 00 01 00 00 00 |................|
00000420 00 00 00 00 00 64 00 00 00 00 00 00 2a 00 00 00 |.....d......*...|
00000430 31 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 |1...............|
00000440 01 00 00 00 2a 00 00 00 00 02 00 00 00 02 00 00 |....*...........|
00000450 00 06 00 00 00 0a 00 00 00 0e 00 00 00 10 00 00 |................|
00000460 03 00 00 00 01 00 00 00 02 00 00 00 b6 71 aa 9d |.............q..|
00000470 8e e2 40 64 81 df 52 71 22 74 8d ac 00 00 00 00 |..@d..Rq"t......|
00000480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000870 00 00 00 00 00 00 00 00 00 00 00 00 22 00 00 00 |............"...|
00000880 6a 70 67 00 00 00 00 00 67 69 66 00 00 00 00 00 |jpg.....gif.....|
00000890 70 6e 67 00 00 00 00 00 61 76 69 00 00 00 00 00 |png.....avi.....|
000008a0 64 69 76 78 00 00 00 00 6d 34 61 00 00 00 00 00 |divx....m4a.....|
000008b0 6d 34 76 00 00 00 00 00 6d 34 70 00 00 00 00 00 |m4v.....m4p.....|
000008c0 6d 70 34 00 00 00 00 00 6d 70 33 00 00 00 00 00 |mp4.....mp3.....|
000008d0 33 67 70 00 00 00 00 00 77 6d 76 00 00 00 00 00 |3gp.....wmv.....|
000008e0 77 6d 61 00 00 00 00 00 6d 70 65 67 00 00 00 00 |wma.....mpeg....|
000008f0 6d 6b 76 00 00 00 00 00 6d 6f 76 00 00 00 00 00 |mkv.....mov.....|
00000900 61 73 78 00 00 00 00 00 61 73 66 00 00 00 00 00 |asx.....asf.....|
00000910 77 6d 78 00 00 00 00 00 73 76 69 00 00 00 00 00 |wmx.....svi.....|
00000920 77 76 78 00 00 00 00 00 77 76 00 00 00 00 00 00 |wvx.....wv......|
00000930 77 6d 00 00 00 00 00 00 6d 70 67 00 00 00 00 00 |wm......mpg.....|
00000940 6d 70 65 00 00 00 00 00 72 6d 00 00 00 00 00 00 |mpe.....rm......|
00000950 6f 67 67 00 00 00 00 00 6f 70 75 73 00 00 00 00 |ogg.....opus....|
00000960 66 6c 61 63 00 00 00 00 6a 70 65 67 00 00 00 00 |flac....jpeg....|
00000970 76 69 64 65 6f 00 00 00 61 70 6b 00 00 00 00 00 |video...apk.....|
00000980 73 6f 00 00 00 00 00 00 65 78 65 00 00 00 00 00 |so......exe.....|
00000990 64 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |db..............|
000009a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000a80 00 00 00 00 34 2e 31 34 2e 31 31 37 2b 20 23 31 |....4.14.117+ #1|
00000a90 20 53 4d 50 20 50 52 45 45 4d 50 54 20 4d 6f 6e | SMP PREEMPT Mon|
00000aa0 20 4d 61 72 20 39 20 32 31 3a 33 37 3a 34 38 20 | Mar 9 21:37:48 |
00000ab0 43 53 54 20 32 30 32 30 00 00 00 00 00 00 00 00 |CST 2020........|
00000ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000b80 00 00 00 00 34 2e 31 34 2e 31 31 37 2b 20 23 31 |....4.14.117+ #1|
00000b90 20 53 4d 50 20 50 52 45 45 4d 50 54 20 4d 6f 6e | SMP PREEMPT Mon|
00000ba0 20 4d 61 72 20 39 20 32 31 3a 33 37 3a 34 38 20 | Mar 9 21:37:48 |
00000bb0 43 53 54 20 32 30 32 30 00 00 00 00 00 00 00 00 |CST 2020........|
00000bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000ec0 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 |................|
00000ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00001400 10 20 f5 f2 01 00 0b 00 09 00 00 00 03 00 00 00 |. ..............|//SB2
00001410 0c 00 00 00 09 00 00 00 01 00 00 00 01 00 00 00 |................|
00001420 00 00 00 00 00 64 00 00 00 00 00 00 2a 00 00 00 |.....d......*...|
00001430 31 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 |1...............|
00001440 01 00 00 00 2a 00 00 00 00 02 00 00 00 02 00 00 |....*...........|
00001450 00 06 00 00 00 0a 00 00 00 0e 00 00 00 10 00 00 |................|
00001460 03 00 00 00 01 00 00 00 02 00 00 00 b6 71 aa 9d |.............q..|
00001470 8e e2 40 64 81 df 52 71 22 74 8d ac 00 00 00 00 |..@d..Rq"t......|
00001480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00001870 00 00 00 00 00 00 00 00 00 00 00 00 22 00 00 00 |............"...|
00001880 6a 70 67 00 00 00 00 00 67 69 66 00 00 00 00 00 |jpg.....gif.....|
00001890 70 6e 67 00 00 00 00 00 61 76 69 00 00 00 00 00 |png.....avi.....|
000018a0 64 69 76 78 00 00 00 00 6d 34 61 00 00 00 00 00 |divx....m4a.....|
000018b0 6d 34 76 00 00 00 00 00 6d 34 70 00 00 00 00 00 |m4v.....m4p.....|
000018c0 6d 70 34 00 00 00 00 00 6d 70 33 00 00 00 00 00 |mp4.....mp3.....|
000018d0 33 67 70 00 00 00 00 00 77 6d 76 00 00 00 00 00 |3gp.....wmv.....|
000018e0 77 6d 61 00 00 00 00 00 6d 70 65 67 00 00 00 00 |wma.....mpeg....|
000018f0 6d 6b 76 00 00 00 00 00 6d 6f 76 00 00 00 00 00 |mkv.....mov.....|
00001900 61 73 78 00 00 00 00 00 61 73 66 00 00 00 00 00 |asx.....asf.....|
00001910 77 6d 78 00 00 00 00 00 73 76 69 00 00 00 00 00 |wmx.....svi.....|
00001920 77 76 78 00 00 00 00 00 77 76 00 00 00 00 00 00 |wvx.....wv......|
00001930 77 6d 00 00 00 00 00 00 6d 70 67 00 00 00 00 00 |wm......mpg.....|
00001940 6d 70 65 00 00 00 00 00 72 6d 00 00 00 00 00 00 |mpe.....rm......|
00001950 6f 67 67 00 00 00 00 00 6f 70 75 73 00 00 00 00 |ogg.....opus....|
00001960 66 6c 61 63 00 00 00 00 6a 70 65 67 00 00 00 00 |flac....jpeg....|
00001970 76 69 64 65 6f 00 00 00 61 70 6b 00 00 00 00 00 |video...apk.....|
00001980 73 6f 00 00 00 00 00 00 65 78 65 00 00 00 00 00 |so......exe.....|
00001990 64 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |db..............|
000019a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00001a80 00 00 00 00 34 2e 31 34 2e 31 31 37 2b 20 23 31 |....4.14.117+ #1|
00001a90 20 53 4d 50 20 50 52 45 45 4d 50 54 20 4d 6f 6e | SMP PREEMPT Mon|
00001aa0 20 4d 61 72 20 39 20 32 31 3a 33 37 3a 34 38 20 | Mar 9 21:37:48 |
00001ab0 43 53 54 20 32 30 32 30 00 00 00 00 00 00 00 00 |CST 2020........|
00001ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00001b80 00 00 00 00 34 2e 31 34 2e 31 31 37 2b 20 23 31 |....4.14.117+ #1|
00001b90 20 53 4d 50 20 50 52 45 45 4d 50 54 20 4d 6f 6e | SMP PREEMPT Mon|
00001ba0 20 4d 61 72 20 39 20 32 31 3a 33 37 3a 34 38 20 | Mar 9 21:37:48 |
00001bb0 43 53 54 20 32 30 32 30 00 00 00 00 00 00 00 00 |CST 2020........|
00001bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00001ec0 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 |................|
00001ed0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00200000 3b 51 5b 23 00 00 00 00 00 28 00 00 00 00 00 00 |;Q[#.....(......|//CP1
00200010 03 00 00 00 00 00 00 00 10 00 00 00 16 00 00 00 |................|
00200020 24 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 |$...............|
00200030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00200040 ff ff ff ff 03 00 02 00 00 00 00 00 00 00 00 00 |................|
00200050 00 00 00 00 03 00 00 00 14 00 00 00 09 00 00 00 |................|
00200060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00200070 ff ff ff ff 02 00 00 00 00 00 00 00 00 00 00 00 |................|
00200080 00 00 00 00 c4 00 00 00 03 00 00 00 01 00 00 00 |................|
00200090 02 00 00 00 02 00 00 00 05 00 00 00 40 00 00 00 |............@...|
002000a0 40 00 00 00 fc 0f 00 00 20 01 00 00 00 00 00 00 |@....... .......|
002000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00200ff0 00 00 00 00 00 00 00 00 00 00 00 00 9f 58 1a 39 |.............X.9|
00201000 02 00 03 00 00 00 00 03 00 00 00 02 10 00 00 04 |................|
00201010 00 00 00 00 04 00 00 00 01 12 00 00 00 00 00 00 |................|
00201020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
002011f0 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 |................|
00201200 00 01 0c 20 00 00 00 00 00 00 00 00 00 00 00 00 |... ............|
00201210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00201240 00 00 00 20 01 00 00 00 00 00 00 01 00 00 00 01 |... ............|
00201250 10 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |.@..............|
00201260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00201290 00 20 01 00 00 00 00 00 00 02 00 00 00 00 14 00 |. ..............|
002012a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
002012e0 00 00 00 00 00 00 00 03 00 00 00 01 00 40 00 00 |.............@..|
002012f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00201320 00 00 00 00 00 00 00 00 00 00 00 00 00 e3 00 00 |................|
00201330 00 00 00 00 00 09 00 00 00 00 08 00 00 00 00 00 |................|
00201340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00201380 00 00 00 14 00 00 00 00 04 00 00 00 00 00 00 00 |................|
00201390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
002013f0 00 00 00 00 00 00 03 00 00 00 00 00 00 03 00 00 |................|
00201400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00202000 3b 51 5b 23 00 00 00 00 00 28 00 00 00 00 00 00 |;Q[#.....(......|
00202010 03 00 00 00 00 00 00 00 10 00 00 00 16 00 00 00 |................|
00202020 24 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 |$...............|
00202030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00202040 ff ff ff ff 03 00 02 00 00 00 00 00 00 00 00 00 |................|
00202050 00 00 00 00 03 00 00 00 14 00 00 00 09 00 00 00 |................|
00202060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00202070 ff ff ff ff 02 00 00 00 00 00 00 00 00 00 00 00 |................|
00202080 00 00 00 00 c4 00 00 00 03 00 00 00 01 00 00 00 |................|
00202090 02 00 00 00 02 00 00 00 05 00 00 00 40 00 00 00 |............@...|
002020a0 40 00 00 00 fc 0f 00 00 20 01 00 00 00 00 00 00 |@....... .......|
002020b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00202ff0 00 00 00 00 00 00 00 00 00 00 00 00 9f 58 1a 39 |.............X.9|
00203000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00203ff0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 |................|
00204000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00204ff0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 |................|
00205000 39 51 5b 23 00 00 00 00 00 28 00 00 00 00 00 00 |9Q[#.....(......|
00205010 02 00 00 00 00 00 00 00 10 00 00 00 16 00 00 00 |................|
00205020 24 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 |$...............|
00205030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00205040 ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00 |................|
00205050 00 00 00 00 03 00 00 00 14 00 00 00 09 00 00 00 |................|
00205060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00205070 ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00 |................|
00205080 00 00 00 00 85 01 00 00 06 00 00 00 01 00 00 00 |................|
00205090 01 00 00 00 01 00 00 00 04 00 00 00 40 00 00 00 |............@...|
002050a0 40 00 00 00 fc 0f 00 00 00 00 00 00 00 00 00 00 |@...............|
002050b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00205ff0 00 00 00 00 00 00 00 00 00 00 00 00 83 71 6b d6 |.............qk.|
00206000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
003ff000 39 51 5b 23 83 71 6b d6 00 00 00 00 00 00 00 00 |9Q[#.qk.........|
003ff010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
003ff040 00 00 00 00 00 00 00 00 fe ff ff ff ff ff ff ff |................|
003ff050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
003ff080 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 |................|
003ff090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00400000 3a 51 5b 23 00 00 00 00 00 28 00 00 00 00 00 00 |:Q[#.....(......|//CP2
00400010 03 00 00 00 00 00 00 00 10 00 00 00 16 00 00 00 |................|
00400020 24 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 |$...............|
00400030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00400040 ff ff ff ff 02 00 01 00 00 00 00 00 00 00 00 00 |................|
00400050 00 00 00 00 03 00 00 00 14 00 00 00 09 00 00 00 |................|
00400060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00400070 ff ff ff ff 02 00 00 00 00 00 00 00 00 00 00 00 |................|
00400080 00 00 00 00 c4 00 00 00 03 00 00 00 01 00 00 00 |................|
00400090 02 00 00 00 02 00 00 00 05 00 00 00 40 00 00 00 |............@...|
004000a0 40 00 00 00 fc 0f 00 00 e3 00 00 00 00 00 00 00 |@...............|
004000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00400ff0 00 00 00 00 00 00 00 00 00 00 00 00 21 79 00 61 |............!y.a|
00401000 02 00 03 00 00 00 00 03 00 00 00 01 10 00 00 04 |................|
00401010 00 00 00 00 04 00 00 00 00 12 00 00 00 00 00 00 |................|
00401020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
004011f0 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 |................|
00401200 00 01 0c 40 00 00 00 00 00 00 00 00 00 00 00 00 |...@............|
00401210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00401240 00 00 00 e3 00 00 00 00 00 00 00 01 00 00 00 01 |................|
00401250 10 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00401260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00401290 00 e3 00 00 00 00 00 00 00 02 00 00 00 00 14 00 |................|
004012a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
004012e0 00 00 00 00 00 00 00 03 00 00 00 01 00 40 00 00 |.............@..|
004012f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00401320 00 00 00 00 00 00 00 00 00 00 00 00 00 e3 00 00 |................|
00401330 00 00 00 00 00 09 00 00 00 00 08 00 00 00 00 00 |................|
00401340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00401380 00 00 00 14 00 00 00 00 04 00 00 00 00 00 00 00 |................|
00401390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
004013f0 00 00 00 00 00 00 03 00 00 00 00 00 00 03 00 00 |................|
00401400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00402000 3a 51 5b 23 00 00 00 00 00 28 00 00 00 00 00 00 |:Q[#.....(......|
00402010 03 00 00 00 00 00 00 00 10 00 00 00 16 00 00 00 |................|
00402020 24 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 |$...............|
00402030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00402040 ff ff ff ff 02 00 01 00 00 00 00 00 00 00 00 00 |................|
00402050 00 00 00 00 03 00 00 00 14 00 00 00 09 00 00 00 |................|
00402060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00402070 ff ff ff ff 02 00 00 00 00 00 00 00 00 00 00 00 |................|
00402080 00 00 00 00 c4 00 00 00 03 00 00 00 01 00 00 00 |................|
00402090 02 00 00 00 02 00 00 00 05 00 00 00 40 00 00 00 |............@...|
004020a0 40 00 00 00 fc 0f 00 00 e3 00 00 00 00 00 00 00 |@...............|
004020b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00402ff0 00 00 00 00 00 00 00 00 00 00 00 00 21 79 00 61 |............!y.a|
00403000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00405000 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 |.........(......|
00405010 02 00 00 00 00 00 00 00 10 00 00 00 16 00 00 00 |................|
00405020 24 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 |$...............|
00405030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00405040 ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00 |................|
00405050 00 00 00 00 03 00 00 00 14 00 00 00 09 00 00 00 |................|
00405060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00405070 ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00 |................|
00405080 00 00 00 00 85 01 00 00 06 00 00 00 01 00 00 00 |................|
00405090 01 00 00 00 01 00 00 00 04 00 00 00 40 00 00 00 |............@...|
004050a0 40 00 00 00 fc 0f 00 00 00 00 00 00 00 00 00 00 |@...............|
004050b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00405ff0 00 00 00 00 00 00 00 00 00 00 00 00 da 47 26 28 |.............G&(|
00406000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00a00000 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 |................|
00a00010 00 00 00 02 00 00 00 01 00 00 00 00 03 00 00 00 |................|
00a00020 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00a00030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01000000 ed 41 00 00 00 00 00 00 00 00 00 00 02 00 00 00 |.A..............|
01000010 00 10 00 00 00 00 00 00 02 00 00 00 00 00 00 00 |................|
01000020 f5 22 70 5e 00 00 00 00 f5 22 70 5e 00 00 00 00 |."p^....."p^....|
01000030 f5 22 70 5e 00 00 00 00 00 00 00 00 00 00 00 00 |."p^............|
01000040 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 |................|
01000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01000160 00 00 00 00 00 00 00 00 00 16 00 00 00 00 00 00 |................|
01000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01000fe0 00 00 00 00 00 00 00 00 03 00 00 00 03 00 00 00 |................|
01000ff0 00 00 00 00 01 00 00 00 00 00 00 00 01 10 00 00 |................|
01001000 ed 41 00 00 00 00 00 00 00 00 00 00 02 00 00 00 |.A..............|
01001010 00 10 00 00 00 00 00 00 02 00 00 00 00 00 00 00 |................|
01001020 f5 22 70 5e 00 00 00 00 f5 22 70 5e 00 00 00 00 |."p^....."p^....|
01001030 f5 22 70 5e 00 00 00 00 00 00 00 00 00 00 00 00 |."p^............|
01001040 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 |................|
01001050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01001160 00 00 00 00 00 00 00 00 01 16 00 00 00 00 00 00 |................|
01001170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01001fe0 00 00 00 00 00 00 00 00 03 00 00 00 03 00 00 00 |................|
01001ff0 00 00 00 00 39 51 5b 23 00 00 00 00 02 10 00 00 |....9Q[#........|
01002000 ed 41 00 00 00 00 00 00 00 00 00 00 02 00 00 00 |.A..............|
01002010 00 10 00 00 00 00 00 00 02 00 00 00 00 00 00 00 |................|
01002020 f5 22 70 5e 00 00 00 00 23 26 70 5e 00 00 00 00 |."p^....#&p^....|
01002030 23 26 70 5e 00 00 00 00 00 00 00 00 b2 46 e7 11 |#&p^.........F..|
01002040 b2 46 e7 11 00 00 00 00 01 00 00 00 00 00 00 00 |.F..............|
01002050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01002160 00 00 00 00 00 00 00 00 01 16 00 00 00 00 00 00 |................|
01002170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01002fe0 00 00 00 00 00 00 00 00 03 00 00 00 03 00 00 00 |................|
01002ff0 00 00 00 00 3a 51 5b 23 21 79 00 61 03 10 00 00 |....:Q[#!y.a....|
01003000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01200000 b6 81 00 03 00 00 00 00 00 00 00 00 01 00 00 00 |................|//Main Area
01200010 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 |................|
01200020 23 26 70 5e 00 00 00 00 23 26 70 5e 00 00 00 00 |#&p^....#&p^....|
01200030 23 26 70 5e 00 00 00 00 b2 46 e7 11 b2 46 e7 11 |#&p^.....F...F..|
01200040 b2 46 e7 11 af 1e c5 19 00 00 00 00 00 00 00 00 |.F..............|
01200050 00 00 00 00 03 00 00 00 05 00 00 00 31 2e 74 78 |............1.tx|
01200060 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |t...............|
01200070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01200f00 00 00 00 00 00 00 00 00 00 00 00 00 11 20 f5 f2 |............. ..|
01200f10 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01200f20 00 00 00 00 06 07 18 00 73 65 6c 69 6e 75 78 75 |........selinuxu|
01200f30 3a 6f 62 6a 65 63 74 5f 72 3a 75 6e 6c 61 62 65 |:object_r:unlabe|
01200f40 6c 65 64 3a 73 30 00 00 00 00 00 00 00 00 00 00 |led:s0..........|
01200f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01200fe0 00 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 |................|
01200ff0 01 00 00 00 39 51 5b 23 00 00 00 00 01 12 00 00 |....9Q[#........|
01201000 b6 81 00 0b 00 00 00 00 00 00 00 00 01 00 00 00 |................|//1.txt
01201010 0c 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 |................|
01201020 4f 26 70 5e 00 00 00 00 57 26 70 5e 00 00 00 00 |O&p^....W&p^....|
01201030 57 26 70 5e 00 00 00 00 a2 f4 2a 02 9e 08 d3 1d |W&p^......*.....|
01201040 9e 08 d3 1d af 1e c5 19 00 00 00 00 00 00 00 00 |................|
01201050 00 00 00 00 03 00 00 00 05 00 00 00 31 2e 74 78 |............1.tx|
01201060 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |t...............|
01201070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01201160 00 00 00 00 00 00 00 00 00 00 00 00 68 65 6c 6c |............hell|
01201170 6f 20 77 6f 72 6c 64 0a 00 00 00 00 00 00 00 00 |o world.........|
01201180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01201f00 00 00 00 00 00 00 00 00 00 00 00 00 11 20 f5 f2 |............. ..|
01201f10 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01201f20 00 00 00 00 06 07 18 00 73 65 6c 69 6e 75 78 75 |........selinuxu|
01201f30 3a 6f 62 6a 65 63 74 5f 72 3a 75 6e 6c 61 62 65 |:object_r:unlabe|
01201f40 6c 65 64 3a 73 30 00 00 00 00 00 00 00 00 00 00 |led:s0..........|
01201f50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01201fe0 00 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 |................|
01201ff0 01 00 00 00 3a 51 5b 23 21 79 00 61 02 12 00 00 |....:Q[#!y.a....|
01202000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01600000 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01600010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01600020 00 00 03 00 00 00 01 00 02 00 00 00 00 03 00 00 |................|
01600030 00 02 00 02 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01600040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01600950 2e 00 00 00 00 00 00 00 2e 2e 00 00 00 00 00 00 |................|
01600960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01601000 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01601010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
01601020 00 00 03 00 00 00 01 00 02 00 00 00 00 03 00 00 |................|
01601030 00 02 00 02 12 ea 16 2d 04 00 00 00 05 00 01 00 |.......-........|
01601040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
01601950 2e 00 00 00 00 00 00 00 2e 2e 00 00 00 00 00 00 |................|
01601960 31 2e 74 78 74 00 00 00 00 00 00 00 00 00 00 00 |1.txt...........|
01601970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
06400000