Our thinking


Hacking the Bose Sleepbuds

Edit: Bose have discontinued the SleepBuds and are offering everyone a full refund if they return them. As such, I’m not going to spend any more time trying to hack the Bose Sleep app.

https://www.bose.com.au/en_au/support/products/earphones_support/noise-masking-sleepbuds.html

This is going to be a pretty niche post, I’m mainly putting this information up so I can find it later if I need to, and it may be useful to a couple of other people who have Bose Sleepbuds.

For those who aren’t familiar with what they are, Sleepbuds are tiny in-ear devices that work partly as an ear plug to block outside sounds and partly as in-ear earphones to mask outside sounds. They are completely wireless, and each bud is positively tiny, so they can sit in your ear, even if you’re sleeping on your side at night. They have a claimed battery life of 16 hours of continuous playback, however they can’t play music off your phone or stream audio off the internet. They have memory in each bud that stores a pre-made sound library, you select a sound via the app on your phone before you go to sleep and then that sound loops, either on a set timer, or continuously all night long. They have a very nicely built storage/charging case – each bud magnetically locates itself in the case when you put it back so the charging pins are aligned correctly and they don’t fall out.

The reason these are likely to remain a niche product is because of the price. I’ve previously been using soft, mouldable silicone ear plugs to cut out noise at night and help me sleep. These ear plugs are super comfortable and cost a couple of dollars a pair. The Bose Sleepbuds on the other hand retail for nearly $380. I’m fortunate to have won a pair in a competition recently, so let the hacking begin.

The main point of contention most people seem to have on the Bose Community forums is that the sound library doesn’t have the right sound for them. This is an area where personal preferences know no bounds – clearly there is no perfect sound for everyone and Bose have done a decent job of covering most bases with their, currently, 20 preset sound loops, however there’s always room to improve here.

Looking at these devices, right off the bat it’s clear that they are simply not capable of streaming audio files from another device over Bluetooth. In order to conserve battery life, they use Bluetooth Low Energy with what must be a very low bitrate for data transfers – in my estimates it’s around 5kB/s. This is lower than even the lowest bandwidth, and lowest quality, codecs for voice as used by VOIP devices, so nowhere near good enough for music. It also seems that the audio files the Sleepbuds play back are raw, uncompressed PCM audio – the tradeoff being that flash storage space uses less battery power than a hardware decoder for compressed audio.

There was a comment from a moderator on the Bose forums claiming that the audio had to be equalised in various ways for the driver in the sleep buds to reproduce it clearly. In my testing this is false, or misleading at best.

What I’ve found is that the audio format the Sleepbuds use is raw 24-bit PCM audio at an 8192 kHz sample rate. Each Sleepbud is given one half of a stereo file and they synchronise their playback pretty well such that I haven’t heard them get out of sync.

Now, I’ll be the first to say that this particular audio format seems like some strange design decisions have been made. I understand using raw PCM audio instead of MP3 or AAC as flash storage uses less power than a hardware audio codec would. What I don’t understand is the use of 24-bit audio over 16-bit. Yes, 24-bit is higher resolution, so therefore better quality than 16-bit, however given the drivers in the Sleepbuds, and the fact that they are designed to be listened to at very low sound levels, there is no way you would be able to hear any difference. So, 24-bit audio just takes up more space.

What I find even weirder is the 8kHz sample rate. This means that the hardware is only capable of reproducing frequencies up to 4kHz. Whilst this is good enough for background sounds, it is not good enough for music and if people were to download their own sounds then this limitation would quickly become apparent. I’m guessing that a lower sample rate allows the use of a lower powered DAC, and again this helps extend the battery life. Once I manage to get my own sounds onto the Sleepbuds, I’ll revisit this and determine how much of a limitation it is.

The next step I took was to take apart the Android app. I grabbed the .apk of the app from the Play Store and unzipped it. Inside the app, I found that there was no audio embedded, but rather a .json file that the app uses to load the sounds in the library from Bose’s servers.

