Fire OS Overview
Fire OS is the operating system that runs Amazon's Fire TV and tablets. Fire OS is a fork of Android, so if your app runs on Android, it will most likely run on Amazon's Fire devices too. As a developer, you might not have to adjust your Android code at all to publish your app on Amazon's OS.
Fire OS versions
There are multiple versions of Fire OS:
- Fire OS 8: Based on Android 10 (API level 29) and Android 11 (API level 30). See Developing for Fire OS 8 for more details.
- Fire OS 7: Based on Android 9 (Pie, API level 28). See Developing for Fire OS 7 for more details.
- Fire OS 6: Based on Android 7.1 (Nougat, API level 25). See Developing for Fire OS 6 for more details.
- Fire OS 5: Based on Android 5.1 (Lollipop, API level 22)
The following table shows which Fire TV device runs which Fire OS version.
See Device Specifications for Fire TV for more specification information.
Most Fire devices receive over-the-air updates to get Fire OS updates automatically. Not every Fire device receives a push of the same Fire OS version at the same time. The updates often roll out to different devices at different times.
You can see your version of Fire OS by going to Settings > Device > Fire TV and looking at the "Software Version" details. More information about Fire OS versions is provided in Amazon Fire TV Device Software Updates in the Fire TV end-user documentation.
Debug and verbose logging disabled by default
With our latest software release, debug and verbose logging is disabled by default. This is done to optimize our devices and backend storage services to ensure a great device experience for our customers. For development or QA you can use the below commands to include debug and verbose logs.
Steps to enable debug and verbose logging
Reset the relevant system property through the following adb command.
adb shell setprop persist.log.tag V/D/I/W/E
(Note: for FOS5, this would be "adb shell setprop persist.log.level 2/3/4/5/6" & "adb reboot" is also required to reflect the changes)
Then to collect logs, do the following.
adb logcat -c
adb logcat
- If you want your application debug logs to be printed, override the property for their log tag by setting the property
log.tag.<tag>
with the app's tag name through the existing Android APIs. -
- For example, we can override tag specific logs by the setting property
log.tag.ActivityManager=D
. Logd understands this and prints all debug logs with the mentionedTAG
.
- For example, we can override tag specific logs by the setting property
Differences in services
At the core, both Fire OS and Android share the same foundation. The main way Fire OS differs from Android is in the services. Instead of using Google's services (for activities such as browsing, location, messaging, payments, and so on), Fire OS might use Amazon's services. Most notably, Amazon uses the Amazon Appstore to list your app while Google uses Google Play Store.
If your Android app connects into Google services, porting your Android app to Fire OS may require you to tap into Amazon services instead.
When you're building your app, follow the standard Android documentation. Where there are differences to account for with Amazon's Fire OS, they're noted in the documentation on this site.
The goal is to provide as much parity as possible with Android (minus Google's services) so that you don't have to learn another development technique or make changes to your existing Android app.
The following table contrasts services from Google with similar services from Amazon.
Last updated: May 19, 2023