HopHop

Supprimer les DRM des ebooks Kindle sous Linux

calibre dedrm epub kindle linux ebook drm tutoriel

Comment récupérer ses ebooks Kindle et les convertir en EPUB sous Linux, sans Windows ni liseuse Kindle ? Après pas mal de galères, voici la méthode qui fonctionne en 2024.

Note : Cet article a été publie à l'origine sur mon ancien blog le 19 octobre 2024. Il date donc de cette époque même si je le republie ici.

Le problème

Il y a quelque temps, j'ai réalisé que je possédais plusieurs dizaines de livres Kindle achetés par facilité sur Amazon. Je les lisais sur mon téléphone via l'application Android, mais ayant acquis une nouvelle liseuse (non Kindle), j'ai naturellement voulu récupérer ces livres et les convertir en EPUB pour pouvoir en profiter sur n'importe quel appareil.

Mes contraintes étaient les suivantes :

  • Je travaille exclusivement sous Linux (pas de Windows)
  • Je ne possède pas de liseuse Kindle

L'ancienne méthode (qui ne fonctionne plus)

Auparavant, je me débarrassais des DRM à l'aide de Calibre et du fork noDRM du plugin DeDRM. Sous Linux, il fallait utiliser Wine et installer une vieille version de l'application Kindle (la 1.17 si je me souviens bien).

Mauvaise nouvelle : en réessayant récemment, j'ai découvert avec effroi que cette vieille version ne fonctionnait plus. Elle affichait un message indiquant que l'ordinateur n'était pas connecté à Internet. Après quelques recherches, j'ai compris qu'Amazon avait décommissionné les anciennes API utilisées par cette version.

J'ai tenté de faire fonctionner les nouvelles versions de l'application Kindle sous Wine, mais sans succès. Elles plantent toutes avec l'erreur suivante :

0024:err:module:loader_init "KRFDynamic.dll" failed to initialize, aborting

Après plusieurs heures d'essais-erreurs, j'ai fini par trouver une solution viable. J'ai tellement galéré que je me suis dit qu'un article s'imposait !

La solution : émulation Android

La méthode consiste à :

  1. Installer un émulateur Android (Genymotion)
  2. Configurer une image Android 11 personnalisée
  3. Installer un module d'émulation ARM pour l'application Kindle
  4. Installer une version spécifique de l'application Kindle Android
  5. Télécharger tous les livres dans l'application
  6. Récupérer les fichiers KFX via ADB
  7. Extraire la configuration de l'application Kindle
  8. Importer cette configuration dans le plugin DeDRM de Calibre
  9. Supprimer les DRM de tous les livres !

Étape 1 : Installation de Genymotion et Android 11

J'ai utilisé Genymotion comme émulateur. Il nécessite la création d'un compte, mais offre plusieurs avantages :

  • Disponible dans la plupart des dépôts Linux
  • Interface intuitive et facile à prendre en main
  • Images toutes rootées avec ADB simple à utiliser

Une fois Genymotion installé, créez un Custom Phone avec Android 11.

Étape 2 : Installation du support ARM (libhoudini)

À ce stade, il est impossible d'installer l'application Amazon Kindle car elle nécessite l'architecture ARM. Pour contourner ce problème, il faut installer libhoudini en suivant les instructions de ce dépôt :

👉 https://github.com/niizam/Genymotion_A11_libhoudini

L'installation se fait via une simple commande ADB et se déroule sans difficulté.

Étape 3 : Installation de l'application Kindle

Important : N'installez pas la dernière version de l'application Kindle ! Les versions récentes stockent les clés de chiffrement dans un fichier crypté impossible à décrypter.

J'ai utilisé la version 8.39 de 2022. Le fichier APK kindle-8-39-0-100-1-3-237316-0.apk est disponible sur Uptodown.

Pour l'installer, il suffit de glisser-déposer le fichier APK sur la fenêtre de l'émulateur. L'installation se fait automatiquement.

Une fois l'application installée, connectez-vous à votre compte Amazon et téléchargez tous vos livres un par un.

Étape 4 : Récupération des fichiers via ADB

Assurez-vous qu'ADB est installé sur votre système, puis lancez Genymotion avec l'image Android 11.

Exécutez les commandes suivantes dans un terminal :

# Récupérer les livres
adb pull /storage/self/primary/Android/data/com.amazon.kindle .

# Récupérer la base de données des clés
adb shell "su -c 'cat /data/data/com.amazon.kindle/databases/map_data_storage.db'" > map_data_storage.db

Étape 5 : Configuration du plugin DeDRM dans Calibre

Après avoir installé le plugin DeDRM et activé le plugin From KFX :

  1. Lancez Calibre
  2. Allez dans PréférencesExtensions
  3. Trouvez DeDRMPersonnaliser l'extension
  4. Cliquez sur Kindle for Android ebooks
  5. Cliquez sur le bouton +
  6. Ajoutez le fichier map_data_storage.db récupéré précédemment
  7. Sauvegardez les changements

Étape 6 : Import des livres dans Calibre

  1. Cliquez sur la flèche à côté de Ajouter des livres
  2. Choisissez Ajouter à partir des dossiers et sous-dossiers
  3. Sélectionnez le dossier où vous avez exécuté adb pull (il contient les fichiers KFX)

Si tout se passe bien, tous vos livres sont maintenant importés dans Calibre, libérés de leurs DRM ! Il ne reste plus qu'à les convertir en EPUB si nécessaire.


Conclusion

Cette méthode demande un peu de préparation, mais elle fonctionne parfaitement sous Linux sans avoir besoin de Windows ni de liseuse Kindle physique.

En espérant avoir pu aider quelqu'un dans la même situation !

Note légale : Cet article est destiné à un usage personnel pour les livres que vous avez légitimement achetés. Le contournement des DRM peut être illégal dans certaines juridictions.

Article suivant