Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 12-23-2025, 04:35 PM   #1
kbarni
Connoisseur
kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.
 
kbarni's Avatar
 
Posts: 78
Karma: 289042
Join Date: Feb 2025
Device: Kindle PW5
Talking KinAMP - it really whimps the llama's ass!

Ho ho ho! Santa's here I heard you've all been naughty little hackers this year, so here's your christmas present: a fully featured native music player for the jailbroken Kindles!


KinAMP 1.2
It really whimps the llama's ass!

Last update: 26/12/2025

Features
  • MP3, FLAC and WAV support (miniaudio library)
  • Fast and lightweight implementation, fully native C++ and GTK code
  • Background playback
  • Low power consumption (4-5%/hr with backlight and display update off)
  • Optimized for eink displays: minimal redraws, bluetooth and frontlight control
  • Simple playlist management

Activating background playback
Create your playlist in KinAMP, then press the Background button (that looks like a circle near Close). It will close KinAMP and start from the last song in the background.
To stop playing, simply click again on the KinAMP booklet.

Installing

Only for Kindle HF (Firmware 5.16+)!

Download the latest release below (or from Github), and unzip it to the root of your kindle. And don't forget to add some music, too!

Screenshot


Source code here: https://github.com/kbarni/KinAMP/

Changelog
26/12/2025 Version 1.2
- KUAL extension
- Playback time displayed
- Display updates can be disabled
25/12/2025 Version 1.1
- Background playback
- Several bug fixes
23/12/2025 Version 1.0
- First release

Support further development

Please show your support for this project by donating at ko-fi.com/kbarni
All the proceeds will be donated to local NGOs and charities.

Thanks go to:
  • Justin Frankel - for developing Winamp, the original music player that defined our generation!
  • dhdurgee - for the SOX media player, which gave me a few ideas.
  • the Kindle modding community - for the jailbreaks and toolchains
Attached Files
File Type: zip kinamp.zip (610.3 KB, 11 views)

Last edited by kbarni; 12-30-2025 at 01:01 PM.
kbarni is offline   Reply With Quote
Old 12-24-2025, 07:47 AM   #2
mergen3107
Wizard
mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.
 
mergen3107's Avatar
 
Posts: 1,565
Karma: 5000046
Join Date: Feb 2012
Location: Cape Canaveral
Device: Kindle Scribe
Omg, thank you kbarni! We didn’t deserve this gift for sure T_T
I can now finally make one of my Kindles a home jukebox for the family
mergen3107 is offline   Reply With Quote
Advert
Old 12-24-2025, 11:56 AM   #3
kbarni
Connoisseur
kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.
 
kbarni's Avatar
 
Posts: 78
Karma: 289042
Join Date: Feb 2025
Device: Kindle PW5
Small update: ironed out some bugs and added experimental background playback. See OP above.

Please update anyways to this release, as there were some bugs in yesterday's release.
You can also test the new background playback feature.

Feedback is much appreciated (either here, or post a github issue), it will help me ameliorate the app and correct the bugs.

Merry Christmas everyone!

Last edited by kbarni; 12-24-2025 at 12:29 PM.
kbarni is offline   Reply With Quote
Old 12-24-2025, 03:29 PM   #4
mergen3107
Wizard
mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.mergen3107 ought to be getting tired of karma fortunes by now.
 
mergen3107's Avatar
 
Posts: 1,565
Karma: 5000046
Join Date: Feb 2012
Location: Cape Canaveral
Device: Kindle Scribe
Thank you!
Merry Christmas and Happy New Year!

I am going to test it soon (hopefully this weekend).

Special thanks for nostalgia! The name and icons are spot on!
mergen3107 is offline   Reply With Quote
Old 12-26-2025, 01:33 PM   #5
kbarni
Connoisseur
kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.
 
kbarni's Avatar
 
Posts: 78
Karma: 289042
Join Date: Feb 2025
Device: Kindle PW5
KinAMP 1.2 Update
The best way to listen to music for your New Year's Eve party!

New features:
- KUAL extension
- Background playback
- Play time displayed
- Play time can be disabled to save battery

Grab it while hot in OP or on Github
kbarni is offline   Reply With Quote
Advert
Old 12-27-2025, 12:24 PM   #6
muggleMode
Enthusiast
muggleMode began at the beginning.
 
muggleMode's Avatar
 
Posts: 30
Karma: 10
Join Date: May 2022
Device: PW5
Silly question: Can it be used with in-ear USB-C headphones?
muggleMode is offline   Reply With Quote
Old 12-28-2025, 04:41 AM   #7
bozza111
Connoisseur
bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.bozza111 knows the square root of minus one.
 
bozza111's Avatar
 
Posts: 61
Karma: 7542
Join Date: May 2018
Device: KOA2
Great work What an awesome little app and super useful too!

Feature request: support for the m4b file format as it is quite popular for audiobooks!
It can be added using a custom decoder. https://miniaud.io/docs/examples/custom_decoder.html

