GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Fire OS Developer Docs
  • Amazon Fire TV

This view

  • Original page
  • New address

GeezerVison is showing developer.amazon.com — Network Proxy (Developer Tools on Fire TV) | Amazon Fire TV

Amazon Developer
Alexa
Amazon Appstore
Ring
AWS
Documentation

Console

as

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

Console

as

Fire OS Developer Docs
Home
Develop
Test
Publish
Monetize
Engage users
Device specifications
Resources
Amazon Fire TV

Collapse All | Expand All


  • << Fire OS Developer Docs
    • Overview
      • Get Started with Fire TV
      • Fire TV Development Versus Android TV Development
      • TV App Design UX Guidelines
      • Submitting Your Fire TV App to the Appstore
      • Promote Your App On Fire TV
      • Glossary
      • Amazon Fire TV FAQs
      • Smart TV FAQ
      • What's New in Fire TV Development
    • Fire OS for Fire TV
      • Fire OS Overview
      • Developing for Amazon Fire TV Devices Running Fire OS 16
      • Developing for Amazon Fire TV Devices Running Fire OS 14
      • Developing for Amazon Fire TV Devices Running Fire OS 8
      • Developing for Amazon Fire TV Devices Running Fire OS 7
      • Developing for Amazon Fire TV Devices Running Fire OS 6
    • Set Up Your Development Environment
      • Set Up Your Development Environment
      • Connect to Fire TV through ADB
      • Install and Run Your App
    • Controllers in Android Apps
      • Remote Control Input
      • Game Controller Input
      • Controller Input with Unity
      • Identify Controllers
      • Controller Behavior Guidelines
      • Controller Image Assets
    • Voice
      • Overview for Voice-enabling Your App and Content
      • Voice-enabling Transport Controls with Media Session API
      • In-App Voice Scrolling and Selection
    • Multimedia
      • Managing Audio Focus
      • Testing Audio Focus
      • Dolby Integration
      • Requirements for Multimedia Apps
      • AV Synchronization in Android Applications
      • APIs for HDMI Mode Switch
      • Tunnel Mode Playback
    • Automotive
      • Automotive UX Guidelines
      • Add touch to Fire TV
      • Automotive Developer Reference
    • Fire TV Integration SDK
      • Get Started with the Fire TV Integration SDK
      • Developer Tools
        • Setup the Sample Fire TV App
      • Content Personalization
        • Introduction to Content Personalization
        • Data Types
          • Watch Activity
          • Watchlist
        • Data Type Reference
        • Summary Reference Table
      • Fire TV Integration SDK General Troubleshooting
      • Test Cases for Validating Integration
      • Release Notes
    • Live TV Integrations
      • Linear Integration
        • Introduction to Linear Television Integration
        • TV Input Framework on Fire TV
        • Step-by-step Integration Guide
          • Linear TV Integration Guide Overview
          • Step 1: Set Up Project Dependencies
          • Step 2: Set Up TvInputService
          • Step 3: Insert Your First Channel
          • Step 4: Playback in Fire TV UI
          • Test Cases for Linear Apps
        • Live TV Resources
      • Events Integration
        • Events Integration on Fire TV
        • Test Cases for Events Apps
    • How to Build an Android App for Fire TV
      • Step 1: Create a Media Streaming App
      • Step 2: Understand the Anatomy of a Leanback-Enabled Android App for Amazon Fire TV
      • Step 3: Browse the Content of a Leanback-Enabled Android App
      • Step 4: Edit the User Interface Through Presenters
      • Step 5: Provide the Details of the App Content Through the DetailsFragment
      • Step 6: Play Video Content with the PlaybackOverlayFragment
    • Developer Tools and System X-ray
      • Developer Tools Menu
      • System X-Ray
      • Customizing System X-Ray
      • Network Proxy
    • Development Best Practices
      • Mouse Pointers
      • Display and Layout
      • Media Players
      • HDMI Events
      • Android Menu and ActionBar widgets
      • DIAL Integration
      • Matter Casting
        • Overview of Matter Casting
        • Matter Casting Integration
        • App Attestation
      • Search
      • Notifications
      • App Installation Location
      • Advertising ID
      • Deep Linking to Featured Content from the Fire TV UI
      • Resources for International Locales
    • Web Apps for Fire TV
      • Get Started with Web Apps
      • Web App Controllers
      • Customize Your App
      • User Agent Strings
      • Migrate Your Existing Web App
      • Cordova plugin for Amazon Catalog Integration
      • Web App FAQ
      • HTTP Caching
      • Protect Your Web App
      • Install and Use the Amazon Web App Tester
      • Use the Debug APK to Test Your App
      • Install and Run the Debug APK to Test Your App
      • HTML5 Hybrid Apps
      • Build and Test Your HTML5 Hybrid App
      • HTML5 Hybrid App FAQs
    • React Native for Fire TV
      • Get Started with React Native (Fire TV)
      • Add TV Support to an Existing React Native Project (Fire TV)
      • Supported React Native Libraries (Fire TV)
    • Accessibility
      • Assistive Technologies for Fire OS
      • Implement Accessibility in Fire OS
      • Accessibility Features
        • Implement Reading and Subscribing to AD/CC Settings
        • Implement VoiceView Accessibility Features

    Network Proxy (Developer Tools on Fire TV)

    The Developer Tools Menu provides a Network Proxy option that allows you to inspect the HTTP traffic. If your app communicates with remote services or websites, it's often useful to inspect the HTTP or HTTPS traffic it generates. This includes requests initiated by your app and the responses it receives, as well as HTTP headers containing (among other things) cookies and caching information.

    Note: See Invoke the Developer Tools Menu for instructions on showing the Developer Tools menu.
    • Network Proxy
      • Working with HTTPS and Encrypted Data using Charles Proxy
        • Trusting Charles CA on Fire OS 5
        • Trusting Charles CA on Fire OS 6
        • Inspecting Encrypted Traffic
    • See Also

    Network Proxy

    If your app communicates with remote services or websites, it's often useful to inspect the HTTP or HTTPS traffic it generates. This includes requests initiated by your app and the responses it receives, as well as HTTP headers containing (among other things) cookies and caching information.

    The Network Proxy option allows you to specify the hostname and port of a proxy through which all network traffic will pass, allowing you to observe the data sent to or from your app. The proxy host and your Fire TV must be on the same network.

    Working with HTTPS and Encrypted Data using Charles Proxy

    If your app works with sensitive information, it is likely that you rely on HTTPS connections to protect against eavesdropping and man-in-the-middle attacks. In this case, traffic is SSL-encrypted between source and destination, keeping it private—the data is inaccessible even to a proxy you configure yourself through the Network Proxy option.

    Some proxies support SSL Proxying, allowing you to view network traffic even when it's encrypted. Charles Proxy is a popular utility that offers this feature. When your app attempts to communicate with a remote server, Charles Proxy intercepts the server certificate, and dynamically generates and signs one of its own. It uses this substitute certificate to establish a secure connection with your app, then securely connects to the remote site using the original server certificate it received, allowing you to view in plain text the communication between your app and the SSL web server.

    To take advantage of SSL Proxying in Charles Proxy, your app must trust the certificate authority (Charles CA) used to sign the substitute certificate that Charles Proxy generates. On Fire OS 5, simply installing the certificate on your device is sufficient, since all apps implicitly trust certificates installed at the device level. On Fire OS 6, each app must explicitly specify which certificates it trusts by listing them in res/xml/network_security_config.xml.

    To determine the Fire OS version installed on your test device, go to Settings > My Fire TV > About > Fire TV and look at the "Software Version" details. You can also review the complete list of Fire TV devices and their corresponding Fire OS versions.

    The following steps assume you have already installed and configured Charles Proxy. See the documentation if you are new to the application.

    Trusting Charles CA on Fire OS 5

    1. Obtain the certificate file in PEM format from within the Charles Proxy application. From the menu, choose Help > SSL Proxying > Save Charles Root Certificate….
    2. Upload the certificate file to your Fire TV device:
       adb push charles-ssl-proxying-certificate.pem /storage/emulated/0/Download
      
    3. Bring up the Certificate Installer dialog for the file you uploaded:
       adb shell am start -a "android.intent.action.VIEW" -d "file:///storage/emulated/0/Download/charles-ssl-proxying-certificate.pem" -t "application/x-x509-ca-cert"
      
    4. Provide a friendly name and ensure that VPN and apps is selected under Credential use.

    5. Press OK to install the certificate. You will be asked to authenticate with your Amazon credentials and an onscreen notification will confirm success.

    Trusting Charles CA on Fire OS 6

    1. Obtain and install the certificate file as for Fire OS 5.
    2. Update your Android project's AndroidManifest.xml to include a network security configuration file:

       <?xml version="1.0" encoding="utf-8"?>
       <manifest ... >
           <application android:networkSecurityConfig="@xml/network_security_config"
                        ... >
              ...
           </application>
       </manifest>
      
    3. Add android:debuggable="true" to the element if your IDEs and build tools don't set this flag automatically. See details on how to Configure CAs for debugging.
    4. Add the following res/xml/network_security_config.xml to your Android project to explicitly trust all installed certificates:

       <?xml version="1.0" encoding="utf-8"?>
       <network-security-config>
           <debug-overrides>
               <trust-anchors>
                   <!-- Trust the following CA while debuggable only -->
                   <certificates src="user"/>
               </trust-anchors>
           </debug-overrides>
       </network-security-config>
      

    —OR—

    1. Obtain the certificate file as for Fire OS 5, but do not install it on the device.
    2. Instead, embed the file directly in your app by copying it to the res/raw subdirectory of your Android project. You can rename the file for convenience, if you want (for example, res/raw/my_ca).
    3. Update your Android project's manifest to add a network security configuration file such as res/xml/network_security_config.xml, but change the src attribute to use the filename you chose for the certificate:

       ...
       <!-- Trust the following CA while debuggable only -->
       <certificates src="@raw/my_ca"/>
       ...
      

    Inspecting Encrypted Traffic

    After you have configured your device to trust the Charles CA certificate, you can enable the Network Proxy on your device and begin observing encrypted traffic to and from your app. It is important to perform the following steps in the order listed.

    To inspect encrypted traffic using Charles Proxy:

    1. Make sure Charles Proxy is running.
    2. Turn on SSL Proxying in the Charles Proxy application. From the menu, choose Proxy > SSL Proxy Settings…, then use Add to specify which hosts to observe. Subdomains such as www are considered distinct and should be listed individually.

    3. On your device, set Network Proxy mode to Manual and specify the hostname (or IP address) and port number where Charles Proxy is running.

    4. Launch your app.

    You can now view secure network traffic between your app and the server endpoints for which you enabled SSL Proxying in Charles Proxy. The data is unencrypted for display by Charles Proxy, then re-encrypted for delivery to its final destination. You can see cleartext headers and bodies of each request and response.

    For more information about using Charles Proxy to inspect your app's network traffic, see the documentation.

    See Also

    For more details, see the following:

    • Developer Tools Menu
    • System X-Ray
    • Customize System X-Ray Metrics

    Last updated: Jan 28, 2021


    • Network Proxy
      • Working with HTTPS and Encrypted Data using Charles Proxy
    • See Also
    Follow us:

    Resources

    • Appstore developer blog

    • Technical documentation

    • Amazon Developer Huddle

    Supported devices

    • Amazon Fire TV

    • Fire tablets

    Other services & APIs

    • Small Business Accelerator Program

    • Developer Promotions Console

    • Alexa for video publishers

    • Login with Amazon

    • Frustration-Free Setup

    • Amazon Incentives API

    • Amazon Merch on Demand

    • Amazon Music

    • Fire TV Partners

    Support

    • Appstore Developer Community

    • FAQs

    • Contact us

    Legal

    • Terms & agreements

    • Privacy Notice

    amazon_developer_logo

    © 2010-2026, Amazon.com, Inc. or its affiliates. All Rights Reserved.

    Terms

    Amazon Developer Blog

    Contact Us

    You are visitor 01402503 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.