as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases

as

Develop
Test
Publish
Monetize
Engage users
Device specifications
Resources

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:

The following table shows which Fire TV device runs which OS version.

Fire TV Device Build Model Android Level OS Version
Onida 4K Smart Fire TV (2026) AFTAR04B9A Android Level 34 (Android 14) Fire OS 14
Amazon Fire TV Omni QLED Series (2025) AFTPOC9BD3 / AFTPO9D4D7 Android Level 30 (Android 11) Fire OS 8
Amazon Fire TV 2-Series (2025) AFTCU864A2 / AFTCUD6595 Android Level 30 (Android 11) Fire OS 8
Amazon Fire TV 4-Series (2025) AFTNA1322D / AFTNA67200 Android Level 30 (Android 11) Fire OS 8
Fire TV Stick 4K Plus (2025) AFTMA08C15 Android Level 30 (Android 11) Fire OS 8
Fire TV Stick 4K Select (2025) AFTCA002 N/A Vega OS version: OS 1.1
Fire TV JVC - 4K UHD LCD TV (2025) AFTWYM01 Android Level 30 (Android 11) Fire OS 8
Fire TV Panasonic - W95B/W90B/W80B 4K UHD LCD TV (2025) AFTWYM01 Android Level 30 (Android 11) Fire OS 8
Fire TV Panasonic - Z95B/Z90B Series 4K UHD HDR OLED TV (2025) AFTTOR001 Android Level 30 (Android 11) Fire OS 8
Xiaomi TV 4K HDR TV (2026) AFTBR92D74 Android Level 30 (Android 11) Fire OS 8
TCL 4K Smart Fire TV QLED Panels (2025) AFTMA475B1 Android Level 30 (Android 11) Fire OS 8
Echo Show 21 (2024) AEOSY Android Level 28 (Android 9) Fire OS 7
Echo Show 15 - Gen 2 (2024) AEOCY Android Level 28 (Android 9) Fire OS 7
Regal 4K LED Fire TV (2025) AFTSH3F7EF Android Level 30 (Android 11) Fire OS 8
4K Fire TV QLED Smart TV (2024) AFTSH3F7EF Android Level 30 (Android 11) Fire OS 8
4K Ultra HD Smart TV (2024) AFTPOF46A5 Android Level 30 (Android 11) Fire OS 8
Fire TV Stick HD Alexa Voice Remote (2024) AFTSS Android Level 28 (Android 9) Fire OS 7
Funai 4K - Fire TV (2024) UF560 Android Level 28 (Android 9) Fire OS 7
Fire TV Panasonic - W95A/W90A/W80A 4K UHD LCD TV (2024) AFTWYM01 Android Level 30 (Android 11) Fire OS 8
Fire TV Panasonic - Z85A Series 4K UHD HDR OLED TV (2024) AFTWYM01 Android Level 30 (Android 11) Fire OS 8
Fire TV Panasonic - Z95A/Z93A/Z90A Series 4K UHD HDR OLED TV (2024) AFTTOR001 Android Level 30 (Android 11) Fire OS 8
Panasonic 4K MX800 series with Fire TV (2023) AFTBOXE1 Android Level 28 (Android 9) Fire OS 7
Redmi 108cm (43 inches) 4K Ultra HD smart LED Fire TV (2023) AFTBTX4 Android Level 28 (Android 9) Fire OS 7
TCL Class S3 1080p LED Smart TV with Fire TV (2023) AFTMD002 Android Level 28 (Android 9) Fire OS 7
Fire TV Stick 4K Max - 2nd Gen (2023) - 16 GB AFTKRT Android Level 30 (Android 11) Fire OS 8
Fire TV Stick 4K - 2nd Gen (2023) - 8 GB AFTKM Android Level 30 (Android 11) Fire OS 8
TCL 32" FHD, 40" FHD Fire TV (2023) AFTSHN02 Android Level 28 (Android 9) Fire OS 7
Fire TV - TCL S4 Series 4K UHD HDR LED (2023) AFTMD001 Android Level 28 (Android 9) Fire OS 7
Fire TV - TCL Q6 4K QLED HDR (2023) AFTMD001 Android Level 28 (Android 9) Fire OS 7
Fire TV 2-Series (2023) AFTKA002 / AFTKAUK002 Android Level 28 (Android 9) Fire OS 7
Fire TV - Hisense 4K UHD (2022) AFTHA004 Android Level 28 (Android 9) Fire OS 7
Toshiba 4K UHD - Fire TV (2022) AFTHA004 Android Level 28 (Android 9) Fire OS 7
BMW (2022) AFTLBT962E2 Android Level 28 (Android 9) Fire OS 7
Echo Show 15 (2021) AEOHY Android Level 28 (Android 9) Fire OS 7
Fire TV Omni QLED Series (2022) AFTTIFF43 Android Level 28 (Android 9) Fire OS 7
Fire TV Cube - 3rd Gen (2022) AFTGAZL Android Level 28 (Android 9) Fire OS 7
Xiaomi F2 4K - Fire TV (2022) AFTANNA0 Android Level 28 (Android 9) Fire OS 7
Hisense U6 4K UHD - Fire TV (2022) AFTHA001 Android Level 28 (Android 9) Fire OS 7
Funai 4K - Fire TV (2022) AFTMON001, AFTMON002 Android Level 28 (Android 9) Fire OS 7
JVC 4K - Fire TV with Freeview Play (2021) AFTJULI1 Android Level 28 (Android 9) Fire OS 7
ok 4K - Fire TV (2021) AFTANNA0 Android Level 28 (Android 9) Fire OS 7
Toshiba 4K Far-field UHD - Fire TV (2021) AFTHA003 Android Level 28 (Android 9) Fire OS 7
Fire TV Stick 4K Max - 1st Gen (2021) AFTKA Android Level 28 (Android 9) Fire OS 7
Stellantis (Jeep) - Wagoneer/Grand Wagoneer AFTLFT962X3 Android Level 28 (Android 9) Fire OS 7
Fire TV Omni Series (2021) AFTTIFF43 Android Level 28 (Android 9) Fire OS 7
Toshiba V35 Series LED FHD/HD - Fire TV (2021) AFTHA002 Android Level 28 (Android 9) Fire OS 7
Fire TV 4-Series (2021) AFTTI43 Android Level 28 (Android 9) Fire OS 7
Toshiba 4K UHD - Fire TV (2021) AFTHA001 Android Level 28 (Android 9) Fire OS 7
AmazonBasics 4K - Fire TV (2020) AFTPR001 Android Level 28 (Android 9) Fire OS 7
AmazonBasics HD/FHD - Fire TV (2020) AFTBU001 API Level 25 (Android 7.1) Fire OS 6
Technika 4K - Fire TV (2020) `` Android Level 28 (Android 9) Fire OS 7
JVC 2K - Fire TV (2020) AFTWMST22 Android Level 28 (Android 9) Fire OS 7
Onida HD/FHD - Fire TV (2020) [Available in two sizes] AFTTIFF55 API Level 25 (Android 7.1) Fire OS 6
ok 4K - Fire TV (2020) AFTWI001 Android Level 28 (Android 9) Fire OS 7
Fire TV Stick - 3rd Gen (2020) AFTSSS Android Level 28 (Android 9) Fire OS 7
Fire TV Stick Lite - 1st Gen (2020) AFTSS Android Level 28 (Android 9) Fire OS 7
Toshiba 4K UHD - Fire TV (2020) AFTDCT31 Android Level 28 (Android 9) Fire OS 7
Insignia 4K UHD - Fire TV (2020) AFTDCT31 Android Level 28 (Android 9) Fire OS 7
Fire TV Stick - 2nd Gen (2016-2019) AFTT Android Level 22 (Android 5.1) Fire OS 5
Toshiba HD - Fire TV (2018-2020) AFTBAMR311 API Level 25 (Android 7.1) Fire OS 6
Insignia HD - Fire TV (2018-2020) AFTEAMR311 API Level 25 (Android 7.1) Fire OS 6
Toshiba 4K - Fire TV (2018-2019) AFTKMST12 API Level 25 (Android 7.1) Fire OS 6
Onida HD - Fire TV (2019) AFTLE API Level 25 (Android 7.1) Fire OS 6
Fire TV Cube - 2nd Gen (2019) AFTR Android Level 28 (Android 9) Fire OS 7
Grundig OLED 4K - Fire TV (2019) AFTEUFF014 Android Level 28 (Android 9) Fire OS 7
Grundig Vision 7, 4K - Fire TV (2019) AFTEU014 Android Level 28 (Android 9) Fire OS 7
JVC 4K - Fire TV (2019) AFTSO001 Android Level 28 (Android 9) Fire OS 7
Nebula Soundbar - Fire TV Edition (2019) AFTMM API Level 25 (Android 7.1) Fire OS 6
TCL Soundbar with Built-in Subwoofer - Fire TV Edition (2019) AFTMM API Level 25 (Android 7.1) Fire OS 6
Grundig Vision 6 HD - Fire TV (2019) AFTEU011 Android Level 28 (Android 9) Fire OS 7
Insignia 4K - Fire TV (2018) AFTJMST12 API Level 25 (Android 7.1) Fire OS 6
Fire TV Cube - 1st Gen (2018) AFTA API Level 25 (Android 7.1) Fire OS 6
Fire TV Stick 4K - 1st Gen (2018) AFTMM API Level 25 (Android 7.1) Fire OS 6
Fire TV Stick - Basic Edition (2017) AFTT Android Level 22 (Android 5.1) Fire OS 5
Element 4K - Fire TV (2017) AFTRS Android Level 22 (Android 5.1) Fire OS 5
Fire TV - 3rd Gen (2017) AFTN API Level 25 (Android 7.1) Fire OS 6
Fire TV - 2nd Gen (2015) AFTS Android Level 22 (Android 5.1) Fire OS 5
Fire TV Stick - 1st Gen (2014) AFTM Android Level 22 (Android 5.1) Fire OS 5
Fire TV - 1st Gen (2014) AFTB Android Level 22 (Android 5.1) Fire OS 5