M4b: "An Audiobook / podcast extension with AAC or ALAC encoded audio in an MPEG-4 container. Both M4A and M4B formats can contain metadata including chapter markers, images, and hyperlinks, but M4B allows "bookmarks" (remembering the last listening spot), whereas M4A does not"
bozza111 is offline   Reply With Quote
Old 12-28-2025, 07:59 AM   #8
kbarni
Connoisseur
kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.
 
kbarni's Avatar
 
Posts: 78
Karma: 289042
Join Date: Feb 2025
Device: Kindle PW5
@muggleMode Kindle doesn't support USB host mode (i.e. you can't connect USB peripherals like keyboard, mouse or audio device).

@bozza111 M4B is a container format, not an encoding format; it can use several encoders, like AAC, MP3, OGG... It needs a decoder library like libfaad (if the format is AAC).

I did some quick tests with faad - the debian bullseye armhf version runs on the Kindle - but it stops after a second of decoding. (while running fine on my laptop)
Anyway, it could be possible to modify sox media player to use faad instead of the sox library:

Code:
LD_LIBRARY_PATH=/mnt/us/M4BPlayer /mnt/us/M4BPlayer/faad -f 2 -b 1 -d -w "$1" |  /usr/bin/gst-launch \
     filesrc location=/dev/stdin \
     ! audio/x-raw-int, endianness='(int)'1234, signed='(boolean)'true, \
        width='(int)'16, depth='(int)'16, rate='(int)'48000, channels='(int)'2 \
     ! queue ! mixersink&
     ;;

Last edited by kbarni; 12-29-2025 at 08:21 AM. Reason: Some progress on M4B file decoding using faad.
kbarni is offline   Reply With Quote
Old 12-30-2025, 06:26 AM   #9
TQHYG
Junior Member
TQHYG began at the beginning.
 
TQHYG's Avatar
 
Posts: 4
Karma: 20
Join Date: Nov 2023
Device: K3,KOA
Hi, I recently cloned your repository and tried to build it using the ARM cross‑compilation toolchain. Running:

Code:
cmake .. -DCMAKE_TOOLCHAIN_FILE=armhf-toolchain.cmake
completed without any errors. However, when I run make, the build fails with the following message:

Code:
/home/tqhyg/Project/KinAMP/music_backend.h:4:10: fatal error: gst/gst.h: No such file or directory
It seems that my cross‑compiler environment does not contain the GStreamer headers.
I believe I have configured the KOX cross‑compilation toolchain correctly according to the documentation, so I’m not sure why this dependency is missing.

Could you please advise what I might be doing wrong, or whether additional steps are required to make GStreamer available in the ARM toolchain?

Thanks in advance for your help!
TQHYG is offline   Reply With Quote
Old 12-30-2025, 12:14 PM   #10
kbarni
Connoisseur
kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.
 
kbarni's Avatar
 
Posts: 78
Karma: 289042
Join Date: Feb 2025
Device: Kindle PW5
Oh, I forgot about it... I added these files long ago to my toolchain. I think I got them from some old gstreamer repo. Anyway, here are the files, just copy it to your toolchain/sysroot/usr/include.

If the gstreamer lib files are missing too (libgstreamer-0.10.so...), you need to get them from your Kindle.
Attached Files
File Type: zip include.zip (168.9 KB, 5 views)

Last edited by kbarni; 12-30-2025 at 12:43 PM.
kbarni is offline   Reply With Quote
Old 12-30-2025, 01:33 PM   #11
kbarni
Connoisseur
kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.
 
kbarni's Avatar
 
Posts: 78
Karma: 289042
Join Date: Feb 2025
Device: Kindle PW5
BTW, I created a ko-fi account: ko-fi.com/kbarni

KinAMP is free and open source, but making a donation will show that you appreciate my work and motivate me to continue.

All the proceeds will be donated to local NGOs and charities.
kbarni is offline   Reply With Quote
Old 12-31-2025, 01:09 AM   #12
TQHYG
Junior Member
TQHYG began at the beginning.
 
TQHYG's Avatar
 
Posts: 4
Karma: 20
Join Date: Nov 2023
Device: K3,KOA
Talking

Quote:
Originally Posted by kbarni View Post
Oh, I forgot about it... I added these files long ago to my toolchain. I think I got them from some old gstreamer repo. Anyway, here are the files, just copy it to your toolchain/sysroot/usr/include.

If the gstreamer lib files are missing too (libgstreamer-0.10.so...), you need to get them from your Kindle.
Hi, and thanks again for providing the missing header files — with those I was finally able to build the KindleHF version successfully.

However, I’m still unable to build the armel variant.
My device is a Kindle Oasis 8th generation (KOA), so I tried to prepare the environment properly:

I downloaded Amazon’s GStreamer source package for my device

I copied the headers into the toolchain’s sysroot

I also extracted the runtime libraries directly from my KOA and placed them in the sysroot

