Skip to content

Commit 662d831

Browse files
committed
Update convert-kindle-serials.py to match models.json
Since convert-kindle-serials.py was last updated, several manual changes to models.json have occured. This commit incorporates those changes into the convert-kindle-serials.py script, such that it can be used once more to generate models.json. (the only reason why models.json is different is because of extra newline)
1 parent 7c537b9 commit 662d831

2 files changed

Lines changed: 55 additions & 38 deletions

File tree

static/convert-kindle-serials.py

Lines changed: 54 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Taken from KindleTool
2-
# Commit 8113b16
2+
# Commit 952c1fe
33
model_tuples = [
44
('Kindle1', 0x01, 'ATVPDKIKX0DER'),
55
('Kindle2US', 0x02, 'A3UN6WX5RRO2AG'),
@@ -183,10 +183,15 @@
183183
('KindleColorSoftUnknown_3JT', 0xE5B, 'A2CU9ZQDNZFID4'), # 3JT?
184184
('KindleColorSoftUnknown_3J6', 0xE46, 'A2CU9ZQDNZFID4'), # 3J6?
185185
('KindleColorSoftUnknown_456', 0x10A6, 'A2CU9ZQDNZFID4'), # 456?
186-
('KindleUnknown', 0x00)
186+
('KindleColorSoftUnknown_455', 0x10A5, 'A2CU9ZQDNZFID4'), # 455?
187+
('KindleColorSoftUnknown_4EP', 0x11D7, 'A2CU9ZQDNZFID4'), # 4EP?
188+
('KindleUnknown', 0x00),
187189
]
188190

189-
191+
# Janky Solution to add the kindle x Migu to match the manually updated json.
192+
lineToInsertAfter = list(filter(lambda x: x[0] == "KindleBasic2White", model_tuples))[0]
193+
itemToInsert = ('UNSUPPORTED', 0x2d0, 'UNKNOWN')
194+
model_tuples.insert(model_tuples.index(lineToInsertAfter) + 1, itemToInsert)
190195

191196

192197
import json
@@ -202,7 +207,7 @@ def sn_ord(char):
202207
def serial_to_int(sn):
203208
return ((sn_ord(sn[0]) << 10) + (sn_ord(sn[1]) << 5) + sn_ord(sn[2]))
204209

205-
def get_index(sn_int, factor):
210+
def get_index(sn_int, factor):
206211
return (sn_int >> factor), (sn_int - ((sn_int >> factor) << factor))
207212

