--- /dev/null
+#!/bin/python
+import glob
+import os
+import sys
+
+def main():
+ if len(sys.argv) < 2:
+ print 'invalid directory specified'
+ return
+
+ for i in os.listdir(sys.argv[1]):
+ tid_high = i[0:8]
+ tid_low = i[8:16]
+ outdir = os.path.join('.', tid_high, tid_low, 'content')
+ if not os.path.exists(outdir):
+ os.makedirs(outdir)
+ cia = os.path.join(sys.argv[1], i)
+ os.system("./ctrtool --tmd=" + outdir + "/00000000.tmd --contents=" + outdir + "/contents '" + cia + "'")
+ items = glob.glob(outdir + '/contents.*')
+ for item in items:
+ cid = item[-8:]
+ os.rename(item, os.path.join(outdir,cid + '.app'))
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
plutooo
Normmatt
Bond697
-who helped me create XDS
\ No newline at end of file
+who helped me create XDS
+
+To build XDS, first build external/gl3w
+On Windows, use windows/xds.sln
+On OSX, install libglfw3 (Makefile assumes its installed with MacPorts), then
+run `make`
+
+To generate a NAND dump of the firmware, decrypt all CIAs for the firmware and
+run `python NAND/title/build_nand.py dir/to/cias` and the decrypted firmware
+will be placed into the correct directories. You also need ctrtool for this.