Each sound in the library is listed in this .json file with background images for the app to display for each sound, a 32-bit floating-point, 44.1 kHz or 48 kHz audio preview in WAV format and a square thumbnail image.

Listening to the WAV preview and then listening to the raw audio for each bud shows that other than the hard cut-off at 4kHz, the sounds are otherwise identical. I didn’t hear any EQ applied to them.

My next step is to make my own audio file, pack it into the correct format, supply some images in various sizes, upload it to a web server and then modify the .json file to include it. I then need to re-pack and re-sign the apk and I’ll load it onto my Pixel tablet and see if I can transfer the audio to the Sleepbuds.

59 thoughts on “Hacking the Bose Sleepbuds

  1. Hello,
    habe you had any success in hacking the sleepbuds? Were you able to upload your own sound files?
    I am very interessted in this topic.
    Kind regards

    1. I haven’t yet been able to get the Bose Sleep app to load my changes via the JSON file I’ve customised. I will keep looking into it and I’ll be sure to post here if I make any progress.

    1. Bose has EOL’d the Sleepbuds – any owners can return them to Bose for a full refund. As there doesn’t seem to be much of a future in this version of the hardware (and as I wasn’t really making much progress) I’m not going to be spending any more time on trying to work this out…

  2. Don’t suppose you were able to extract the standard sounds library files? My Sleepbuds broke and Bose reckon 5 weeks replacement. Wondering if I can have the sounds play through normal headphones to keep me sleeping till the replacements arrive

    1. Yes, I was able to extract the sounds by unzipping the Android .apk package. I downloaded the .apk, renamed it to .zip and was then able to browse the contents of the package. The sounds you’re looking for are the preview .WAV files – which in my testing are just .WAV versions of the actual raw PCM files that the sleep buds play. I can’t post the sound files here as I don’t own the copyright on them. The .apk that I took the audio files from was called “Bose® Sleep_v2.2.2_apkpure.com.apk”

    1. Oh, I didn’t see that they’d been released, I’ll have to check out what’s changed.
      It’s quite likely that they are very similar hardware, with very similar specs, and improved battery technology.
      From the issues I have seen on the Bose forums, battery issues were by far the #1 most common problem.
      Going by the screenshot on their website, the app looks identical – and why re-engineer all of the audio side of things if it was the battery that was causing issues in the first place?

    2. CNET have a review on them – they do appear to be different hardware, v1 were circular, whereas these ones are more an oval shape, and it says that they have improved acoustics and electronics. They’ve also reverted from the cutting-edge silver-zinc battery and instead are using tried and tested NiMH batteries instead. Battery life has been reduced from 16 hours to 10 but should be more reliable.
      https://www.cnet.com/news/bose-sleepbuds-2-awake-from-battery-nightmare-refreshed/

    3. Based on some quick testing, the audio files that the buds play are the same format as v1 – raw PCM audio data at 8192 kHz sample rate. I don’t have a pair of the new buds to test further though…

      1. That’s good to hear! I have a pair in my possession right now. They just arrived yesterday from Bose. Like he pointed out, they use the same app and the same sounds. There are some new sounds that Bose included.

        The app also changed how the sound files are being transferred. With my V1 buds, it used to take 30 to 60 minutes to transfer a sound file. Now it only takes five minutes to transfer the same sound file. So I think they’re using a different transfer process.

        But I have a feeling that’s more of a software thing because it was in the changelog of the app last month.

      2. Hi, would it be possible to find an escape towards my own music in the Bose Sleepbuds 2? or the Amazfit Zenbuds for that matter for they are far more comfortble to my small ears

        1. No, there doesn’t seem to be any way to load your own sounds on to the Sleepbuds. You can not stream music to them via Bluetooth, they don’t have enough power for this. You can’t save your own music to their internal storage, and I don’t know anything about the Zenbuds, so can’t comment on them.

  3. I just got my pair of Bose Sleepbuds II yesterday and I’m working how to add custom sounds to the library as well (TO start with, I’m surprised there are no binaural files currently in the library). However, I just started. I downloaded the APK, extracted and looking at the JSON now. I’m kind of scratching my head and wondering why they made the design for a simple audio file library capability so complicated.

    1. What you’re going to have to do is something along these lines:
      1. extract the APK and find the JSON file listing all the sounds (done)
      2. create your own sounds – you need a full WAV for the preview and mono 24-bit, 8192 Hz sample rate, raw files for the sounds uploaded to the buds
      3. put these sounds up on a web host somewhere and modify the JSON to point to them.
      4. re-build and then sign the APK
      5. sideload your modified APK
      6. cross your fingers and hope for the best.

      1. Could you setup a proxy that redirects the request from the Bose server to your own server with your own files?

          1. Know what I finally did? I just bought a pair of Bose Quietcomfort Bluetooth Earbuds II – and slept in them all night long. They are spectacular. With two modes, quiet (noise cancellation) and transparency (allows you to hear what’s going on around you, too), su-freaking-PURB sound, EQ, forever-playtime-life + case charging (USB3), true bluetooth and simple integration controls for call answering, etc., and scads of different ear-tip sizes & all the other TOP SHELF stuff you can count on from Bose, I’m FINISHED. [Man, was that one run-on sentence or what?] NO more hunting, hacking, or going without. I listened, comfortably & seamlessly to all of MY assembled playlists & sleep-stuff last night for the first time with the clarity that’s matching my demanding sound standards. I listen to my Klipsch ProMedia THX® [Dolby] Certified 2.1 speaker system (pc) all day in the background while working remotely (IT), or jam with it at night on one of my guitars, amp’d, acoustic, electric, bass, whatever. I cannot tolerate sub-standard sound, no matter what the media. The Bose are right up there with the Klipsch quality of excellence: BOTH …. music … to the high standards of my ears. You can fight/win all the wars you want, but better to more carefully pick which battles in which you become embroiled …simply wasting time. And you, “know how time fades away” (- Neil Young) … spend it loving hearing what’s goin’ on inside your head. {{sigh}} … finally. 😉

          2. Those Bose Quietcomfort Bluetooth Earbuds II look very good, however I’m a side sleeper, so don’t think they’d work sitting in my ears all night long. I have a pair of iPods Pro, I might have to try sleeping with them in and see if it works.

  4. How about resolving all dns to bose.com, recreate the json paths and load sounds like that? Incant stand the shitty loops 🙁

    1. From memory (I don’t have the file in front of me at the moment) there were also links in the json file for some .dat files which are the actual audio files for the left and the right buds. They are each a raw 16-bit mono audio file at 8192Hz sample rate.

  5. H, I’m trying to find the folder where the sounds actually are so I can listen to them. Do you know how to do this from the APK?

    1. Look at the sound_android_$VERSION.json file in /res/raw – this has the URLs where the app fetches the sounds from.
      To find each of the sounds, search for “preview_url” and then following that string, there is a url where you can download the wav files from.
      e.g.: for Altitude:
      “preview_url”: “https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Altitude/Altitude.wav”

      1. Hi Kai, your information is extremely helpful. I am just wondering how do I get access to the other wav files? I am very sensitive to loops and breaks in sound files. I almost have to see the sound file in audio editor in waveform to “trust” it lol. Do you mind share the other paths with me? For example, if I need the one for “warm static”, how do I find the path? Thanks a lot!!

        1. I don’t have the new Sleepbuds, so haven’t downloaded the new app. From the original version however, these links were all the audio files I could find in the app. I would be quite surprised if the Warm Static in the v1 app is much different to the Warm Static in the new app.

          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Altitude/Altitude.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Boardwalk/Boardwalk.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Campfire/Campfire.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Cascade/Cascade.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Circulate/Circulate.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Country%20Road/Country%20Road.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Downstream/Downstream.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Hideaway/Hideaway.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Marina/Marina.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Rainforest/Rainforest.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Rustle/Rustle.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Shore%20Line/Shore%20Line.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Shower/Shower.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Songbirds/Songbirds.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Swell/Swell.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Tranquility/Tranquility.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Warm%20Static/Warm%20Static.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Window%20Seat/Window%20Seat.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Squall/Squall.wav
          https://downloads.bose.com/eb/drowsy/Android-Production/Sound%20Library/Windswept/Windswept.wav

  6. Any luck with this? I got the newest version of the apk from apkpure. I’ve decompiled and recompiled (& signed) it using APK Easy Tool, and loaded it onto my device. This is with the preloaded_sounds.json being modified – I replaced the URLs with links to the .bin files (which I have in firebase) and changed the filesize and file length values. Then in preloaded_sound_products.json I put the .wav for the preview. I used the files from the dropbox link on this page (https://community.bose.com/t5/Wellness-Archive/Digging-into-the-Sleepbuds-audio-format-it-s-not-complicated/td-p/218986). Nothing shows up, not even the .wav for the preview. This is so frustrating, these earbuds don’t work for me unless I’m able to upload my own sound to them. I’ll end up needing to return them due to Bose making this overly difficult.

    1. I haven’t made any further progress, having returned my Gen 1 set of Sleepbuds, and not spent my money on another pair once they were re-released, so I don’t have the hardware to test this on.
      You should really not have bought Sleepbuds with the expectation of being able to load your own sounds on them – Bose were pretty clear that this is not supported.

      1. I see.. Yeah I was hoping on of their default sounds would work for me, I couldn’t find anywhere online to listen to their sounds so the only way to know was to buy them. I’ll probably end up returning them then.

    2. Victor M, I second your motion: I cannot believe I willingly paid around $200 for Sleep Buds II which, granted, are comfortable, do isolate well and have great sound quality, but will ONLY provide limited, dictated audio! Seriously?!? I’m appalled! I’m also really pissed off that I didn’t do my homework. Have had some IT so thought I’d research this hack, too. Thanks for your input … and all your research, Kai Howells – will keep following this feed … and crossing my fingers.

  7. Could anyone help to jailbreak the sleepbuds to use it as a regular earbuds? I need to use youtube :/

    1. I really don’t think it’s going to happen. There are many other true wireless earbuds that you can use for general Bluetooth audio, the Sleepbuds simply aren’t suited to this task.

  8. looking at the latest app 3.0.9 there is a file jy.json and VA.json. All the links use aws now and i cant seem to download the files using the links eg the rustle preview sound is https://content-cms-bucket.s3.amazonaws.com/images/da16ed07-b1db-48bc-8bf4-82f3fee28e8d.wav. jy.json seems to include the info on where the binary raw audio is, while VA.json has the thumbnail and preview info. Unfortunately, jy.json includes extra fields checksum and private_hash that didnt appear in 2.2.2. I imagine the private hash is used to sign the files, possibly after seeing your hacking efforts they decided to make it harder for people to improve their product.

  9. I will literally send you a brand new pair of sleep buds II for free if you can work on getting custom sounds on it. Every other aspect of these things works so well for me(comfort, charge case at bedside, alarm), but thier sound library is absolute garbage, it’s the only downside imo and they locked it in.

    1. I’d love to take you up on your offer, but from what I’ve read the new app has some significant changes to it (quite possibly to stop anyone from being able to follow my instructions for the old app) and I’m not confident that I’ll be able to get new sounds into it.
      At this stage, I’d put it down to about a 50/50 chance of being able to get new sounds into the app…

      1. I’d chip in for that new testing pair if this mod were possible. I have a relatively rare case of tinnitus that sounds like morriscode all day/night. I can manage it with a weird loop of whitenoise and underlying beeps (sounds ridiculous but it works). If I could load that loop on to one of these buds (which are hands down the most comfortable ear buds ever designed) it would literally change my life. I can’t believe that this is Bose’s second iteration of this promising tech and they can’t be bothered to tweak the app (likely a week’s worth of coding at most) to allow for custom soundbites to be loaded and looped… like it’s not even a capacity issue.

        Discouraging.

  10. Please hack them, and make an app that will automate the replacement of the integrated sounds. Preferably I’d like to use Spotify or Audiable for podcasts and books. I love their design, small and you can sleep with them, but I want this combination.

    1. Even if I were able to hack them to replace the built-in sounds, it would not help get Spotify or Audible on them.
      They are very low power devices, and do not have anywhere near the battery life, nor processing power, to stream audio to them. They are designed to save short loops of audio data to their onboard memory, and play that back which uses far less power than streaming from a phone over Bluetooth.

  11. I’ll just put this out there – there seem to be enough people out there who really want to delve deeper into this. I wasn’t going to buy myself a pair of the new Sleepbuds, but if everyone wanted to chip in, I’ll definitely have a crack at seeing what can be done to (a) extract the existing sounds from the new app and (b) see if it’s possible to upload new sounds.
    I ran into a few dead ends with original version of the app, so am not 100% confident it will be possible in this new version with the new hardware – but I’ll give it my best shot if anyone wants me to.

    1. I have a pair and can help, not much time though. Do you need a physical pair or could you download and decompile the (android) app and or run it in an emulator?

      1. I’m not sure – I may be able to dig into the app to see if I can find the URLs. Assuming I can find them, and download the assets, I would then definitely need the real hardware to test uploading any new sounds.

  12. So glad i came across this conversation. Love the buds but as everyone says library is appalling. Would love to be able to add other relaxing sounds. Loops are way too short. Will follow this chat for further updates.

  13. The library absolutely sucks, and the rustling sound actually made my tinnitus much worse. I slept with it one night, and my tinnitus that was very bothersome is now completely unbearable. I am desperate for a solution. I was in a car accident and I hit my head on the headrest and have had this problem ever since. I need relief desperately. I did my research, but did not realize it meant that you could not put your own sound on there. I also use the Binaural Beats, and would love to have it on these as well. They are by far the most comfortable sleeping headphones I’ve used.

    I edit audio and video for my occupation, and this is disruptive… All… day… long. I am not getting any sleep.

  14. This is great, really glad I came across it too and I hope you have some success with hacking the app. As a lot of people have said the sound files are terrible and all sound corrupted, I’ve been complaining to Bose for about 2 years but they won’t fix it. Unfortunately I don’t know anything about how to do this, but will follow this page/thread for updates!

  15. what is the latest on this? did you ever receive a pair of buds? if not, I’m interested in helping. It seems as though it will greatly benefit jeff.

      1. Seems there are multiple people interested in seeing you have another go at this.
        Lets crowdsource the cost for the sleepbuds II.
        If you give me a way to send you money I will do the first step.

        1. Sure thing, that could be a good way to proceed.
          I can take PayPal or what might be easier would be for someone to buy them on Amazon and have them delivered to my address. What do you think will work best?

          1. So I just found out that Bose discontinued the sleep buds 2 as well. I could not find a place that still has them in stock. I guess lets hope for a version 3? :/

          2. As it turns out, Bose have refurbished Sleep Buds II on their AU store:
            https://www.bose.com.au/en_au/products/outlet/noise-masking-sleepbuds-ii-fr.html#v=noise_masking_sleepbuds_ii_fr
            However, in searching for them, it looks like there’s an off-the-shelf product that might be more along the lines of what you want, without needing to be hacked:
            The Soundcore Sleep A10:
            https://au.soundcore.com/products/sleep-a10-a6610z21
            They don’t have as long a battery life as the Bose however, claiming 6 hours of music playback or 10 hours of sleep sounds playback on a full charge at 50% volume.

Leave a Reply to Mari'anCancel reply