208213
def int_to_serial(sn_int):
@@ -234,43 +239,43 @@ def cammelToSpace(text):
234239
"release_firmware": "5.16.20",
235240
"generation_nicknames": ["KT6"],
236241
"amazon_name": "Kindle (11th Generation) - 2024 Release",
237-
"last_firmware": "LATEST",
242+
"last_firmware": "Not Yet Discontinued",
238243
"platform": "Bellatrix",
239244
"board": "Rossini",
240-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>",
245+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.1</a><br/><br/><a href=\"/jailbreaking/AdBreak\">AdBreak 5.18.1 - 5.18.5.0.1</a>",
241246
},
242247
{
243248
"kindletool_names": ["KindlePaperWhite6"],
244249
"release_year": 2024,
245250
"release_firmware": "5.17.0",
246251
"generation_nicknames": ["PW6"],
247252
"amazon_name": "Kindle Paperwhite (12th Generation) - 2024 Release",
248-
"last_firmware": "LATEST",
253+
"last_firmware": "Not Yet Discontinued",
249254
"platform": "Bellatrix4",
250255
"board": "Sangria",
251-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>",
256+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.1</a><br/><br/><a href=\"/jailbreaking/AdBreak\">AdBreak 5.18.1 - 5.18.5.0.1</a>",
252257
},
253258
{
254259
"kindletool_names": ["KindleScribe2"],
255260
"release_year": 2024,
256261
"release_firmware": "5.17.0",
257262
"generation_nicknames": ["KS2"],
258263
"amazon_name": "Kindle Scribe - 2024 Release",
259-
"last_firmware": "LATEST",
264+
"last_firmware": "Not Yet Discontinued",
260265
"platform": "Bellatrix3",
261266
"board": "Pisco",
262-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>",
267+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.1</a>",
263268
},
264269
{
265270
"kindletool_names": ["KindleColorSoft"],
266271
"release_year": 2024,
267272
"release_firmware": "5.18.0",
268273
"generation_nicknames": ["CS"],
269-
"amazon_name": "Kindle Colorsoft (12th Generation)",
270-
"last_firmware": "LATEST",
274+
"amazon_name": "Kindle Colorsoft (1st Generation)",
275+
"last_firmware": "Not Yet Discontinued",
271276
"platform": "Bellatrix4",
272277
"board": "Seabreeze",
273-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>",
278+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.0.2</a>",
274279
},
275280
# Kindle Scribe, released December 2022 on FW 5.16.0
276281
{
@@ -279,10 +284,10 @@ def cammelToSpace(text):
279284
"release_firmware": "5.16.0",
280285
"generation_nicknames": ["KS"],
281286
"amazon_name": "Kindle Scribe (1st Generation)",
282-
"last_firmware": "LATEST",
287+
"last_firmware": "Not Yet Discontinued",
283288
"platform": "Bellatrix3",
284289
"board": "Barolo",
285-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
290+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.1</a><br/><br/><a href=\"/jailbreaking/AdBreak\">AdBreak 5.18.1 - 5.18.5.0.1</a>"
286291
},
287292
# Kindle Basic 4, released October 12 2022 on FW 5.15.0
288293
{
@@ -291,10 +296,10 @@ def cammelToSpace(text):
291296
"release_firmware": "5.15.0",
292297
"generation_nicknames": ["KT5"],
293298
"amazon_name": "Kindle (11th Generation)",
294-
"last_firmware": "LATEST",
299+
"last_firmware": "Not Yet Discontinued",
295300
"platform": "Bellatrix",
296301
"board": "Cava",
297-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
302+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.1</a><br/><br/><a href=\"/jailbreaking/AdBreak\">AdBreak 5.18.1 - 5.18.5.0.1</a>"
298303
},
299304
# Kindle PaperWhite 5, released October 27 2021 on FW 5.14.0
300305
{
@@ -303,10 +308,10 @@ def cammelToSpace(text):
303308
"release_firmware": "5.14.0",
304309
"generation_nicknames": ["PW5", "PW5SE"],
305310
"amazon_name": "Kindle Paperwhite (11th Generation)",
306-
"last_firmware": "LATEST",
311+
"last_firmware": "Not Yet Discontinued",
307312
"platform": "Bellatrix",
308313
"board": "Malbec",
309-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
314+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.1</a><br/><br/><a href=\"/jailbreaking/AdBreak\">AdBreak 5.18.1 - 5.18.5.0.1</a>"
310315
},
311316
# Kindle Oasis 3, released July 24 2019 on FW 5.12.0
312317
{
@@ -315,10 +320,10 @@ def cammelToSpace(text):
315320
"release_firmware": "5.12.0",
316321
"generation_nicknames": ["KOA3", "KOA3W32C"],
317322
"amazon_name": "Kindle Oasis (10th Generation)",
318-
"last_firmware": "LATEST",
323+
"last_firmware": "Not Yet Discontinued",
319324
"platform": "Zelda",
320325
"board": "Stinger",
321-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
326+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.1</a><br/><br/><a href=\"/jailbreaking/AdBreak\">AdBreak 5.18.1+</a>"
322327
},
323328
# Kindle Basic 3, released April 10 2019 on FW 5.1x.y
324329
{
@@ -327,10 +332,10 @@ def cammelToSpace(text):
327332
"release_firmware": "5.1x.y",
328333
"generation_nicknames": ["KT4"],
329334
"amazon_name": "Kindle (10th Generation)",
330-
"last_firmware": "LATEST",
335+
"last_firmware": "Not Yet Discontinued",
331336
"platform": "Rex",
332337
"board": "Moonshine",
333-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
338+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.1</a><br/><br/><a href=\"/jailbreaking/AdBreak\">AdBreak 5.18.1+</a>"
334339
},
335340
# Kindle PaperWhite 4, released November 7 2018 on FW 5.10.0.1/5.10.0.2
336341
{
@@ -339,10 +344,22 @@ def cammelToSpace(text):
339344
"release_firmware": "5.10.0.1/5.10.0.2",
340345
"generation_nicknames": ["PW4"],
341346
"amazon_name": "Kindle Paperwhite (10th Generation)",
342-
"last_firmware": "LATEST",
347+
"last_firmware": "Not Yet Discontinued",
343348
"platform": "Rex",
344349
"board": "Jaeger",
345-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
350+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak < 5.18.1</a><br/><br/><a href=\"/jailbreaking/AdBreak\">AdBreak 5.18.1+</a>"
351+
},
352+
# Kindle x Migu, released 2017 on FW 5.7.2.8 (Based on Android 5.1.1?)
353+
{
354+
"kindletool_names": ["UNSUPPORTED"],
355+
"release_year": 2017,
356+
"release_firmware": "5.7.2.8 (Based on Android 5.1.1?)",
357+
"generation_nicknames": ["KM"],
358+
"amazon_name": "Kindle x Migu",
359+
"last_firmware": "5.7.2.8 (Based on Android 5.1.1?)",
360+
"platform": "Heisenberg",
361+
"board": "Eanab",
362+
"jailbreak": "Runs Android - Try traditional Android JB methods"
346363
},
347364
# Kindle Oasis 2, released winter 2017 on FW 5.9.0.6
348365
{
@@ -354,7 +371,7 @@ def cammelToSpace(text):
354371
"last_firmware": "5.16.2.1.1",
355372
"platform": "Zelda",
356373
"board": "Cognac",
357-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
374+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak</a>"
358375
},
359376
# Kindle Basic 2, released summer 2016 on FW 5.8.0
360377
{
@@ -366,7 +383,7 @@ def cammelToSpace(text):
366383
"last_firmware": "5.16.2.1.1",
367384
"platform": "Heisenberg",
368385
"board": "Eanab",
369-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
386+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak</a>"
370387
},
371388
# Kindle Oasis, released late spring 2016 on FW 5.7.1.1
372389
{
@@ -378,7 +395,7 @@ def cammelToSpace(text):
378395
"last_firmware": "5.16.2.1.1",
379396
"platform": "Duet",
380397
"board": "Whisky",
381-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
398+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak</a>"
382399
},
383400
# Kindle PaperWhite 3, White, appeared w/ FW 5.7.3.1, released summer 2016 on FW 5.7.x?
384401
{
@@ -390,7 +407,7 @@ def cammelToSpace(text):
390407
"last_firmware": "5.16.2.1.1",
391408
"platform": "Wario",
392409
"board": "Muscat",
393-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
410+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak</a>"
394411
},
395412
# Kindle PaperWhite 3, released summer 2015 on FW 5.6.1
396413
{
@@ -402,7 +419,7 @@ def cammelToSpace(text):
402419
"last_firmware": "5.16.2.1.1",
403420
"platform": "Wario",
404421
"board": "Muscat",
405-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
422+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak</a>"
406423
},
407424
# Kindle Voyage, released fall 2014 on FW 5.5.0
408425
{
@@ -414,7 +431,7 @@ def cammelToSpace(text):
414431
"last_firmware": "5.13.6",
415432
"platform": "Wario",
416433
"board": "Icewine",
417-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
434+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak</a>"
418435
},
419436
# Kindle Basic (Pearl, Touch), released fall 2014 on FW 5.6.0
420437
{
@@ -426,7 +443,7 @@ def cammelToSpace(text):
426443
"last_firmware": "5.12.2.2",
427444
"platform": "Wario",
428445
"board": "Bourbon",
429-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
446+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak</a>"
430447
},
431448
# Kindle PaperWhite 2 (black bezel), released fall 2013 on FW 5.4.0
432449
{
@@ -438,7 +455,7 @@ def cammelToSpace(text):
438455
"last_firmware": "5.12.2.2",
439456
"platform": "Wario",
440457
"board": "Pinot",
441-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
458+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak</a>"
442459
},
443460
# Kindle PaperWhite (black bezel), released fall 2012 on FW 5.2.0
444461
{
@@ -450,7 +467,7 @@ def cammelToSpace(text):
450467
"last_firmware": "5.6.1.1",
451468
"platform": "Wario",
452469
"board": "Pinot",
453-
"jailbreak": "<a href=\"WinterBreak\">WinterBreak</a>"
470+
"jailbreak": "<a href=\"/jailbreaking/WinterBreak\">WinterBreak</a>"
454471
},
455472
# Kindle 5 touch
456473
{
@@ -462,7 +479,7 @@ def cammelToSpace(text):
462479
"last_firmware": "5.3.7.3",
463480
"platform": "Yoshi",
464481
"board": "Whitney",
465-
"jailbreak": "LEGACY"
482+
"jailbreak": "<a href=\"https://www.mobileread.com/forums/showthread.php?t=225030\">K5 JailBreak (5.0.x - 5.4.4.2)</a>"
466483
},
467484
# Kindle 4 with a black bezel, released fall 2012
468485
{
@@ -554,7 +571,7 @@ def cammelToSpace(text):
554571
foundGeneration = True
555572
modelData = generation.copy()
556573
break
557-
574+
558575
if (foundGeneration):
559576
break
560577

@@ -563,7 +580,7 @@ def cammelToSpace(text):
563580
continue
564581

565582

566-
583+
567584
del modelData["kindletool_names"]
568585
filtered = tuple(filter(lambda x: x["amazon_name"] == modelData["amazon_name"], newModelMap))
569586
index = newModelMap.index(filtered[0]) if filtered != () else None

static/models.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1136,4 +1136,4 @@
11361136
}
11371137
}
11381138
}
1139-
]
1139+
]

0 commit comments

Comments
 (0)