Large companies have a hard time keeping secrets, especially when multiple partners and countless employees become involved. Bits and pieces are bound to leak out, both intentionally and accidentally, and sometimes a wealth of information can be discovered about unannounced plans. It appears that an app designed for Google's much anticipated MVNO has turned up in an unofficial Nexus 6 firmware image. If legitimate, the app not only confirms the service, but it may reveal some details about service plans, billing, and even a previously unheard-of name, "Project Fi."

Disclaimer: No matter the confidence level, there's always a chance product updates, features, and some or all details will be changed or cancelled altogether. As with all rumors, nothing is 100% until it's officially announced.

Warning: There are links to potentially modified firmware in this article. Android Police strongly advises against installing any software that cannot be verified as authentic and does not have a known and trusted origin. Do so at your own risk.

Confidence Level

This rumor gets a confidence level of 6 out of 10. Points are deducted because the evidence could not be independently verified. We have chosen to cover this information because a trusted source has confirmed the relevant files are real, and everything we can discern from an examination aligns with both publicly revealed rumors and private tips we've received from reliable sources.

The Origin of the Evidence

A little over a week ago, a firmware image for the Nexus 6 was uploaded to the file hosting site motofirmware.center. The original image link, and the site itself, appear to be unavailable at the time of this posting. However, the image is still available via a mirror link on an XDA thread. We've been informed that this firmware image was reconstructed from an internal build that had originally been distributed to testers via OTA update.

The build number for this version is labeled LVY47H, indicating this firmware was built on or after February 16th, about the same time as the other most recent Nexus 6 factory images.

For the purposes of this article, we're only interested in a single application discovered inside of the firmware image. This app is named Tycho.apk. It is signed with a release key, but not one that can be matched to any other key Google has used in the past for a publicly released app. For reference, the signing key on an app is used by the operating system to verify that an apk is an authentic update before replacing an older version. Since Google uses different keys for almost all of its apps, this isn't unexpected.

While there is no way to independently verify either of the aforementioned files, a trusted source reached out to us with confirmation that the apk itself is authentic. I've seen enough evidence that I consider this information to be accurate. Unfortunately, it's not possible to reveal proof without potentially exposing our source. Naturally, we encourage everything to be taken with a healthy dose of skepticism.

Examination / Teardown

From this point forward, I will treat the apk as legitimate for the sake of a thorough examination of its contents. This article is like any teardown, but much longer. With close to 500 strings and a few other bits of information, there's quite a lot to look at. Let's begin with some important names.

Note: For the sake of brevity, only a sampling of strings is included in most sections.

Names: Tycho, Nova, and Project Fi

Tycho is the codename for the app that will act as the interface to Google's new MVNO, at least on Android phones. It appears in both the filename Tycho.apk and the package name com.google.android.apps.tycho. Of course, this can and probably will change to something less obscure before the app is released. Google did the same thing with Inbox by Gmail, which was originally codenamed Bigtop before it saw a formal release.

The app is signed with a certificate that contains the name "nova" in the CN field. Of course, this matches the codename for the MVNO service we've heard about for the last few months. The name Nova seems to represent the physical implementation of the service, like the servers and infrastructure that the app will talk to. (Just to be clear, the fields of a certificate can be filled in with any names the creator chooses, and do not themselves prove that the app came from Google.)

Signature for Tycho.apk:

Owner: CN=nova, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US

Issuer: CN=nova, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US

Serial number: e5d78017ce8374a1

Valid from: Thu May 29 09:26:39 PDT 2014 until: Mon Oct 14 09:26:39 PDT 2041

Certificate fingerprints:

     MD5:  FA:6E:9A:64:39:76:17:30:31:0A:2E:C9:B9:35:D7:4B

     SHA1: 01:B8:44:18:4E:36:06:86:AA:98:B4:8E:B1:6E:05:C7:6D:4A:72:AD

     SHA256: 4C:36:AF:4A:5B:DA:D9:7C:1F:3D:8B:28:34:16:D2:44:49:6C:2A:C5:EA:FE:82:26:07:9E:F6:F6:76:FD:18:59

     Signature algorithm name: SHA1withRSA

     Version: 3

Finally, the application's title, and apparently the name used through the app to refer to the service, is "Project Fi." The strings used throughout the app exhaustively use the name Project Fi in reference to the app, the service, and even phones used with the service (e.g. "...your Project Fi phone").

<string name="about_app">About Project Fi</string>

<string name="activating_nova">Activating Project Fi…</string>

<string name="app_name">Project Fi</string>

<string name="notification_body_super_network">Let us help you activate additional features of your Project Fi phone.</string>

