Difference between revisions of "闪存文件系统"

From 3dbrew
Jump to navigation Jump to search
m (update to follow English page)
m (update to follow english one)
Line 12: Line 12:
  
 
===分区===
 
===分区===
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
 
!  名称
 
!  名称
 +
!  偏移
 +
!  长度
 
!  注释
 
!  注释
 +
|-
 +
|  twln
 +
|  0x00012E00
 +
|  0x08FB5200
 +
|  TWL-NAND的FAT16文件系统(DSi)
 +
|-
 +
|  twlp
 +
|  0x09011A00
 +
|  0x020B6600
 +
|  TWL-NAND照片的FAT12文件系统(DSi)
 +
|-
 +
 +
|  0x0B100000
 +
|  0x00030000
 +
|  一般在这段全部是零
 
|-
 
|-
 
|  firm0
 
|  firm0
固件分区
+
0x0B130000
 +
|  0x00400000
 +
|  [[FIRM|固件]]分区
 
|-
 
|-
 
|  firm1
 
|  firm1
| 固件分区
+
| 0x0B530000
 +
|  0x00400000
 +
|  [[FIRM|固件]]分区(是备份,和上面一样)
 +
|-
 +
 +
|  0x0B930000
 +
|  0x2F5D0000
 +
|  CTR-NAND分区(3DS)
 
|-
 
|-
 
|  nand
 
|  nand
CTR-NAND文件系统。(N3DS)
+
0x0B95CA00
|-
+
0x2F3E3600
twln
+
CTR-NAND的FAT16文件系统
TWL-NAND文件系统,(NDSi)
 
 
|}
 
|}
 +
3DS中NAND的TWL的FAT分区FAT卷标名"TWL",而CTR的FAT分区则是"CTR"。TWL分区的偏移和长度存在MBR分区表,而CTR分区表信息存在NAND的NCSD头。CTR-NAND分区的扇面0有一个MBR分区表,而MBR的签名在+0x1fe位置。在这个分区表中只有一个分区就是CTR-NAND的FAT16分区。
 +
 +
以上除过TWLP,没有一个NAND物理分区可以使用ARM11直接读取。CTR/TWL的NAND文件系统只能当exheader访问控制描述符启用时候访问。对于零售版机器中的[[NCCH#CXI|CXI]]进程,CTR/TWL的NAND描述符一般都是未启用的状态。ARM11只能将"nand:/rw/"挂载为"nandrw"的[[FS:OpenArchive|归档]],而"nand:/ro/"则挂载为如下的nandro归档。
  
 
=CTR-NAND文件分区=
 
=CTR-NAND文件分区=

Revision as of 12:26, 1 April 2013

N3DS的NAND闪存芯片容量为1GB。

格式

任天堂3DS的闪存文件格式目前尚未公开,闪存芯片可以通过主板上的输出针脚进行内容提取,这已经成功了。然而提取出来的数据被加密了,不解密无法理解。

文件系统

每个NAND分区皆为FAT文件系统。

加密

NAND文件系统使用AES-CTR加密。NAND中TWL区域使用TWL的NAND密码键,而CTR区域使用CTR的NAND密码键。用于CTR-NAND扇区的密码键是由NCSD扇区的文件系统类型决定的。TWL/CTR的NAND区域在NCSD头中指定。NAND的最开始0x0B100000字节使用TWL密码键,在0x00012E00之前则只有MBR分区表使用TWL密码键(那个区域包括如下所示的TWL扇区)。

分区

名称 偏移 长度 注释
twln 0x00012E00 0x08FB5200 TWL-NAND的FAT16文件系统(DSi)
twlp 0x09011A00 0x020B6600 TWL-NAND照片的FAT12文件系统(DSi)
0x0B100000 0x00030000 一般在这段全部是零
firm0 0x0B130000 0x00400000 固件分区
firm1 0x0B530000 0x00400000 固件分区(是备份,和上面一样)
0x0B930000 0x2F5D0000 CTR-NAND分区(3DS)
nand 0x0B95CA00 0x2F3E3600 CTR-NAND的FAT16文件系统

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

以上除过TWLP,没有一个NAND物理分区可以使用ARM11直接读取。CTR/TWL的NAND文件系统只能当exheader访问控制描述符启用时候访问。对于零售版机器中的CXI进程,CTR/TWL的NAND描述符一般都是未启用的状态。ARM11只能将"nand:/rw/"挂载为"nandrw"的归档,而"nand:/ro/"则挂载为如下的nandro归档。

CTR-NAND文件分区