APK Findings Hint at New Luna App Features

Amazon Luna Controller Sale

Update 5/19/2023

There is yet a new Luna apk out for Android – version 1.1.1790. And, it has even more strings related to support for bridging third party controllers:

<string name="cd_hub_device_name_baton">LUNA CONTROLLER</string>
<string name="cd_hub_device_name_generic">GENERIC CONTROLLER</string>
<string name="cd_hub_device_name_ps4">PLAYSTATION 4 CONTROLLER</string>
<string name="cd_hub_device_name_ps5">PLAYSTATION 5 CONTROLLER</string>
<string name="cd_hub_device_name_xbox_360">XBOX 360 CONTROLLER</string>
<string name="cd_hub_device_name_xbox_one">XBOX WIRELESS CONTROLLER</string>

In addition, the APK comes with libraries that appear to be related to gamepads rolled out to more of its build types.

  • libAmazCDClient.so
  • libAmazCDManager.so

Original Story:

Amazon Luna has and Android app that, up until this point, has primarily been focused on setting up the Luna Controller on your home WIFI network. But, things maybe about to get more interesting.

Amazon Luna Android App Screenshot

We had a quick peak at the latest APK release thanks to the folks over at APK Mirror. Version 1.1 of the app (which was updated today) but actually released back in February, contains some new and juicy strings for us to attempt to interpret. Let’s have a look!

3rd Party Controller Tethering For Playing on any Screen

Firstly it looks like 3rd party controller tethering is on the way. Based on the strings below, the feature looks nearly identical to what Stadia added late in its life as “phone link” – the ability to connect any controller you have laying around “directly” to the cloud server using your phone as a bridge. However, it looks like you’ll be asked to keep the app window open when doing this.

<string name="cd_hub_card_description">Connect non-Luna controllers directly to Luna via Cloud Direct for easy transitioning of gameplay from one screen to the next.</string>

<string name="cd_hub_card_status_playing">Playing ${game_title}</string>

<string name="cd_hub_keep_window_open_text">Keep this window open when using a non-Luna controller.</string>

<string name="cd_hub_no_device_text">To use a non-Luna controller via Cloud Direct, ensure it is turned on and connected to this device via Bluetooth or USB. Click below to launch device settings.</string>

<string name="cd_hub_title">Connect non-Luna Controllers</string>

<string name="character_counter_content_description">Characters entered %1$d of %2$d</string>

<string name="character_counter_overflowed_content_description">Character limit exceeded %1$d of %2$d</string>

<string name="character_counter_pattern">%1$d/%2$d</string>

<string name="chip_text">Chip text</string>

<string name="clear_text_end_icon_content_description">Clear text</string>

Join Game Chat from Your Phone

The following new strings appear to associated with being able to your phone as microphone for in game chat – relevant predominantly for games in the Ubisoft+ channel that support multiplayer and perhaps Fortnite when it arrives.

  • Use this device’s microphone for in-game voice chat and audio.
  • Using a non-Luna Controller?
  • Disable Game Audio
  • Disconnect Voice Chat
  • Enable Game Audio
  • Keep this window open while using voice chat.
  • Microphone
  • Mute Mic
  • Initializing…
  • Pairing with Luna…
  • Playing ${game_title}
  • “You’re ready to chat”
  • Searching for Luna…
  • Voice Chat
  • Unmute Mic

This feature (which we *think* is new) is actually already live in the app.

Luna Controller App With Voice Chat

Media Playback Controls For ??

We also see a number of new strings for controlling what appears to be video playback. We’re not really sure what this means. Could clip saving/sharing/viewing be coming? Is this just for viewing videos related to the controller setup?

<string name="error_icon_content_description">Error</string>
<string name="exo_controls_cc_disabled_description">Enable subtitles</string>
<string name="exo_controls_cc_enabled_description">Disable subtitles</string>
<string name="exo_controls_custom_playback_speed">%1$.2fx</string>
<string name="exo_controls_fullscreen_enter_description">Enter fullscreen</string>
<string name="exo_controls_fullscreen_exit_description">Exit fullscreen</string>
<string name="exo_controls_hide">Hide player controls</string>
<string name="exo_controls_next_description">Next</string>
<string name="exo_controls_overflow_hide_description">Hide additional settings</string>
<string name="exo_controls_overflow_show_description">Show additional settings</string>
<string name="exo_controls_playback_speed">Speed</string>
<string name="exo_controls_playback_speed_normal">Normal</string>
<string name="exo_controls_previous_description">Previous</string>
<string name="exo_controls_seek_bar_description">Playback progress</string>
<string name="exo_controls_settings_description">Settings</string>
<string name="exo_controls_show">Show player controls</string>
<string name="exo_controls_shuffle_off_description">Shuffle off</string>
<string name="exo_controls_shuffle_on_description">Shuffle on</string>


