injectdol.py 618 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/env python2
  2. import sys, os, os.path
  3. import pywii as wii
  4. wii.loadkeys()
  5. if len(sys.argv) != 4:
  6. print "Usage:"
  7. print " python %s <encrypted ISO> <partition number> <dol to inject>"%sys.argv[0]
  8. sys.exit(1)
  9. iso_name, partno, dol_name = sys.argv[1:4]
  10. partno = int(partno)
  11. doldata = open(dol_name, "rb").read()
  12. disc = wii.WiiDisc(iso_name)
  13. disc.showinfo()
  14. part = wii.WiiCachedPartition(disc, partno, cachesize=32, debug=False)
  15. partdata = wii.WiiPartitionData(part)
  16. partdata.replacedol(doldata)
  17. part.flush()
  18. part.update()
  19. part.tmd.null_signature()
  20. part.tmd.brute_sha()
  21. part.updatetmd()
  22. part.showinfo()