Amazon's Fire OS, aside from having an Android backbone, can be considered quite a different beast from stock Android or even heavy skins like MIUI or Samsung Experience. They aimed to make their own OS based on the open source Android platform while remaining completely independent of all Google Play Services and certifications, instead favoring their own Amazon services. But it's still based on Android, so tech savvy users have been able to take the Fire OS platform and customize it to their will. Today, we are going to teach you how you can easily set up any launcher you want (with widget support) on Amazon Fire OS Devices, with no root required! You just need, as most tutorials we do, access to the Android Debug Bridge.


Use a Custom Launcher With Widgets on Fire OS Without Root

Part 1 - Setting up Custom Launcher

Before we start, as we just said, you will need to set up ADB. In case you haven't done it yet, please refer to this tutorial in order to set things up in your device. We don't really need it right now, but it's still nice to have it in advance. Once that's done, you'll need the Launcher Hijack tool available in our forums. This tool was made by XDA Member BaronKiko, based off the original code of parrotgeek1, so all credits go to both of these developers!

This tool takes advantage of the Accessibility settings of your Amazon phone or tablet in order to function properly, so make sure it's properly set up at Settings > Accessibility > To detect home button press. Also, make sure that your launchers do NOT require it to be set as default. That means you can use launchers like Nova Launcher and Evie Launcher, but you can't use the Google Now Launcher or any other that requires it to be default.

Part 2 - Getting Custom Widget Support

With that out of the way, you should now have a working custom launcher on home button press. However, how can you use widgets on that launcher? You generally need root for doing this, but luckily, you can use the magic of ADB in order to set them up correctly. This is why we set it up earlier. This method was discovered by XDA Senior Member DragonFire1024 over on our Amazon Fire forum.

First of all, fire up a file explorer with root/partition support (we don't need root to use it since we're having a look at the read-only system partition). We recommend the awesome, free MiXplorer from our forums.

[appbox xda com.mixplorer]

Navigate to the phone's root, and then go to /system/bin. Locate the "appwidget" file and copy it to your clipboard. Paste it somewhere on your phone or directly in your PC. You'll need to change the file extension to .sh (you can either change it with Notepad or Notepad++ in your computer, or you can just change it on your phone using your file explorer's renaming function). Once that's done, place the file in the root of your internal storage (/sdcard/).

Afterwards, start ADB. Get into a shell:

        adb shell
    

Then, launch the newly added script:

        sh /sdcard/appwidget.sh
    

Now it's time to grant your launcher widget permissions. Use the following command:

        appwidget grantbind --package <launcher_package_name> --user <user_ID>
    

In order to find the package name, the easier way is to use Package Name Viewer from the Play Store.

Package Name Viewer 2.0 Developer: csIng
Price: Free
4.4
Download

So for example, the command for Nova Launcher would be:

        appwidget grantbind --package com.teslacoilsw.launcher --user 0
    

If the above command did not work, use this one:

        appwidget grantbind --package <launcher_package_name> --user current
    

Done! Now you can add your favorite widgets on your launcher of choice.


Explanation

It's pretty simple. Unlike stock Android (or pretty much every Android skin as well), where you can actually replace the launcher to your liking and even set up a custom one as the default launcher, the Amazon homescreen was made to work as the only, system wide app launcher in Amazon Fire OS, pretty similar to what iOS does. You can't replace it, at least not using conventional ways.

However, you can take advantage of the accessibility settings (which allow apps to intercept home button presses) and set an intermediary app (Hijack Launcher) which will intercept home button presses in Amazon Fire OS and open your own third-party launcher every time the home button is pressed. While this won't make your chosen launcher the default one, this solution will work pretty flawlessly. Then, the script we run allows us to access the appwidget binary where we can grant our third-party app the permission it needs to bind widgets. Normally, this easily be done if the launcher is set as the default launcher. But since we can't actually change the default launcher on Fire OS without root, these commands get around that issue.

Amazon Fire OS devices aren't really well known for their customization, but that hasn't stopped enterprising users on our forums from making the best of what's available. Check out our Amazon Fire forum to keep up to date with the latest developments regarding the device.