Remove Ads on Kindle Touch

Hey everybody! Recently I had the opportunity of poking around a friend’s Kindle Touch to see if I could disable the ads on the “Special Offers” version. And I’m glad to say it was a success, and it’s not that hard if you know your way around a Unix shell.

EDIT: This no longer works for the newer Kindle Touch updates! Therefore, I am not allowing comments as I was being bombarded with the same question.

First, copy your screensaver (in PNG format with a size of 600x800px) to your Kindle as “screensaver.png”. Now what we need to do is to jailbreak your KT. Yifan Lu was gracious enough to provide us with a jailbreak a couple of days ago. I won’t dive too far into it, but he provides a MP3 whose description in the metadata is a simple shell script. Yes, when the Kindle plays an MP3, it executes any shell script in the metadata. Not only does it execute the script, it does it at root. Huge security risk? Most likely.

1. So to jailbreak, first visit Yifan’s KT jailbreak page and download the jailbreak AND the “Simple usbnet update”. Once you have both downloaded extract the “jailbreak.mp3″ file from the jailbreak zip to your Kindle’s “music” folder via USB. Also extract the installer .bin file to the root folder of the Kindle and rename it “update.bin”.

2. Disconnect your KT and then go to Menu->Experimental->MP3 Player and then hit the big “Press to Jailbreak!” button. You device will start the jailbreaking process.

3. Once the jailbreaking process is done, go to Menu->Settings->Menu->Update Your Kindle. Your device will apply the homebrew update that will install SSH.

4. The update also installed a package called “usbnet”. I was not sure how to use it, so I did not mention it in this post. If you know how to use it, let me know in the comments. EDIT:elbunuelo explains how to use usbnet

5. Now you’ll want to find the IP address of your Kindle. I did this by looking at the DHCP client table in my router and matching the Kindle’s MAC address (found in Menu->Settings->Menu->Device Info) to its IP.

6. Before we start the SSH server you will need to set a root password. This can be done by returning to the main menu, then tap on the search bar, type “;un password PASSWORD” where PASSWORD is what you want your password to be. NOTE: Please make this a secure password. I know the Kindle runs everything as root through metadata, but it’s still a good idea to give it a secure password.

7. Now we can start the SSH server. Hit the search bar again, but this time type “;un”. The SSH server is now started and we can get to disabling those pesky ads.

8. Open up your favorite SSH client and connect to your Kindle’s IP address with the username “root” and whatever password you set up before.

9. Type “mntroot rw” so we can get some write access. Then type the following lines:

rm -f -R /mnt/us/system/.assets/*
chmod -W /mnt/us/system/assets/
mkdir /mnt/base-us/ad_backup
cp -f /usr/share/blanket/ad_screensaver/* /mnt/base-us/backup/
rm -f /usr/share/blanket/ad_screensaver/screen*.png
cp -f /mnt/base-us/screensaver.png /usr/share/blanket/ad_screensaver/screensaver-unregistered.png
cp -f /mnt/base-us/screensaver.png /usr/share/blanket/ad_screensaver/screensvr.png
rm -f /usr/share/blanket/ad_screensaver/banner*.gif

And that’s it! Your ad-supported Kindle is now free of corporate interference! Now go and support Amazon a little for making such an awesome device by buying some books.
No, but really, this is purely for demonstration of how Amazon failed to prevent something so simple.

EDIT 12/21/2011
So I fixed the MP3 installer. Well, I completely rewrote it. It turns out that I was really being an idiot and packaged it up completely wrong, for which I apologize. Here is a link to the new version, which also has a built-in uninstaller. Also, this time to replace the screensaver, you only have to drop in one file (I dropped in a sample for you to use). If you have problems, hit me up in the comments.

92 thoughts on “Remove Ads on Kindle Touch

  1. Hey!
    Thank you for figuring this out, i’m guessing there are loads of users who want to get those pesky ads off there screens and your method seems like a good way of doing it.
    However, it does not add the screensaver that I input as the new screen saver, instead reverting to the default Amazon supplied wallpaper.
    I’ve tried both the mp3 simple method and the ssh method through usbnet. The Kindle itself is working well, other than a nasty white box that asks me to ‘connect wireless’ for Special Offers on the screensaver/lock screen.
    Cheers for the good hack :)

    • Did you make sure to put the screensaver.png and screensaver-unregistered.png on the Kindle through the standard USB mass storage before you ran the commands?

      • Hey I had this exact problem, looks like the kindle wants the screensaver file as screensvr.png instead of screensaver, at least on mine. I added my screensaver to the usr/share/blanket/ad_screensavers directory as screensvr.png overwriting what was in there and problem fixed.

        • Yeah this was something that I fixed with the new MP3, but I didn’t bother to update the post. It’s all updated now though!

          • The script automatically takes /mnt/base-us/screensaver.png and copies it to /usr/share/blanket/ad_screensaver/ as screensvr.png and screensaver-unregistered.png

  2. Thanks for the guide. You’ve got two issues though.
    1. In both your post and the MP3′s code, you have “chmod -W …”. -W (capital W) is not an option for chmod. You need the lowercase option. I used “chmod a-w …” to make sure it removed the write permissions for all. You also dropped the . in front of assets, so the final command should be “chmod a-w /mnt/us/system/.assets”

    2. Your MP3 file needs to be updated. It tries to read from jailbreak.mp3 instead of noads.mp3. The offset (skip) might need to change, I didn’t test it. You’ll probably wanna add a cleanup section to the payload too. Yifan’s got all that in the src folder of his jailbreak download as an example.

    • Thanks for the reply, I kinda threw the MP3 together quickly. I’ll take a look at it later and fix it up and maybe include an uninstaller.

    • Alright, it should be fixed now. I tested it multiple times and seems to be working properly. Just check out the edit at the bottom of the post.

  3. Wait, so I have my Kindle jailbroken, but your mp3 file didn’t work. It didn’t take any of the ads off – what am I doing wrong?

    • The MP3 isn’t working at the moment. I threw it together so it’s pretty sloppy and missed a couple of things. I should have it updated later today.

  4. When I tap the mp3 installer it shows that I tapped it but the kindle doesn’t reboot and the ads aren’t removed. This is with the updated installer too.

  5. As a side note, after running the mp3, my kindle refuses to lock at all. It removes ad’s just fine, however

    • Make sure you’re running the updated MP3 and you place the screensaver.png correctly. If it doesn’t lock correctly, it’s usually because there is no png to display, so it doesn’t even try.

  6. It looks like your hack might not be complete . I installed your hack last night and this morning the ads appeared again when one of my subscriptions downloaded. I was able to use your hack to uninstall and reinstall your hack through the MP3 player so it doesn’t appear that Amazon killed the jailbreak for the touch like they did on the Fire (yet). I haven’t yet checked the filesystem to see what was changed (can’t find usb cable…) but I am guessing something either needs a chmod -w or perhaps a directory got missed for -w.

  7. Hey, just wanted to reach out and say thank you for packaging that .mp3 together Pat! Merry Christmas.

  8. Is there a way to add other screensaver images to display in the “rotation” in addition to the one you provided? Or can we only use one screensaver at a time with this hack? Thanks

    • With this hack you only get a single screensaver. You can do rotation, but it’s pretty hacky. First you need to make sure that my hack is disabled and that you can download the ads again. Then in you have to disable write access to the system/.assets folder. In that .assets folder you’ll see a bunch of other folders that have the png’s and gif’s for the ads which you can replace with your own custom graphics. However, you can still tap on them and they will bring you to wherever the ad brought you to before.

  9. I’m probably a little late for this and you may have already figured it out, but the thing with the usbnet is that it creates a usb network interface so that you can connect through it for the ssh access.
    My (ubuntu) linux machine detected it immediately and as soon as I set the ip address to something in the 192.168.15.0/24 network (I used 192.168.15.1) I was able to connect via ssh to my Kindle, which by default is set to 192.168.15.224.

    I think windows machines need RNDIS drivers for it to work.

  10. Just received a kindle touch as a gift, and I just want to say THANK YOU SO MUCH for this little hack! ad services belong on the naughty list!

    • Well, you paid for a device with ads. It’s not like you got the one without ads and they put it on there without you knowing, so shame on you really.

      • Maybe you missed the part about it being a gift?
        Either way ads don’t belong on anything that you pay for (in my opinion)

        • So blame the person who chose the Ads version of the device to give you rather than steal from the company that sold it in good faith.

          • I’ve re-read that comment a couple of times and can’t get a grasp on what you’re saying. Could you explain it better please?

          • Sure, my apologies for not being clear. I’ll try again.

            I’m saying that Carson here seems to be refuting the point you made by saying the Kindle was a gift. To me, that’s not an excuse to steal from a company (if there even is one). If you’re given something you don’t like, you exchange it for something you do. If you want something that costs more, you pay the difference. You don’t go back to the store and steal whatever it is you felt was missing from the gift. For extra credit, you may even mention to your friend “Hey, thanks for the nice Kindle, but I upgraded it to the one without ads because I have a personal issue with ads on something I’ve bought”.

            Instead, and thanks to the anonymity provided, some unethical people feel that ripping off a company who has been honest about their product is a better solution. Having a stance against ads on a Kindle is one thing, using it as justification to steal is entirely different.

            As for the author of the “hack”, I have no issue with what you’ve done from an intellectual exercise point of view. It’s great work, and I commend you (heck, I’d probably hire you)! But much like my point above, finding software flaws and reporting them publicly is a valuable service. However, encouraging exploitation to the financial detriment of one party or the other is questionable at best.

            I’ll step down from my soapbox now :)

          • I completely agree with you. Again, it all comes down to ethics. I think anyone that has a zero tolerance policy with hacking halts progress in technology. And it goes the other way too. If we didn’t pay for anything, there’d be no reason for companies like Amazon to create a product like they did. Hacking is just communication between the consumers and the company :)

  11. This was a great update. BUT -Now that I’ve tried it, I’d like to get my Kindke back to before I installed these changes. How do I do that?

    Thanks!

      • Hi there! Nice little hack, thanks!
        Wanted to uninstall, but now I get a ‘Please connect wirelessly to download the latest Special Offers’. Thing is, I AM connceted to wifi!
        Tried to switch off an on again, nothing changed!

        Tried the 20 sec power button holding, but even after a reboot, same thing!

        Whispernet and browser work perfectly, though!

        Ever seen this behaviour before?

        Thanks,

        Fred

        • Yeah it could be either it just takes a little bit to download ads, or the system/.assets folder may be set to read only.

          • I don’t think it is a matter of timing.
            and after adds have been re-activated, .assets is
            drwxr-xr-x
            is that correct?
            Thanks in advance!
            Fred

          • Hi,
            I’m experiencing the same problem.

            After enabling ads again it aks me to connect wirelessly which I definitely am. I#m pretty sure it’s not a ‘takes time to download issue’, it’s been like this since two days ago.

            any chance you can have a look at the script to ensure it’s setting the rights correctly for system/.assets?

            I’m kind of afraid I wont be able to receive future updates ….

            thanks,
            albert

          • It’s setting the permissions correctly. In the first section of the script where it applies the “hack” ( line 21 ) it removes write access to .assets, and then on the restoration part of the script ( line 49 ) it enables write access again.

          • Yes, but the chmod command does not seem to change anything:

            [root@kindle root]# chmod -w /mnt/base-us/system/.assets/
            [root@kindle root]# ls -lA /mnt/base-us/system/
            drwxr-xr-x 2 root root 8192 Dec 29 22:47 .assets
            -rwxr-xr-x 1 root root 560 Dec 28 15:08 AudibleActivation.sys
            drwxr-xr-x 2 root root 16384 Dec 29 21:59 Search Indexes
            drwxr-xr-x 2 root root 8192 Dec 28 16:35 acw
            drwxr-xr-x 2 root root 8192 Dec 29 21:37 thumbnails
            [root@kindle root]# chmod +w /mnt/base-us/system/.assets/
            [root@kindle root]# ls -lA /mnt/base-us/system/
            drwxr-xr-x 2 root root 8192 Dec 29 22:47 .assets
            -rwxr-xr-x 1 root root 560 Dec 28 15:08 AudibleActivation.sys
            drwxr-xr-x 2 root root 16384 Dec 29 21:59 Search Indexes
            drwxr-xr-x 2 root root 8192 Dec 28 16:35 acw
            drwxr-xr-x 2 root root 8192 Dec 29 21:37 thumbnails

            How come? (I’m very beginner in unix, so being a bit naive)
            Probably this is the problem, right?

          • Oh yes, that’s right!
            Really strange!
            No idea of the why… hopefully we get to understand it!
            Meanwhile, there IS a way to fully recover the adds, even if not very handy ;)
            Thanks to all
            Fred

  12. I’m on a mac running lion. I can get the jailbreak ran but SSH does not work. I’m using cyberduck and every time the connection fails. Any ideas why this happens?

    • You won’t be able to use file transfers over SSH. It is just a very basic implementation Yifan Lu did of ssh.

      • Ok. Then I’m confused as to how I am supposed to implement these steps:

        7. Now we can start the SSH server. Hit the search bar again, but this time type “;un”. The SSH server is now started and we can get to disabling those pesky ads.
        8. Open up your favorite SSH client and connect to your Kindle’s IP address with the username “root” and whatever password you set up before.
        9. Type “mntroot rw” so we can get some write access. Then type the following lines:

        rm -R /mnt/us/system/.assets/*
        chmod -W /mnt/us/system/assets/
        mkdir /usr/share/blanket/ad_screensaver/backup
        cp /usr/share/blanket/ad_screensaver/* /usr/share/blanket/ad_screensaver/backup/
        rm /usr/share/blanket/ad_screensaver/screensaver*.png
        mv /mnt/us/screensaver*.png /usr/share/blanket/ad_screensaver/
        rm /usr/share/blanket/ad_screensaver/banner*.gif

        I cannot connect to the Kindle at all so where do I type in these commands?

          • You should be able to open up Terminal, type root@ and then put in your root password. From there you can type in the commands.

          • Ok my apologies but I’m really not understanding this. I am thinking in terms of jailbreaking my iOS devices and this is not making sense to me.

            So I’m SSHing using terminal? How am I accessing my Kindle? Is the Kindle plugged in via USB? The instructions don’t seem to say anything with regards to this.

            If possible can you give a step by step of what I need to input into Terminal? and is the Kindle hooked up to USB or not?

            Thanks!

          • Everything you need to know is in the post. You can either go through the manual way using Terminal as your SSH client, or you can use the MP3 I provided at the bottom of the post. Keep in mind that it will not jailbreak your device. It will merely run a script that moves some files around to remove ads.

  13. Hey … doesn’t the screensaver change every so often to “save the screen?”

    Is this able to shuffle through screen savers? If so, would I need to drop in more than one file?

    • You know I’m not sure about “saving the screen”. I assume it’s not needed because if you never connected your Kindle to the internet, it wouldn’t download ads and would keep only one background. Also, I don’t know for sure, but I think when you have shuffling screensavers like on the non-ad version, it just picks a random image to use as the screensaver and uses that same screensaver until the next time you lock it.

      As of right now this hack doesn’t support multiple screensavers.

  14. I sort of followed the guide by Derek1987 here: http://www.mobileread.com/forums/archive/index.php/t-139279.html which seemed to work perfectly. The only things you have to do to disable ads are run the following:

    mv /var/local/adunits /var/local/adunits.bkp
    touch /var/local/adunits

    After running these my kindle is back to using the stock screensavers. Even the small banner at the bottom is gone. The hack also survives reboots.

    • Did you run this on a touch? I was thinking about doing this initially, but figured I didn’t really want to mess with any executables.

      • Also, this hack should allow you to put in multiple screensavers of your choice. The default screensavers are stored in:
        /usr/share/blanket/screensaver/
        Overwriting an image in this folder should let you change the default screensavers. I am not sure if you can add or remove images to this folder, though. It should be pretty easy to check, but I like the default screensavers for now.

    • I used those same commands of Derek1987. Also writen them into shell script executed by that mp3 from above. Removes every ad.
      Also tried using it with jailbreak (used as runme.sh) and it worked as well. But you dont have that user-definied-screensaver option.

      • Once the ads are disabled via
        mv /var/local/adunits /var/local/adunits.bkp
        touch /var/local/adunits
        just overwrite the screensavers in
        /usr/share/blanket/screensaver/
        as indicated by hack4ce above with your pictures of choice and you get your own personal screensavers :-)
        Works perfectly fine for me on a Kindle Touch (with Special Offers)!

  15. I had installed and uninstalled this a few times and this is what I have learned (in my case–other people might have had different results):

    -My personal screensaver did not work; only the kindle crossed out hacked one did. And after a few more installations/uninstallations, even that one didn’t work.
    -Instead, my “screensaver” turned out to be a replica of the last page I had set it on. I think this explains evans’ problem with the screen not locking. It’s impossible to tell if the device is on sleep mode or on without tapping it. On the bright side, this allows for a very customizable screensaver. Just upload a picture onto the Kindle and it’ll serve as a screensaver, or even take a picture from google. (ignoring the address bar and everything at the top)
    -You have to re-add the dictionary (not hard, but just something I noticed. I had to archive my dictionary and download it again to have it recognize it)
    -The special offer banner is technically still at the bottom of the kindle-it’s just white (the actual no SO kindle places another book there)
    -When I un-install, the SO can’t connect to my wifi. There’s still an offer when I tap “view special offers” but my screensaver and banner both have the connect to wifi message. Maybe I just need to wait a day or two and it’ll go back to normal. But for now, I’m sticking with my ad-free Kindle with its screenshot screensavers. :)
    Thanks for the mp3 link Pat!

    • No problem. With the screensaver you have to make sure it’s the right size and format. It sounds to me like it’s pretty picky about that. Also, it might not be able to download ads if the .assets folder is still read-only. You could check to make sure it’s not. However, I have a feeling that the ads just take a little bit to come back. Like I said, this was just a little experiment and I don’t recommend anyone to use this for the long run.

  16. Hi Pat,
    thanks for the MP3-hack, works very well :-)
    Found only one flaw:
    seems that the experimental MP3 player of the kindle is “always on” and draining the battery unless one explicitely presses the “off” button.
    Unfortunately, your “press to toggle ads!” field is too big so that the “off” button is camouflaged.
    Means if you have only your mp3 file in the music folder, there is no chance to switch the player off.
    Would be great if you could re-issue your mp3 with a smaller toggle field…

    • If you look at the meta-data for the MP3, you can see in the title where it sets the width and height. You could try modifying that. Otherwise, you can just move the MP3 out of the music folder :)

  17. I got a Kindle Version 4. Is there a way to use your own images as a screensaver/s with this one?

  18. Hello. I am trying to get this to work but not having any luck. I can get the “toggle ads” box to display but it wont restart the device and just stays at the bottom of the screen for a few minutes then disappears.

  19. Hi there, I have a small problem. I copied everything from the archive from EDIT, I repleaced my own screensaver.png and I pressed that button in MP3. But I couldn’t turn my kindle into sleep mode so my screensaver didnť show up. So I copied there original files from that archive and I did the pressing again. And sleep mode worked, the screen saver showed too (that picture Hacked) and I decided I’ll remove that thing out of my kindle. So I pressed that button again for uninstal (just like in the ReadMe was) but I got the same problem like first (can’t turn sleep mode). So I put there that image with Hacked again and removed all files. But the picture Hacked is still there and i can’t get rid of them. Any help please? Thank you very much

      • Well I did that but in non-hacked mode i can’t turn it into sleep and when i run that hack again, the image Hacked show again.
        And what’s non-hacked? When i can’t swith to sleep mode? It’s true, the image Hacked disappear but i can’t switch to sleep

    • You could try going back to factory defaults, but I don’t know how well that’d work. The only other option really is to go into the root filesystem and move the files around yourself back to how they were.

      • factory reset worked well for me.
        You could also try to simply de-register and re-register again.

  20. Hello,

    with Your hack I could finally get my own screensaver to the KT. Thanks. I prefer screensaver thats correspondent with book I read (Steve Bos from Isacson now).
    And noq my question: when I will want to change the screensaver, have I to start Your hack again, or I can just replace the screensaver.png and screensaver-unregistered.png in the root directory?

    Thanks again !!!

    • If you’re using the MP3 method you’ll have to undo the hack by running it again, then put screensaver.png on the USB root, and then run it again. Otherwise you can go through the root filesystem with ssh and move the files.

      • Hello!

        Could You write some script that would only change two files (screensaver.png and screensaver-unregistered.png) with new ones located in root or in another specified folder without recovering original files and removing them again?

        Thanks, bye

  21. Will this void the warranty or can it be reversed just in case I need to send it back? Also can amazon tell if you have taken the ads off?
    Thanks for doing this and freely!:)

    • It most likely will void your warranty. I don’t think that Amazon can tell from you downloading books or anything like that.

      • Thanks for the reply, I’ll just fork over the extra money for the none advertisement since its for mom and not me or see can she deal with the advertisements to get one cheaper.
        Keep up the good work!

  22. Great stuff, thank you, it worked the first time. My wife and I bought a Kindle Touch for my 9 year old daughter just to find ads for R-rated movies. I’m OK with ads, but not those ads. I really don’t want to explain to my daughter why the lady in the ad is carrying handcuffs, and don’t think this should be the thing that motivates me to pay to have the ads turned off.

    Thank you again.

  23. Pingback: How To Remove Ads From Your Kindle Touch, Keyboard, or Kindle 4

  24. This no longer works the field you can no longer click on the mp3 file. It did work before but after downloading a new book from amazon it broke this hack. you can no longer click on the image. thus you cannot toggle or re-toggle the hack. I wondered if you could fix it.

  25. Pingback: Hack removes ads from Kindle ‘Special Offers’ hardware - Hack a Day

Comments are closed.