For more specification information, see Device Specifications for Fire TV.

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 following 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 Fire OS 5, 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 app 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, you can override tag specific logs by the setting property log.tag.ActivityManager=D. Logd understands this and prints all debug logs with the mentioned TAG.

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 might require you to use 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 change your existing Android app.

The following table contrasts services from Google with similar services from Amazon.

Google Android Fire OS
Firebase Cloud Messaging A3L Messaging
or Amazon Device Messaging
Google Play In-App Billing Appstore Billing Compatibility SDK
or Amazon In-App Purchasing API
Cast SDK Matter Casting
Google Mobile Ads SDK Amazon Publisher Services
Sign-In with Google A3L Authentication
or Login with Amazon
Google Play Developer API App Submission API

Last updated: Mar 09, 2026

").insertBefore(this); } }); }); $(document).ready(function() { if ($("#jumpoffset").length) { var scrollhash = document.getElementById('jumpoffset'); scrollhash.scrollIntoView(true); if (location.hash) { location.href = location.hash; } else { var scrollbody = document.querySelector('.mainColumn'); scrollbody.scrollIntoView(true); window.scroll(0, -500); } } }); $(document).ready(function() { if ($("#jump").length) { var scrollold = document.getElementById('jump'); scrollold.scrollIntoView(true); window.scroll(0, -100); if (location.hash) { location.href = location.hash; } } }); //resize container on local builds $(document).ready(function() { if (window.location.href.indexOf("/127.0.0.1:4000/") > -1) { document.querySelector('.container-fluid').style.position = 'fixed'; } }); //add underline to headers $(document).ready(function() { if ($(".productTitle").is(':contains("Alexa Skills Kit")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Skills Kit")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($(".productTitle").is(':contains("Alexa Presentation Language (APL)")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Skills Kit")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($(".productTitle").is(':contains("Alexa Connect Kit")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Connect Kit")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($(".productTitle").is(':contains("A/B Testing")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Skills Kit")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($(".productTitle").is(':contains("Alexa Smart Properties")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Smart Properties")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($(".productTitle").is(':contains("Alexa Conversations Developer Guide")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Skills Kit")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($(".productTitle").is(':contains("Alexa Design Guide")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Design Guide")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Design Guide")')) { $(this).css("padding", "0"); } }); } if ($(".productTitle").is(':contains("Alexa Gadgets Toolkit")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Gadgets Toolkit")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Gadgets Toolkit")')) { $(this).css("padding", "0"); } }); } if ($(".productTitle").is(':contains("Alexa Voice Service")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Alexa Voice Service")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($("h1").is(':contains("Alexa Reference Content")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Reference")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($("h1").is(':contains("Alexa Videos")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Videos")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($("h1").is(':contains("Alexa Code Samples")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Code Samples")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } if ($("h1").is(':contains("Documentation Home")')) { $(".dppnItem a").each(function() { if ($(this).is(':contains("Home")')) { $(this).css("border-bottom", "1.3px solid #FFFFFF"); } }); } }); $(document).ready(function () { const myScrollspy = $("#myScrollspy"); if (myScrollspy.length) { const containsList2orList3 = myScrollspy.find(".list2, .list3").length > 0; if (containsList2orList3) { myScrollspy.css("display", "block"); $(".fa.fa-info-circle").show(); } else { myScrollspy.css("display", "none"); $(".fa.fa-info-circle").hide(); } } }); /** * This function moves the 'page-not-translated' section from its original position * to a new position after the 'atd-categories-header' and ensures it is displayed * only in the new location. This is achieved by hiding the section initially, * moving it, and then displaying it again once it is in the correct position. */ $(document).ready(function() { const $pageNotTranslatedMessage = $('#page-not-translated'); const $desktopCategoriesHeader = $('.navigation-header.atd-categories-header'); const $mobileToggleHeader = $('.mobile-toggle'); if ($pageNotTranslatedMessage.length) { if ($mobileToggleHeader.length) { $pageNotTranslatedMessage.insertAfter($mobileToggleHeader); } else if ($desktopCategoriesHeader.length) { $pageNotTranslatedMessage.insertAfter($desktopCategoriesHeader); } $pageNotTranslatedMessage.show(); } }); // Function to handle smooth scrolling to target elements when links are clicked $(document).ready(function () { $('.customspy a, .mainColumn a').on('click', function (event) { const targetId = $(this).attr('href'); if (targetId && targetId.startsWith('#')) { event.preventDefault(); const targetElement = document.querySelector(`[id="${targetId.replace('#', '')}"]`); if (targetElement) { const hash = targetId.substring(1); window.history.pushState(null, '', `#${hash}`); targetElement.scrollIntoView(true); window.scroll(0, -500); } } }); }); window.addEventListener('DOMContentLoaded', function () { const targetId = window.location.hash; if (targetId) { const targetElement = document.querySelector(targetId); if (targetElement) { setTimeout(() => { targetElement.scrollIntoView(true); window.scrollBy(0, -500); }, 10); } } }); function activateContentBasedOnHash() { const currentHash = window.location.hash.substring(1); if (currentHash) { const contentElement = document.getElementById(currentHash); if (contentElement) { activateTabAndContent(contentElement); } } } function activateTabAndContent(contentElement) { const tabSection = contentElement.closest('.tab-pane'); if (tabSection) { const parentTabLink = document.querySelector(`a[href='#${tabSection.id}']`); if (parentTabLink) { const parentNavTabs = parentTabLink.closest('.nav-tabs'); if (parentNavTabs) { parentNavTabs.querySelectorAll('.nav-link').forEach(link => { link.classList.remove('active', 'show'); }); parentTabLink.classList.add('active', 'show'); } const parentTabContent = tabSection.closest('.tab-content'); if (parentTabContent) { parentTabContent.querySelectorAll('.tab-pane').forEach(tab => { tab.classList.remove('active', 'show'); }); tabSection.classList.add('active', 'show'); } } } } function scrollToHashWithOffset() { const tabHash = window.location.hash; const targetTabLink = document.querySelector(`.nav-tabs a[href="${tabHash}"]`); const mainContentColumn = document.querySelector('.inline'); if (targetTabLink && mainContentColumn) { const totalHeaderHeight = getTotalHeaderHeight() + 40; targetTabLink.scrollIntoView({behavior: 'smooth', block: 'start'}); setTimeout(() => { mainContentColumn.scrollBy(0, -totalHeaderHeight); }, 20); } } function getTotalHeaderHeight() { return [...document.querySelectorAll('.atd-services-header, .atd-categories-header')] .reduce((total, header) => total + (header ? header.offsetHeight : 0), 0); } function handleClick(event) { event.preventDefault(); const link = event.currentTarget; const hash = link.getAttribute('href').substring(1); const contentElement = document.getElementById(hash); if (contentElement) { activateTabAndContent(contentElement); scrollToHashWithOffset(); } } function handleBackToTopClick(event) { event.preventDefault(); const mainContentColumn = document.querySelector('.inline'); if (mainContentColumn) { mainContentColumn.scrollTo({top: 0, behavior: 'smooth'}); } window.scrollTo({top: 0, behavior: 'smooth'}); } document.addEventListener('DOMContentLoaded', () => { activateContentBasedOnHash(); scrollToHashWithOffset(); const myScrollspy = document.getElementById('myScrollspy'); if (myScrollspy) { myScrollspy.querySelectorAll('a[href^="#"]').forEach(link => { link.addEventListener('click', handleClick); }); } document.querySelectorAll('.dpfBackToTopLink, .backToTop').forEach(link => { link.addEventListener('click', handleBackToTopClick); }); }); // Show tab link as selected when clicked $(document).ready(function() { $('.nav-tabs > li > a').on('click', function(e) { e.preventDefault(); $(this).tab('show'); $(this).addClass('active show'); }); }); // Fix for when version dropdown is on the same page as nav tab dropdown // closes other dropdown menu to avoid overlap/usability issues $(document).ready(function() { // Version selector dropdown $('.versionsButton').click(function(e) { // Close the nav tab dropdown if open $('.nav-link.dropdown-toggle').siblings('.dropdown-menu').removeClass('show'); }); // Nav tab selector dropdown $('.nav-link.dropdown-toggle').click(function(e) { // Close the version dropdown if open $('.versionsButton').siblings('.dropdown-menu').removeClass('show'); }); }); // Handle active state management for dropdown menu in nav-tabs // Fixes edge case issues for when version selector dropdown and // nav-tab dropdown appear on the same page $(document).ready(function() { // Function to deactivate all tab panes and reset dropdown items function deactivateAllTabs() { $('.position .nav-item.dropdown .dropdown-menu .dropdown-item').each(function() { const targetId = $(this).attr('href'); $(targetId).removeClass('active show'); $(this).removeClass('active show'); }); } // Store the original pushState function const originalPushState = history.pushState; // Create a custom event for pushState const pushStateEvent = new Event('pushState'); // Override pushState history.pushState = function() { originalPushState.apply(this, arguments); // Dispatch the custom event window.dispatchEvent(pushStateEvent); }; // Add pushState listener window.addEventListener('pushState', function() { const params = new URLSearchParams(window.location.search); const vValue = params.get('v'); // Handle query parameter change from version selector if (vValue) { // Remove active classes from all tabs deactivateAllTabs(); $('.position').each(function() { var firstTabPane = $(this).find('.tab-pane').first(); if (firstTabPane.length > 0) { var tabId = firstTabPane.attr('id'); var dropdownItem = $('.dropdown-menu .dropdown-item[href="#' + tabId + '"]'); // Make first tab in each version active dropdownItem.addClass('active show'); firstTabPane.addClass('active show'); } }); } }); // Handle dropdown item clicks $('.position .nav-item.dropdown .dropdown-menu .dropdown-item').click(function(e) { e.preventDefault(); // Remove active classes from all tabs deactivateAllTabs(); // Add active class to clicked item $(this).addClass('active show'); // Show corresponding tab content const targetId = $(this).attr('href'); $(targetId).addClass('active show'); }); // Handle initial load from URL hash if (window.location.hash) { const tabId = window.location.hash; // Only manipulate tabs if the hash matches a dropdown item (i.e., it's a tab ID) const matchingDropdownItem = $(`.position .nav-item.dropdown .dropdown-menu .dropdown-item[href="${tabId}"]`); if (matchingDropdownItem.length) { // Deactivate all tabs first deactivateAllTabs(); // Activate the correct tab and content matchingDropdownItem.addClass('active show'); $(tabId).addClass('active show'); } } }); // Remove show class from caption elements to preserve table-caption display // (fixes issue where the show class, which forces the display style to block, // caused the table caption to appear inside the table, rather than above it) $(document).ready(function() { if (window.location.hash) { const anchorId = window.location.hash.substring(1); const targetElement = document.getElementById(anchorId); if (targetElement) { const captionParent = $(targetElement).closest('caption'); if (captionParent.length) { captionParent.removeClass('show'); } } } });