11# Taken from KindleTool
2- # Commit 8113b16
2+ # Commit 952c1fe
33model_tuples = [
44 ('Kindle1' , 0x01 , 'ATVPDKIKX0DER' ),
55 ('Kindle2US' , 0x02 , 'A3UN6WX5RRO2AG' ),
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
192197import json
@@ -202,7 +207,7 @@ def sn_ord(char):
202207def 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
208213def 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
0 commit comments