In dit artikel beschrijft de auteur hoe een ongebruikte Kindle Basic (10e generatie) is omgetoverd tot een digitale fotolijst met behulp van AI-agents. Na mislukte pogingen met modellen als GPT-5.6 Sol, Fable 5.1 en Opus 5.5, bleek GPT-6 Astra in staat om de Kindle te jailbreaken door gebruik te maken van bestaande open-source projecten.
De auteur ontwikkelde KindleCTL, een set tools om commando's vanaf een Mac te verzenden en aangepaste software te installeren. Een cruciaal onderdeel van het proces was het opzetten van een feedbackloop, waardoor de AI-agent direct toegang had tot diagnostische logs en remote screen captures. Dit stelde de agent in staat om autonoom fouten te herstellen, waaronder een specifiek probleem met het verversen van het fysieke E-ink display.
Het uiteindelijke resultaat is een functionerende slideshow-app, geschreven in C en Python, die foto's toont zonder dat er een constante wifi-verbinding nodig is.
GPT-6 Astra hielp me mijn Kindle te jailbreaken
Mijn Kindle lag ongebruikt in de kast, dus ik besloot te kijken of AI me kon helpen om er een nieuwe functie voor te vinden. Ik wilde een aangepaste app maken die voor verschillende doeleinden gebruikt kon worden en die aangestuurd kon worden door een AI-agent op mijn MacBook.
Ik begon met een klein doel: mijn eigen afbeelding gebruiken als screensaver van de Kindle. Toen dat werkte, vroeg ik de agent om een app te bouwen die door een collectie foto's kon bladeren.
We noemden het project KindleCTL. Op mijn Kindle open ik "Photo Slideshow" vanuit hetzelfde scherm waar ik mijn boeken kies. De app bladert door tien foto's en toont elke foto gedurende vier minuten. Wanneer ik wil lezen, verlaat ik de diavoorstelling en keer ik terug naar mijn boeken.
Om met de coding-agents te werken, gebruikte ik Codex en T3 Code op mijn Mac.
Ik probeerde eerst GPT-5.6 Sol met de reasoning effort ingesteld op 'Extra High'. Het model schreef code om verbinding te maken met de Kindle, maar kon een fout niet oplossen die het opslaan van gegevens op het apparaat verhinderde. Daarna probeerde ik Fable 5.1 en Opus 5.5, maar de cybersecurity-waarborgen van Anthropic blokkeerden elke poging na twee prompts. Uiteindelijk probeerde ik GPT-6 Astra met de reasoning effort ingesteld op 'High'. Hiermee waren we in staat de Kindle te jailbreaken.
We gebruikten bestaande jailbreak-code als referentie om onze eigen tools te bouwen voor het draaien van aangepaste software op de Kindle. Vervolgens hebben we de slideshow-app gemaakt en geïnstalleerd.
De slideshow doorliep de geautomatiseerde controles op mijn Mac zonder problemen, maar bij het wisselen van foto's op de Kindle bleven er sporen van het vorige beeld op het scherm staan. De tests hadden niet opgemerkt hoe het fysieke display ververste. De stap van het passeren van tests naar iets dat ik daadwerkelijk kon gebruiken, bleek het interessantste deel van het experiment.
Hieronder volgt het proces van een ongebruikte Kindle naar een werkende fotolijst, beginnend bij de verbinding van de agent.
De agent verbinden met de Kindle
Ik begon in een lege projectmap met een Kindle Basic van de 10e generatie. Ik gaf de agent het netwerkadres en de apparaatgegevens. Er was geen USB-verbinding, dus de volledige installatie vond plaats via wifi.
Vanaf dat punt moesten we toegang instellen om eigen software op de Kindle te kunnen draaien.
De poging met GPT-5.6 Sol kwam tot het laden van een helper op de Kindle, maar het programma dat deze helper moest starten, gaf nooit aan dat het klaar was voor uitvoering. Het kon geen bestandssysteem vinden waar inhoud kon worden opgeslagen.
De pogingen met Fable 5.1 en Opus 5.5 werden beide geblokkeerd door de cybersecurity-waarborgen van Anthropic na twee prompts. Daarna probeerde ik GPT-6 Astra. Ik vroeg expliciet om de benodigde aangepaste software voor persoonlijk gebruik te bouwen en inspiratie te putten uit bestaande open-source projecten.
We pasten de bestaande jailbreak van SpiderCat aan, uitgebracht door sparklerfish en de KindleModding-community, en bouwden daar de aangepaste tools genaamd KindleCTL omheen.
- Wat we hebben gebouwd: Tools om commando's vanaf mijn Mac te verzenden, bestanden over te zetten en fouten op de Kindle te onderzoeken.
- Wat er kapot ging: Onze launcher crashte voordat deze kon starten. We sporen dit terug naar een compatibiliteitsprobleem met de oudere systeemsoftware van de Kindle en hebben de manier waarop de launcher was gebouwd aangepast.
- Hoe we dit controleerden: We maakten verbinding met administrator-toegang, transfererden bestanden in beide richtingen en toonden tekst. Later hebben we geverifieerd dat de toegang nog steeds werkte na een herstart.
De feedbackloop als gamechanger
In het begin kon de agent wel verbinding maken met de Kindle, maar kon hij geen gegevens weergeven. Om dit te debuggen, vroeg de agent mij om foto's van het scherm van de Kindle. Ik maakte foto's met mijn telefoon en deelde deze met de agent op mijn Mac.
Dit werd tijdrovend. Omdat de agent verbonden was met de Kindle, vroeg ik me af waarom hij deze informatie niet zelf kon verkrijgen. Ik vroeg hem om een feedbackloop in te richten, zodat hij toegang had tot logs zonder dat ik screenshots hoefde te delen.
De agent stelde een persistente diagnostische verbinding in, waardoor hij fouten kon verzamelen en fixes kon testen zonder dat ik elke keer een pakket hoefde te downloaden en opnieuw te openen. Later voegden we remote screen captures toe, zodat de agent ook kon inspecteren wat de Kindle precies weergaf.
Dit was het keerpunt waardoor de agent wijzigingen op de automatische piloot kon blijven implementeren. Uit de redeneringssporen bleek dat hij zelf uitzocht welke mappen een herstart overleefden en welke externe gegevens konden opslaan.
Ik was verrast dat de agent dit niet uit zichzelf had voorgesteld. Zodra ik echter vroeg om een feedbackloop, stelde hij deze in en kon hij fixes testen zonder mijn hulp.
Het grootste deel van de code is geschreven in Python. De launcher en de slideshow van de Kindle zijn geschreven in C, waarbij shell-scripts de installatie en apparaatbesturing afhandelden.
Nu de verbinding werkte, vroeg ik de agent om eerst een kleine test te doen: een afbeelding overzetten en deze instellen als screensaver van de Kindle. Ik controleerde of de afbeelding correct verscheen en of het wekken van de Kindle het normale startscherm terugbracht. Toen dat werkte, vroeg ik om de slideshow-app.
De slideshow implementeren
Ik vroeg de agent om een herhalende slideshow van tien foto's, inclusief een 'Exit'-knop. Elke foto moest in het scherm passen met behoud van de originele beeldverhouding.
De dia's wisselden wel, maar de overgangen waren niet vloeiend. Ik vroeg de agent dit te onderzoeken. Met de feedbackloop die al actief was, analyseerde de agent het probleem en maakte gebruik van het ingebouwde schermverversingsmechanisme van de Kindle om het vorige beeld te wissen na elke wisseling.
De screen captures toonden volledige beelden, maar konden de sporen op het fysieke display niet onthullen. Na de aanpassing van de verversing controleerde ik de Kindle en bevestigde dat elke foto er schoon uitzag.
Ik heb de duur dat elke foto op het scherm blijft staan en het helderheidsniveau aangepast. Als de Kindle in slaapstand gaat, vervolgt de slideshow waar hij was gebleven zodra hij weer wordt gewekt.
Voorlopig gebruik ik mijn Mac om de foto's en de timing van de slideshow te wijzigen. De foto's blijven op de Kindle opgeslagen, waardoor de slideshow ook zonder wifi werkt. In de toekomst zouden we bedieningselementen kunnen toevoegen om de timing direct op de Kindle aan te passen, of foto's direct vanaf een telefoon of ander apparaat te verzenden.
Wat ik heb geleerd
De volgende keer zou ik de feedbackloop vanaf het begin instellen, zodat de agent direct logs kan lezen, screen captures kan inspecteren en fixes op het apparaat kan testen.
De Kindle staat nu op onze houten plank, waar we hem elke dag als fotolijst gebruiken. Ik begon uit nieuwsgierigheid naar wat AI me kon helpen doen met een ongebruikt apparaat. Nu heb ik een app voor mijn foto's die werkt zoals ik vroeg, plus de tools om verder te experimenteren met de Kindle.
***
Disclaimer: Dit was een persoonlijk experiment op mijn eigen Kindle, geen stap-voor-stap handleiding voor het jailbreaken. Experimenteer alleen met apparaten die je zelf bezit of waarvoor je expliciete toestemming hebt om wijzigingen aan te brengen.
GPT-6 Astra hielp me mijn Kindle te jailbreaken
Mijn Kindle lag ongebruikt in de kast, dus ik besloot te kijken of AI me kon helpen om er een nieuwe functie voor te vinden. Ik wilde een aangepaste app maken die voor verschillende doeleinden gebruikt kon worden en die aangestuurd kon worden door een AI-agent op mijn MacBook.
Ik begon met een klein doel: mijn eigen afbeelding gebruiken als screensaver van de Kindle. Toen dat werkte, vroeg ik de agent om een app te bouwen die door een collectie foto's kon bladeren.
We noemden het project KindleCTL. Op mijn Kindle open ik "Photo Slideshow" vanuit hetzelfde scherm waar ik mijn boeken kies. De app bladert door tien foto's en toont elke foto gedurende vier minuten. Wanneer ik wil lezen, verlaat ik de diavoorstelling en keer ik terug naar mijn boeken.
Om met de coding-agents te werken, gebruikte ik Codex en T3 Code op mijn Mac.
Ik probeerde eerst GPT-5.6 Sol met de reasoning effort ingesteld op 'Extra High'. Het model schreef code om verbinding te maken met de Kindle, maar kon een fout niet oplossen die het opslaan van gegevens op het apparaat verhinderde. Daarna probeerde ik Fable 5.1 en Opus 5.5, maar de cybersecurity-waarborgen van Anthropic blokkeerden elke poging na twee prompts. Uiteindelijk probeerde ik GPT-6 Astra met de reasoning effort ingesteld op 'High'. Hiermee waren we in staat de Kindle te jailbreaken.
We gebruikten bestaande jailbreak-code als referentie om onze eigen tools te bouwen voor het draaien van aangepaste software op de Kindle. Vervolgens hebben we de slideshow-app gemaakt en geïnstalleerd.
De slideshow doorliep de geautomatiseerde controles op mijn Mac zonder problemen, maar bij het wisselen van foto's op de Kindle bleven er sporen van het vorige beeld op het scherm staan. De tests hadden niet opgemerkt hoe het fysieke display ververste. De stap van het passeren van tests naar iets dat ik daadwerkelijk kon gebruiken, bleek het interessantste deel van het experiment.
Hieronder volgt het proces van een ongebruikte Kindle naar een werkende fotolijst, beginnend bij de verbinding van de agent.
De agent verbinden met de Kindle
Ik begon in een lege projectmap met een Kindle Basic van de 10e generatie. Ik gaf de agent het netwerkadres en de apparaatgegevens. Er was geen USB-verbinding, dus de volledige installatie vond plaats via wifi.
Vanaf dat punt moesten we toegang instellen om eigen software op de Kindle te kunnen draaien.
De poging met GPT-5.6 Sol kwam tot het laden van een helper op de Kindle, maar het programma dat deze helper moest starten, gaf nooit aan dat het klaar was voor uitvoering. Het kon geen bestandssysteem vinden waar inhoud kon worden opgeslagen.
De pogingen met Fable 5.1 en Opus 5.5 werden beide geblokkeerd door de cybersecurity-waarborgen van Anthropic na twee prompts. Daarna probeerde ik GPT-6 Astra. Ik vroeg expliciet om de benodigde aangepaste software voor persoonlijk gebruik te bouwen en inspiratie te putten uit bestaande open-source projecten.
We pasten de bestaande jailbreak van SpiderCat aan, uitgebracht door sparklerfish en de KindleModding-community, en bouwden daar de aangepaste tools genaamd KindleCTL omheen.
- Wat we hebben gebouwd: Tools om commando's vanaf mijn Mac te verzenden, bestanden over te zetten en fouten op de Kindle te onderzoeken.
- Wat er kapot ging: Onze launcher crashte voordat deze kon starten. We sporen dit terug naar een compatibiliteitsprobleem met de oudere systeemsoftware van de Kindle en hebben de manier waarop de launcher was gebouwd aangepast.
- Hoe we dit controleerden: We maakten verbinding met administrator-toegang, transfererden bestanden in beide richtingen en toonden tekst. Later hebben we geverifieerd dat de toegang nog steeds werkte na een herstart.
De feedbackloop als gamechanger
In het begin kon de agent wel verbinding maken met de Kindle, maar kon hij geen gegevens weergeven. Om dit te debuggen, vroeg de agent mij om foto's van het scherm van de Kindle. Ik maakte foto's met mijn telefoon en deelde deze met de agent op mijn Mac.
Dit werd tijdrovend. Omdat de agent verbonden was met de Kindle, vroeg ik me af waarom hij deze informatie niet zelf kon verkrijgen. Ik vroeg hem om een feedbackloop in te richten, zodat hij toegang had tot logs zonder dat ik screenshots hoefde te delen.
De agent stelde een persistente diagnostische verbinding in, waardoor hij fouten kon verzamelen en fixes kon testen zonder dat ik elke keer een pakket hoefde te downloaden en opnieuw te openen. Later voegden we remote screen captures toe, zodat de agent ook kon inspecteren wat de Kindle precies weergaf.
Dit was het keerpunt waardoor de agent wijzigingen op de automatische piloot kon blijven implementeren. Uit de redeneringssporen bleek dat hij zelf uitzocht welke mappen een herstart overleefden en welke externe gegevens konden opslaan.
Ik was verrast dat de agent dit niet uit zichzelf had voorgesteld. Zodra ik echter vroeg om een feedbackloop, stelde hij deze in en kon hij fixes testen zonder mijn hulp.
Het grootste deel van de code is geschreven in Python. De launcher en de slideshow van de Kindle zijn geschreven in C, waarbij shell-scripts de installatie en apparaatbesturing afhandelden.
Nu de verbinding werkte, vroeg ik de agent om eerst een kleine test te doen: een afbeelding overzetten en deze instellen als screensaver van de Kindle. Ik controleerde of de afbeelding correct verscheen en of het wekken van de Kindle het normale startscherm terugbracht. Toen dat werkte, vroeg ik om de slideshow-app.
De slideshow implementeren
Ik vroeg de agent om een herhalende slideshow van tien foto's, inclusief een 'Exit'-knop. Elke foto moest in het scherm passen met behoud van de originele beeldverhouding.
De dia's wisselden wel, maar de overgangen waren niet vloeiend. Ik vroeg de agent dit te onderzoeken. Met de feedbackloop die al actief was, analyseerde de agent het probleem en maakte gebruik van het ingebouwde schermverversingsmechanisme van de Kindle om het vorige beeld te wissen na elke wisseling.
De screen captures toonden volledige beelden, maar konden de sporen op het fysieke display niet onthullen. Na de aanpassing van de verversing controleerde ik de Kindle en bevestigde dat elke foto er schoon uitzag.
Ik heb de duur dat elke foto op het scherm blijft staan en het helderheidsniveau aangepast. Als de Kindle in slaapstand gaat, vervolgt de slideshow waar hij was gebleven zodra hij weer wordt gewekt.
Voorlopig gebruik ik mijn Mac om de foto's en de timing van de slideshow te wijzigen. De foto's blijven op de Kindle opgeslagen, waardoor de slideshow ook zonder wifi werkt. In de toekomst zouden we bedieningselementen kunnen toevoegen om de timing direct op de Kindle aan te passen, of foto's direct vanaf een telefoon of ander apparaat te verzenden.
Wat ik heb geleerd
De volgende keer zou ik de feedbackloop vanaf het begin instellen, zodat de agent direct logs kan lezen, screen captures kan inspecteren en fixes op het apparaat kan testen.
De Kindle staat nu op onze houten plank, waar we hem elke dag als fotolijst gebruiken. Ik begon uit nieuwsgierigheid naar wat AI me kon helpen doen met een ongebruikt apparaat. Nu heb ik een app voor mijn foto's die werkt zoals ik vroeg, plus de tools om verder te experimenteren met de Kindle.
***
Disclaimer: Dit was een persoonlijk experiment op mijn eigen Kindle, geen stap-voor-stap handleiding voor het jailbreaken. Experimenteer alleen met apparaten die je zelf bezit of waarvoor je expliciete toestemming hebt om wijzigingen aan te brengen.