闪存文件系统: Difference between revisions

T (talk | contribs)
fix translation,up to table NAND structure
T (talk | contribs)
update 对应英文版 http://www.3dbrew.org/w/index.php?title=Flash_Filesystem&oldid=7272
Line 2: Line 2:


=== 格式 ===
=== 格式 ===
通过主板上的输出针脚提取闪存芯片内容是可行的,并且已经取得成功。但数据是加密过的,不经解密无法理解。
通过主板上的输出针脚提取闪存芯片内容是可行的,并且已经取得成功。但由于数据是加密过的,不经解密无法理解。


===加密===
===加密===
Line 65: Line 65:
|}
|}


3DS中NAND的TWL的FAT分区FAT卷标名"TWL",而CTR的FAT分区则是"CTR"。TWL分区的偏移和长度存在MBR分区表,而CTR分区表信息存在NAND的NCSD头。CTR-NAND分区的扇面0有一个MBR分区表,而MBR的签名在+0x1fe位置。在这个分区表中只有一个分区就是CTR-NAND的FAT16分区。
3DS中NAND TWL FAT分区的卷标为"TWL",CTR FAT分区为"CTR"。TWL分区的偏移和大小存储在MBR分区表中,而CTR分区表信息存在NAND NCSD头部。CTR-NAND分区的0扇面包含一个TWL-NAND分区的MBR分区表,而MBR的签名在+0x1fe位置。


以上除过TWLP,没有一个NAND物理分区可以使用ARM11直接读取。CTR/TWL的NAND文件系统只能当exheader访问控制描述符启用时候访问。对于零售版机器中的[[NCCH#CXI|CXI]]进程,CTR/TWL的NAND描述符一般都是未启用的状态。ARM11只能将"nand:/rw/"挂载为"nandrw"的[[FS:OpenArchive|归档]],而"nand:/ro/"则挂载为如下的nandro归档。
NAND 分区的扇面被写之前,只包含明文的0x00或0xFF bytes.
 
除TWLP,以上NAND物理分区均不能使用ARM11直接读取。CTR/TWL NAND文件系统只能当exheader访问控制描述符启用时候访问。对于零售版机器中的[[NCCH#CXI|CXI]]进程,CTR/TWL的NAND描述符一般都是未启用的状态。ARM11只能将"nand:/rw/"挂载为"nandrw"的[[FS:OpenArchive|档案]],而"nand:/ro/"则挂载为如下的nandro档案。


=CTR分区=
=CTR分区=
Line 86: Line 88:
  ├── [[nandrw/shared|shared]]
  ├── [[nandrw/shared|shared]]
  └── [[nandrw/sys|sys]]
  └── [[nandrw/sys|sys]]
    ├── [[nandrw/sys/lgy.log|lgy.log]]
     ├── [[nandrw/sys/LocalFriendCodeSeed_B|LocalFriendCodeSeed_B]]
     ├── [[nandrw/sys/LocalFriendCodeSeed_B|LocalFriendCodeSeed_B]]
     ├── [[nandrw/sys/native.log|native.log]]
     ├── [[nandrw/sys/native.log|native.log]]
Line 97: Line 100:
  │  └── <ID0>
  │  └── <ID0>
  │      ├── [[Extdata|extdata]]           
  │      ├── [[Extdata|extdata]]           
  │      └── [[System SaveData|sysdata]] (NAND存档存在本目录下的"<SaveID-Low>/<SaveID-High>",<SaveID-High>的"High"是文件名)
  │      └── [[System SaveData|sysdata]]
  ├── [[Title Database|dbs]]
  ├── [[Title Database|dbs]]
├── [[nand/fixdata|fixdata]]
│  └── [[nand/fixdata/sysdata|sysdata]]
  ├── private
  ├── private
  │  └── [[nand/private/movable.sed|movable.sed]]
  │  └── [[nand/private/movable.sed|movable.sed]]
  ├── [[nand/ro|ro]]
  ├── [[nand/ro|ro]]
  ├── [[nand/rw|rw]]
  ├── [[nand/rw|rw]]
  ├── [[nand/ticket|ticket]]
  ├── [[nand/ticket|ticket]] (This directory is empty since tickets are stored in [[Title Database|ticket.db]])
  ├── [[Title Data Structure|title]]
  ├── [[Title Data Structure|title]]
  └── [[nand/tmp|tmp]]
  └── [[nand/tmp|tmp]] (This is usually empty, even when installation for a system update still needs [[AMNet:FinishInstallToMedia|finalized]])
 


=TWL分区=
=TWL分区=
Line 116: Line 122:
  twln
  twln
  ├── [[twln/import/|import]]
  ├── [[twln/import/|import]]
├── [[twln/log/|log]]
│  ├── [[twln/log/inspect.log|inspect.log]]
│  └── [[twln/log/product.log|product.log]]
  ├── [[twln/shared1/|shared1]]
  ├── [[twln/shared1/|shared1]]
  ├── [[twln/shared2/|shared2]]
  ├── [[twln/shared2/|shared2]]
  │  └── [[twln/shared2/0000|0000]]
  │  └── [[twln/shared2/0000|0000]]
  ├── [[twln/sys|sys]]
  ├── [[twln/sys|sys]]
  │  └── [[twln/sys/TWLFontTable.dat|TWLFontTable.dat]]
  │  ├── [[twln/sys/TWLFontTable.dat|TWLFontTable.dat]]
│  └── [[twln/sys/log/|log]]
│      ├── [[twln/sys/log/inspect.log|inspect.log]]
│      └── [[twln/sys/log/product.log|product.log]]
  ├── [[twln/ticket/|ticket]]
  ├── [[twln/ticket/|ticket]]
  ├── [[twln/title/|title]]
  ├── [[twln/title/|title]]