There are a lot of strings around viewing and picking dates. It’s hard to say what this means, but it could be part of some sort of timeline feature.

<string name="material_clock_display_divider">:</string>
<string name="material_clock_toggle_content_description">Select AM or PM</string>
<string name="material_hour_selection">Select hour</string>
<string name="material_hour_suffix">"%1$s o'clock"</string>
<string name="material_minute_selection">Select minutes</string>
<string name="material_minute_suffix">%1$s minutes</string>
<string name="material_slider_range_end">Range end,</string>
<string name="material_slider_range_start">Range start,</string>
<string name="material_timepicker_am">AM</string>
<string name="material_timepicker_clock_mode_description">Switch to clock mode for the time input.</string>
<string name="material_timepicker_hour">Hour</string>
<string name="material_timepicker_minute">Minute</string>
<string name="material_timepicker_pm">PM</string>
<string name="material_timepicker_select_time">Select time</string>
<string name="material_timepicker_text_input_mode_description">Switch to text input mode for the time input.</string>
<string name="mtrl_badge_numberless_content_description">New notification</string>
<string name="mtrl_exceed_max_badge_number_content_description">More than %1$d new notifications</string>
<string name="mtrl_exceed_max_badge_number_suffix">%1$d%2$s</string>
<string name="mtrl_picker_a11y_next_month">Change to next month</string>
<string name="mtrl_picker_a11y_prev_month">Change to previous month</string>
<string name="mtrl_picker_announce_current_selection">Current selection: %1$s</string>
<string name="mtrl_picker_cancel">@android:string/cancel</string>
<string name="mtrl_picker_confirm">@android:string/ok</string>
<string name="mtrl_picker_date_header_selected">%1$s</string>
<string name="mtrl_picker_date_header_title">Select Date</string>
<string name="mtrl_picker_date_header_unselected">Selected date</string>
<string name="mtrl_picker_day_of_week_column_header">Column of days: %1$s</string>
<string name="mtrl_picker_invalid_format">Invalid format.</string>
<string name="mtrl_picker_invalid_format_example">Example: %1$s</string>
<string name="mtrl_picker_invalid_format_use">Use: %1$s</string>
<string name="mtrl_picker_invalid_range">Invalid range.</string>
<string name="mtrl_picker_navigate_to_year_description">Navigate to year %1$s</string>
<string name="mtrl_picker_out_of_range">Out of range: %1$s</string>
<string name="mtrl_picker_range_header_only_end_selected">Start date – %1$s</string>
<string name="mtrl_picker_range_header_only_start_selected">%1$s – End date</string>
<string name="mtrl_picker_range_header_selected">%1$s – %2$s</string>
<string name="mtrl_picker_range_header_title">Select Range</string>
<string name="mtrl_picker_range_header_unselected">Start date – End date</string>
<string name="mtrl_picker_save">Save</string>
<string name="mtrl_picker_text_input_date_hint">Date</string>
<string name="mtrl_picker_text_input_date_range_end_hint">End date</string>
<string name="mtrl_picker_text_input_date_range_start_hint">Start date</string>
<string name="mtrl_picker_text_input_day_abbr">d</string>
<string name="mtrl_picker_text_input_month_abbr">m</string>
<string name="mtrl_picker_text_input_year_abbr">y</string>
<string name="mtrl_picker_toggle_to_calendar_input_mode">Switch to calendar input mode</string>
<string name="mtrl_picker_toggle_to_day_selection">Tap to switch to selecting a day</string>
<string name="mtrl_picker_toggle_to_text_input_mode">Switch to text input mode</string>
<string name="mtrl_picker_toggle_to_year_selection">Tap to switch to selecting a year</string>

Hard to say exactly what this is about, but we are excited to find out! Let us know your thoughts in the comments.


Jack Deslippe

Jack Deslippe is an HPC professional with a PhD in Physics from the University of California, Berkeley. As a hobby, he is passionate about consumer technology and Cloud Gaming in particular. He volunteers as an editor for Cloud Dosage in his spare time. See the games Jack is Playing at ExoPhase. Like his content? You can follow Jack on Threads: @jackdeslippe and Buy Jack a Beer.

Leave a Reply