Even after doing this, the build still fails with errors about missing headers. It seems that KinAmP is not able to run on KOA?

Code:
tqhyg@tqhyg-fedora:~/Project/KinAMP/build_pw2$ make
[ 10%] Built target miniaudio
[ 15%] Building CXX object CMakeFiles/KinAMP.dir/music_player.cpp.o
In file included from /home/tqhyg/Project/KinAMP/music_backend.h:4,
                 from /home/tqhyg/Project/KinAMP/music_player.cpp:16:
/home/tqhyg/x-tools/arm-kindlepw2-linux-gnueabi/arm-kindlepw2-linux-gnueabi/sysroot/usr/include/gst/gst.h:31:10: fatal error: gst/gstenumtypes.h: No such file or directory
   31 | #include <gst/gstenumtypes.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/KinAMP.dir/build.make:79:CMakeFiles/KinAMP.dir/music_player.cpp.o] ERR 1
make[1]: *** [CMakeFiles/Makefile2:127:CMakeFiles/KinAMP.dir/all] ERR 2
make: *** [Makefile:136:all] ERR 2
TQHYG is offline   Reply With Quote
Old 12-31-2025, 04:15 AM   #13
kbarni
Connoisseur
kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.kbarni ought to be getting tired of karma fortunes by now.
 
kbarni's Avatar
 
Posts: 78
Karma: 289042
Join Date: Feb 2025
Device: Kindle PW5
Great, your efforts to compile KinAMP for PW2 architecture is much appreciated. I'm pretty sure it will work once everything is correctly set up.

It just complaints about a missing header file. Did you check if it's there? (toolchain/sysroot/usr/include/gst/gstenumtypes.h)

If you make me a gstreamer dev package for the pw2 toolchain (include and lib files), I might try to compile it myself, too.

Anyway, if it also has gstreamer-0.10, you might as well just use the include files I sent you. Only the libs are architecture dependent.
kbarni is offline   Reply With Quote
Old 12-31-2025, 11:28 AM   #14
TQHYG
Junior Member
TQHYG began at the beginning.
 
TQHYG's Avatar
 
Posts: 4
Karma: 20
Join Date: Nov 2023
Device: K3,KOA

I’ve gone through a lot of strange experiments, so I wanted to document what finally worked for me in case it helps someone else.

First, I set up the basic KOX toolchain following the usual instructions. When configuring the sysroot, I modified the download URL so it would pull the KOA firmware instead. After that, I tried copying the header files that were provided into my sysroot. However, compiling directly with those headers resulted in GLIBC version mismatch errors.

Because of that, I decided to build GStreamer myself. I downloaded the KOA source packages from Amazon, then built and installed libffi and glib2.0 into the sysroot. After that, I built and installed GStreamer (also into the sysroot). Once those were in place, I copied the provided headers into the sysroot again — and this time the compilation succeeded without any GLIBC complaints.

Hopefully this information is useful to someone running into the same issues.

I’ll also attach the packaged sysroot and the compiled binaries from my toolchain. They run on my Kindle, although I’m not yet sure whether audio output is actually working.

The forum attachment system doesn’t seem to allow files that large, so I’m sharing them through a Google Drive link.
https://drive.google.com/file/d/1CX_...ew?usp=sharing

Please note that my sysroot may contain some hard‑coded absolute paths, so I can’t guarantee it will work out of the box.
Attached Files
File Type: zip KinAMP-Binaries-for-armel.zip (581.3 KB, 6 views)
TQHYG is offline   Reply With Quote
Old 12-31-2025, 11:40 AM   #15
TQHYG
Junior Member
TQHYG began at the beginning.
 
TQHYG's Avatar
 
Posts: 4
Karma: 20
Join Date: Nov 2023
Device: K3,KOA
Audio output itself seems to be working correctly, though, so at least basic playback appears functional.

However, I’m still not entirely sure whether something is broken in my setup, because the program prints the following warning at startup:

Code:
(KinAMP:28903): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-0.10/libgstttssrc.so': libIvonaEInkAPI.so.1.0: cannot open shared object file: No such file or directory
I haven’t looked closely at your source code, so I’m not entirely sure where this library is used. But since the program is trying to load a library that doesn’t exist on the system, it’s possible that some features may not work as intended.
TQHYG is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
kinamp (v2) audio player for kindle fbdev Kindle Developer's Corner 40 02-20-2015 08:35 AM
Unutterably Silly The Llama Song RickyMaveety Lounge 164 05-01-2012 08:53 PM
Kinamp Guide eXor Kindle Developer's Corner 1 02-12-2012 11:36 PM
audio player for kindle (kinamp?) fbdev Kindle Developer's Corner 6 01-17-2012 05:42 AM
Unutterably Silly Retiring the Llama pshrynk Lounge 26 11-21-2008 03:51 AM


All times are GMT -4. The time now is 05:11 PM.


MobileRead.com is a privately owned, operated and funded community.