Google hardly ever does something like this without graphics. The hero image at the top of this article comes from the apk, and a matching launcher icon can be seen here.

The name Project Fi could be a play on the name of Google's land-based Internet service, Fiber; or simply a reference to Wi-Fi, which Google plans to use whenever possible to keep data costs low. However, allow me a moment to speculate that the service will launch with a different name. We've checked the domain names project.fi and projectfi.com, and both are taken, but by different owners several years apart. Additionally, most of the variations of these names, including the all-too-obvious projectfi.net, are still available. If Google had intended to use this name, these domains would have been claimed at least a few months ago. It's likely this name is also a codename; something Googlers and partners can call this thing until a final name is announced. At least, I hope so. I don't believe regular customers will fall in love with the name Project Fi.

I'm going on record now. I think the name will be Google Wireless. That may not be creative or unique, but it's recognizable, and Google already owns that name on the important TLDs.

The App: Tycho

If you have ever used an app from another wireless provider or MVNO, most of the functionality offered by Tycho is fairly ordinary. Customers can take care of standard account management like paying (and printing) bills, accessing usage stats, changing plan details, and other basic tasks.

I'm going to keep this section short because Tycho really doesn't offer many unique or remarkable features, but there is one aspect I'd like to call out. It's possible to activate service (partially), request a new number or initiate a transfer, and it all happens from within the app. Status updates are displayed when things change, including some degree of assistance if there are problems along the way. I'm not sure if any other service provider has ever done quite this much from within an app, but it seems like a nice touch.

<string name="activation_complete_late_port">"Your number transfer of %1$s is in progress. You can continue using your current phone number, %2$s, until the transfer is complete.

Welcome to Project Fi! You can find us any time in the Project Fi app."</string>

<string name="activation_complete_new_number">"Congratulations! Your service is activated. Your phone number is:

%1$s

Welcome to Project Fi! You can find us any time in the Project Fi app."</string>

<string name="activation_complete_no_number_no_omadm">"We're still working on assigning you a new number.

In the meantime, you can still connect to Wi‑Fi, but it might be several hours until you can get data, calls, and texts using Project Fi on this phone.

You'll get a notification on this phone as soon as your number is transferred."</string>

<string name="activation_complete_no_number_omadm">"We're still working on assigning you a new number.

In the meantime, your Project Fi data connection may be active, but it might be several hours until you can get calls and texts using Project Fi on this phone.

You'll get a notification on this phone as soon as your number is transferred."</string>

<string name="activation_complete_port_error">"Your service is activated, but there is a problem with your number transfer.

Please contact customer support to resolve the issue."</string>

<string name="activation_complete_port_in_omadm">"Your number transfer is underway.

As a reminder your Project Fi data connection may be active, but calls and texts wont't switch over to Project Fi until the transfer is done.

You'll get a notification on this phone as soon as your number is transferred."</string>

<string name="activation_complete_port_skipped">"Great! Your service is activated, but we still need some information to complete your number transfer.

Please complete your transfer by following the instructions in the Project Fi app."</string>

<string name="activation_configure_super_network_body">"To finish activation, your service will be briefly disconnected. If this isn't a good time, just cancel and Project Fi will try to finish activation overnight."</string>

<string name="activation_error_port_error">Please contact support to complete your number transfer.</string>

<string name="activation_error_port_skipped">Please enter your transfer information to complete activation of your Project Fi device.</string>

Also worth noting, it's possible to close an account, put it on hold, and resume service right from the app. This type of control probably isn't unique, but it's certainly not universally available. It's nice to see that Google isn't adding unnecessary resistance.

<string name="pause_service_title">Are you sure you want to pause your service?</string>

<string name="account_on_hold">Service paused</string>

<string name="account_on_hold_detail_date">Your Project Fi service is paused. During this time you can still use Wi‑Fi. You can choose to resume anytime, or your account will automatically reactivate on %1$s.</string>

<string name="account_on_hold_detail_no_date">Your Project Fi service is paused. During this time you can still use Wi‑Fi. You can choose to resume anytime.</string>

<string name="pause_service_text">You will immediately discontinue service for all your devices. You can choose to resume anytime, or your account will automatically reactivate on %1$s.</string>

<string name="suspended_details">Account %1$s has been placed on hold successfully.</string>

<string name="suspended_title">Account on hold</string>

<string name="suspending">Suspending…</string>

<string name="close_account">Close account</string>

<string name="close_confirm_agree">By continuing, you agree to pay any outstanding balances on your account.</string>

