Second release of kindlepid and kindlefix

With needed prc library mistakenly left off last commit
This commit is contained in:
Igor Skochinsky
2009-03-10 02:10:10 +00:00
committed by Apprentice Alf
parent fa62e11f8c
commit a186ae1c5a
4 changed files with 585 additions and 13 deletions

View File

@@ -1,5 +1,16 @@
#!/usr/bin/python
# Mobipocket PID calculator v0.2 for Amazon Kindle.
# Copyright (c) 2007, 2009 Igor Skochinsky <skochinsky@mail.ru>
# History:
# 0.1 Initial release
# 0.2 Added support for generating PID for iPhone (thanks to mbp)
import sys, binascii
if sys.hexversion >= 0x3000000:
print "This script is incompatible with Python 3.x. Please install Python 2.6.x from python.org"
sys.exit(2)
letters = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789"
def crc32(s):
@@ -37,9 +48,25 @@ def pidFromSerial(s, l):
return pid
print "Mobipocket PID calculator for Amazon Kindle. Copyright (c) 2007 Igor Skochinsky <skochinsky@mail.ru>"
print "Mobipocket PID calculator for Amazon Kindle. Copyright (c) 2007, 2009 Igor Skochinsky"
if len(sys.argv)>1:
pid = pidFromSerial(sys.argv[1],7)+"*"
print "Mobipocked PID for Kindle serial# "+sys.argv[1]+" is "+checksumPid(pid)
serial = sys.argv[1]
if len(serial)==16:
if serial.startswith("B001"):
print "Kindle 1 serial number detected"
elif serial.startswith("B002"):
print "Kindle 2 serial number detected"
else:
print "Warning: unrecognized serial number. Please recheck input."
sys.exit(1)
pid = pidFromSerial(serial,7)+"*"
print "Mobipocked PID for Kindle serial# "+serial+" is "+checksumPid(pid)
elif len(serial)==40:
print "iPhone serial number (UDID) detected"
pid = pidFromSerial(serial,8)
print "Mobipocked PID for iPhone serial# "+serial+" is "+checksumPid(pid)
else:
print "Warning: unrecognized serial number. Please recheck input."
sys.exit(1)
else:
print "Usage: kindlepid.py <Kindle Serial Number>"
print "Usage: kindlepid.py <Kindle Serial Number>/<iPhone/iPod Touch UDID>"