<string name="close_confirm_text">Upon closing your account, your access to wireless data will be suspended immediately and you will be automatically charged for any balances due.</string>

<string name="closed_title">"We're sad to see you go"</string>

<string name="closing">Closing…</string>

<string name="account_closed">Service canceled</string>

<string name="account_closed_detail">To sign up for Project Fi again, contact us.</string>

Finally, while they don't reveal any secrets, here are some of the more interesting images from the app.

left: illo_autopay, center: illo_payment_method, right: illo_upcoming_statement

The Service: Project Fi

Everybody wants to know how Google's MVNO will be different from its competitors. How will Google reshape the world of wireless? The app actually reveals quite a bit about what we can expect, both good and bad. Let's start with some of the business and billing details.

What You'll Pay For

Unlike most wireless carriers, Project Fi is built around the idea of only charging customers for what they use. There are still service plans like any carrier, but when customers don't utilize the allotment of data they have chosen, they will be credited for the unused amount at the end of the month. In the event that they exceed that amount, they are charged the same flat rate for each additional gigabyte. There appear to be no artificially hiked up overage fees.

<string name="data_plan_learn_more_body_format">"Your plan lets you choose how much data you want to pay for per month.

Don't worry if you don't get it just right: we'll give you a refund for what you don't use, and if you go over it's the same %1$s."</string>

<string name="data_plan_learn_more_body_generic">"Your plan lets you choose how much data you want to pay for per month.

Don't worry if you don't get it just right: we'll give you a refund for what you don't use, and if you go over it's the same cost."</string>

<string name="data_plan_learn_more_title">Data plan details</string>

<string name="credit_format">(%1$s)</string>

<string name="highlights">Highlights</string>

<string name="highlight_credit">Service credit</string>

<string name="highlight_credit_subtitle">%1$s credit</string>

<string name="highlight_data_refund">Credit for unused data</string>

<string name="highlight_data_refund_subtitle">%1$s back</string>

<string name="highlight_data_usage">%1$s additional data used</string>

<string name="highlight_data_usage_subtitle">%1$s more</string>

Plans appear to start with a flat rate to enable talk and text.

<string name="plan">Edit plan</string>

<string name="plan_data">Data</string>

<string name="plan_voice">Talk &amp; Text</string>

<string name="plan_voice_detail">%1$s, %2$s/month</string>

It looks like data is charged by the GB. For customers that only use a couple hundred MB each month, a GB seems like a large increment, but there aren't any competitors in the US that offer better alternatives. [Correction, Ting does offer a couple of lower tiers before going into 1 GB increments] It's not clear why, but there is also separate pricing per MMS, which seems ridiculous when customers are paying for gigabytes of data. (Maybe this is counted separately by carriers and Google can't avoid high prices?)

<string name="plan_data_detail">%1$d GB shared data, %2$s/month</string>

<string name="cost_per_gb_format">%1$s/GB</string>

<string name="cost_per_mms">%1$s/MMS</string>

Calling or texting any number in the US is free, and international calls are charged as a low rate. This basically mirrors the deal that's already available through Google Voice / Hangouts. Prices will probably match, as well.

<string name="talk_and_text_info_dialog">Calls and texts within the US are unlimited and you can place long distance calls to other countries at low rates.</string>

<string name="plan_intl_roaming">International roaming</string>

<string name="plan_intl_voice">Outbound international calls</string>

<string name="international_charge_subtitle">%1$s, %2$s</string>

<string name="international_charge_title">%1$s %2$s</string>

<string name="international_data_usage_detail">%1$s at %2$s</string>

<string name="international_options">International options</string>

<plurals name="international_call_detail">

<item quantity="other">%1$s minutes at %2$s/minute</item>

<item quantity="one">1 minute at %2$s/minute</item>

</plurals>

It's also possible to be charged for "Extras." There aren't any other strings to clear up what this is exactly, but I assume it's just a place for carrier billing line items. For example, this is probably where Play Store purchases will show up if you decide to have them charged to your service provider.

<string name="current_cycle_highlights_title">Extras this cycle so far</string>

Multiple Lines and Shared Data

There's not very much to say about this one. Everybody knows what it means to have multiple lines on a single account, and for those lines to share a single pool of data. However, while neither of these are foreign concepts, they are rare to see on a service that has more in common with pre-paid MVNOs than major carriers.

<string name="data_plan_shared_data">Your monthly data amount</string>

<string name="data_plan_shared_data_description_format">Shared data across all your devices. Always the fastest speed at %1$s. Use less? Receive a refund. Use more? Still %1$s</string>

<string name="data_plan_shared_data_description_generic">Shared data across all your devices. Always the fastest speed. Use less? Receive a refund. Use more? Still the same cost.</string>

<plurals name="plan_lines_format">

<item quantity="other">%d lines</item>

<item quantity="one">%d line</item>

</plurals>

<plurals name="line_item_lines_at_rate">

<item quantity="other">%1$s lines at %2$s</item>

<item quantity="one">%2$s</item>

</plurals>

Each line adds to the total monthly bill, but there's nothing to suggest if customers get a discount on multiple lines. While there is also nothing specific about pooled data pricing, it feels like Google is trying to emphasize how fair the prices are because they are never adjusted for how much data is purchased. It seems like the focus is on offering flat rates.

Data-Only Service

Once you're talking about a shared pool of data for separate lines, it's only natural to also think about splitting that data between a phone and a tablet. Project Fi is set up to handle that scenario with support for data-only devices. I'm going to venture a guess that this will also come in pretty handy for standalone in-car units.

<string name="data_only">Data only</string>

<string name="data_only_device">Data-only device</string>

It's not clear if Project Fi will also support phones in a data-only capacity. This has become a semi-popular request, so a lot of people may switch services just to take advantage of this option if it becomes available. On the other hand, most carriers actively refuse to offer data-only service for a variety of reasons (including pricing structures and potential for abuse), so Google's hands may be tied on this one. The next feature may give us a hint, though.

Switch Phones With The Press Of A Button

Let's be honest, there are a lot of people out there with more than one phone. Whether they are crazy Android Police writers with a desk drawer of leftover gadgets, or just a regular guy with an extra phone he doesn't mind sacrificing on the mountain during a snowboarding trip, it's nice to switch service between phones quickly and easily. This usually involves switching SIM cards, but some people would like to keep all of their gadgets connected at the same time. Judging by a few strings, it seems that Project Fi supports switching a user's primary device from one phone to another, which reroutes all calls and text messages.

<string name="move_talk_and_text"><b>Make this your primary device</b> so you can get calls and texts on this phone. This deactivates your number on any other phones.</string>

<string name="move_talk_and_text_title">Your Fi service is currently associated with a different device. To set up your number on this phone, first make this your primary device.</string>

<string name="confirm_not_moving_talk_and_text">"You won't be able to get calls and texts on this phone unless you make it your primary device."</string>

Logically, this should confirm that multiple phones can be on the same account at the same time (not counting other lines), but only one of which would have the full array of services.

Carriers and Auto-Switching

The leak from January revealed that Google had struck deals with both Sprint and T-Mobile to provide cellular data for its MVNO, and phones would automatically switch to whichever network provided better service. Strings within the apk all but conclusively confirm the launch partners. In fact, they are the only two carriers named, thus far.

<string name="sprint">Sprint</string>

<string name="tmobile">T-Mobile</string>

The second part of the rumor called for auto-switching between networks, but it isn't as well defined. A single string makes reference to auto-switching, but doesn't have any specific relationship to network connections. There are other strings that are clearly linked to switching networks, but they never make a reference to being automatic. Since the rumors have been fairly clear that auto-switching between supported carriers will be a feature, and the evidence doesn't contradict it, it's probably a safe bet that it will be supported.

<string name="auto_switching_enabled">Auto switching enabled</string>

<string name="switch_already_active">Already on MCC/MNC: %1$s</string>

<string name="switch_error">Error: %1$s</string>

<string name="switch_get_subscriptions_error">Could not get subscriptions</string>

<string name="switch_in_progress">Switching to MCC/MNC: %1$s</string>

<string name="switch_no_imsi">Could not find IMSI for MCC/MNC: %1$s</string>

<string name="switch_no_next_imsi">No next available IMSI</string>

<string name="switch_success">Successfully switched</string>

For reference:

Your Google Voice Number

I'm sure a few people are wondering about how Google Voice will work with Project Fi, and it looks pretty clear. Your accounts are separate, but Project Fi makes it easy to port your number over if you choose to. So yeah, nothing really changed.

<string name="new_number_gv_dialog">"If you continue, your existing Google Voice number will be released — no getting it back.

Rather keep your Google Voice number? Just start over to get it transferred."</string>

<string name="port_different_number_dialog_body">Your Google Voice number will be released — no getting it back.</string>

<string name="port_different_number_dialog_title">Use different number?</string>

<string name="port_gv_disclaimer">To make this your Project Fi number, first transfer it from Google Voice. Allow up to two business days for the transfer.</string>

<string name="new_number_gv_disclaimer">Your Google Voice number will be released. &lt;a href=#>Learn more&lt;/a></string>

<string name="line_item_gv_balance_credit">Google Voice credit transfer</string>

Device Financing

One of the more recent rumors about Nova called for the Nexus 6 to be the sole device on Google's MVNO. Speculation swung wildly from the idea that no other device could even use the service to the possibility that the Nexus 6 would simply be the only device Google offered to sell through the service. While it's still not possible to answer that question, it's possible to add a better alternative: the Nexus 6 is the sole handset that customers can purchase on a payment plan.

<string name="device_financing">Device financing</string>

<string name="line_item_device_financing">Nexus 6 device payment</string>

<string name="line_item_device_financing_detail">%1$s/month, %2$s remaining</string>

<string name="line_item_device_financing_final">Nexus 6 device payment — full payoff</string>

<string name="line_item_device_financing_refund">Nexus 6 device refund</string>

<string name="line_item_device_financing_refund_detail">Refund of paid balance</string>

<plurals name="months_left_financing">

<item quantity="other">%1$d months left at %2$s</item>

<item quantity="one">%1$d month left at %2$s</item>

</plurals>

There's no doubt to it, Project Fi customers will be able to buy a Nexus 6 and pay it off over a series of months. The word 'interest' doesn't appear anywhere in the strings, so I think we can safely assume interest-free financing. I don't know if we can make the same assumption about "Zero Down" offers, but we'll see.

Going a little further down this rabbit hole, I suspect this is going to result in a noticeable increase in Nexus buyers over time. If Project Fi is reasonably successful, it will introduce a lot of new people to the Nexus family.

Usage Tracking For Ads

Don't panic. You know how Google tracks your browsing habits, Gmail, YouTube history, and a few dozen other things so it can try to target ads to you? Now add call history to that, and you already know what this is about. Basically, Google wants to know if you called a pet store so an ad for puppy chow can pop up in a couple of days.

<string name="cpni_learn_more">"Project Fi usage data may include your Customer Proprietary Network Information, or "CPNI". To restrict the use of your CPNI in connection with related information services provided by Google, you can turn off the setting to share Project Fi usage data. This won't affect your use of Project Fi services but may affect Google's ability to offer products and services tailored to your needs.

Project Fi collects and uses your CPNI according to the Terms of Service at %1$s."</string>

The customer proprietary network information (CPNI) mentioned in the string is a formal term to describe the call history data that has been collected by phone companies. From a legal standpoint, this data used to be moderately well protected, but most companies have learned to wiggle around the rules and readily sell everything to their partners. Customers are free to opt out, thus forcing companies not to release the CPNI, but this option is rarely publicized.

In this instance, Google is actually taking the uncommon position (compared to other telecommunications companies) by visibly sharing the option to opt out in a clear and visible way, and providing a toggle right in the Project Fi app. If you don't agree with letting Google algorithmically guess at your interests based on call logs, just turn it off.

Signing Up For Project Fi

At least in its pre-release form, accounts can only be activated on Project Fi if they've already been signed up on a separate website. Sorry, there's nothing to indicate where to do that, but that shouldn't surprise anybody. There's not enough context to be sure, but it's possible that Google is giving Project Fi an invite-only soft launch, or this may be a security measure to keep out all but Google's select group of testers.

<string name="activation_error_account_setup">The Google account you selected is not signed up for Project Fi. Please sign up for Project Fi on the web, or choose a different Google account to continue.</string>

<string name="activation_error_account_state">"Unfortunately, your Project Fi service can't be activated because your account currently isn't authorized for service."</string>

<string name="activation_signin_with_correct_account">To activate service, sign in to the account associated with Project Fi.</string>

<string name="activation_use_correct_email">Be sure to enter the same email address you used for Project Fi signup.</string>

Final Thoughts

This has been an exhaustive examination of what there is to learn from a single leaked apk; but it leaves quite a few important questions unanswered. We still don't know when Project Fi will be launched or if it will have some restrictions on who is welcome to sign up on day 1. The sheer volume of rumors and leaks suggest the announcement will come at Google I/O 2015, and the timing of this leaked apk seems to lend a little credibility to that theory. There's nothing to indicate if Project Fi will have a long run as an Android-only service, or if it will become available to iOS, Windows Phone, and that oth.. Blackberry. For that matter, some things we've heard are even contradictory, like Sundar Pichai suggesting Google's MVNO will be small in scale, followed by a rumor Google is working on partnerships with foreign carriers that would allow for free international roaming. Even with so much new information about Google's plans, it makes the mysteries even more interesting.

Credit to Q9Nap for noticing the Project Fi app, and scrosler for raising attention to the strings.

Thanks: Q9Nap, scrosler