A fresh update of Google Play Services is headed out to our Android hardware around the world. This brings the framework package up to v8.4 and actually carries a couple of user-facing changes for us to check out. There's nothing too big, which is pretty normal for a Play services update, but there are some nice visual touch-ups for Smart Lock and a new option in the Android Auto developer options. But that's not all, a teardown shows that we're getting much closer to family organization (yes, for family sharing) and app invites will finally become useful as they can finally be sent to the people that need them most – the people right next to us.

What's New

Stylish New Smart Lock Screen

2015-11-18 21.08.052015-11-18 21.07.19

There's nothing like a visual refresh to inject a little bit of life into a stale interface. The Smart Lock configuration screen was just given some attention and some really nice touchups. Each item now features an icon for faster visual parsing and a description that might give a little more context to some of these options.

The only drawback to the new look is that there's no longer a way to skim the list to see which options are enabled. That's probably not a big concern, but it would be nice in some situations.

Android Auto 720p Video Output

2015-11-18 23.20.18

Play services is actually the home for most of the software that makes Android Auto tick, so it's not very surprising to see the developer options are actually included here. A new option turned up with the description "Allow 720p video output," which probably just enables higher resolution output for head units once they start to see higher resolution screens in the near future. Don't forget, they're all still pushing 480p for some painfully dull reason.

Teardown

Disclaimer: Teardowns are based on evidence found inside of apks (application packages) and are necessarily speculative and usually based on incomplete information. It's possible that the guesses made here are totally and completely wrong. Even when predictions are correct, there is always a chance that plans may change or could be cancelled entirely. Much like rumors, nothing is certain until it's officially announced.

App Invites, Meet Nearby

Google introduced the App Invites API so developers would have a way to "help" their users to promote apps. There aren't any public numbers to show if it has been successful, but it is an option. The API currently allows for sending invites via SMS or email. This is fine if we're telling our parents about an app and want to save them the trouble of looking for it in the Play Store, but it's not really ideal for the very common situation that we want to introduce an app to somebody right next to us, especially if we don't have a phone number or email address to send it to. Enter Nearby.

<string name="nearby_ai_app_name">App Invite</string>

It's only one string, but there's no need for much else. The prefix shows that this is a part of the Nearby API, and the 'ai' is shorthand used elsewhere for the App Invite API. As this is an app name, it will probably show up in the list of apps that use Nearby.

I know what you're thinking, you could already do this with NFC and tapping two phones together. Well, NFC is older, and as we all know, new is always better. Besides, this actually should be easier.

Family Organization

It was just about two weeks ago when a Play Store update gave us the first really solid evidence of family sharing and gifting of purchases on the Play Store. Gifting looked like it was pretty close to ready, but there were still a lot of gaps for family sharing. Consider those gaps closed, or not far from it.

The latest Play Services update fills many of the holes left behind by the Play Store, including some of the necessary interface components, restrictions, and details for managing a family. Since there are a lot of strings here and no particularly great way to organize them, I'll summarize the main details:

  • Members:
    • You must be 18 or older to create a family group.
    • All members of a family group must be 13 or older.
    • Only personal accounts are allowed into a family. That means no Google for Work or Google for Education accounts.
    • You can only change family groups once every 12 months.
  • Restrictions:
    • Nobody can be a member of more than one family group at a time. You must leave an existing family before joining another one.
    • There is a limit to the number of family members, but it doesn't appear to have been specified yet.
  • Management:
    • There can be only one family manager.
    • Emails will be sent to all family members when somebody else joins or leaves the family, or if the family group is deleted.
    • Invitations are sent out by the family manager and can be accepted or declined by the recipient. Invites can also be cancelled after being sent.
  • Purchasing:
    • Purchases by family members will be charged to the family's designated payment method.
    • All regular purchases automatically go through, but in-app purchases can be held for approval. (Possibly unclear.)
    • Apps, movies, books, and music can be shared between family members.

strings

<string name="fm_add_member_bullet">"Invite only family members you trust, since you'll be responsible for their purchases. They must be 13 or older and have a Google Account to join."</string>
<string name="fm_add_member_title">Invite your family</string>
<string name="fm_age_requirement_error_message">You must be 18 or older to manage a family group</string>
<string name="fm_age_requirement_error_title">Age requirement</string>
<string name="fm_already_in_family_error_message">"To set up a family group, you'll need to leave the one you're currently in."</string>
<string name="fm_already_in_family_error_title">"You're already in a family group"</string>
<string name="fm_button_ok">OK</string>
<string name="fm_button_verify_verify_cvc">VERIFY</string>
<string name="fm_can_create_family_error_message">Try again in a little bit</string>
<string name="fm_can_create_family_error_title">"Can't create family group"</string>
<string name="fm_cancel">CANCEL</string>
<string name="fm_cancel_button_label">CANCEL</string>
<string name="fm_cancelling_invitation_message">Cancelling invitation…</string>
<string name="fm_cannot_connect">"Can't connect"</string>
<string name="fm_confirm">CONFIRM</string>
<string name="fm_continue_button_label">CONTINUE</string>
<string name="fm_dasher_error_message">You can only set up a family group with a personal Google Account, not a Google for Work or Google for Education account</string>
<string name="fm_dasher_error_title">Account not supported</string>
<string name="fm_delete">DELETE</string>
<string name="fm_delete_family_content_paragraph1">"You're about to delete your family group. You and your family members will no longer have access to a family payment method or services requiring the family group."</string>
<string name="fm_delete_family_content_paragraph2">Any pending purchases made by family members will be charged to your family payment method.</string>
<string name="fm_delete_family_content_paragraph3">"Your family members will be notified by email after you've deleted the family group."</string>
<string name="fm_delete_family_error_message">Trouble deleting family group. Try again.</string>
<string name="fm_delete_family_label">Delete family group</string>
<string name="fm_delete_family_progress">Deleting family group...</string>
<string name="fm_delete_family_successful_message">"You've deleted your family group"</string>
<string name="fm_error_accept_label">GOT IT</string>
<string name="fm_family_management">Family Management</string>
<string name="fm_family_management_toolbar_title">Family</string>
<string name="fm_family_set_up">GET STARTED</string>
<string name="fm_family_set_up_complete">"You're all set"</string>
<string name="fm_family_setup">Set up your family</string>
<string name="fm_family_setup_description">Enjoy features made just for families</string>
<string name="fm_finish_up_button_label">FINISH UP</string>
<string name="fm_fixit_fop_description">"Looks like you haven't finished setting up your family"</string>
<string name="fm_fixit_headline">Welcome back, %s</string>
<string name="fm_fixit_invite_family">Invite your family</string>
<string name="fm_fixit_invite_family_description">Looks like you still need to add people to your family</string>
<string name="fm_get_family_error">"Can't load family group"</string>
<string name="fm_invalid_password">Invalid password</string>
<string name="fm_invalid_pin">Invalid PIN</string>
<string name="fm_invitation_message">Join our family on Google Play</string>
<string name="fm_invitation_sent">Invitation sent on %s</string>
<string name="fm_invitation_state_expired">Invitation expired</string>
<string name="fm_invitation_state_not_sent">Invitation not sent</string>
<string name="fm_invitation_state_pending">Invitation sent</string>
<string name="fm_invitations_all_contacts_header">Contacts</string>
<string name="fm_invitations_button_invitees_confirmation_text">SEND</string>
<string name="fm_invitations_button_ok">OK</string>
<string name="fm_invitations_button_retry_now">TRY AGAIN</string>
<string name="fm_invitations_button_skip_retry">SKIP</string>
<string name="fm_invitations_cant_send_title">Can’t send</string>
<string name="fm_invitations_invite_family_title">Send invitations</string>
<string name="fm_invitations_search_hint_text">Add recipients</string>
<string name="fm_invitations_sending_title">Sending…</string>
<string name="fm_invitations_sent">Invitations sent</string>
<string name="fm_invitations_sent_description">"You'll be notified by email when your family members join"</string>
<string name="fm_invitations_skipped">Invite your family later</string>
<string name="fm_invitations_suggestions_header">Frequently contacted</string>
<string name="fm_invitations_text_invitations">Invitations</string>
<string name="fm_invitations_text_retry_error">"These invitations weren't sent because of an error"</string>
<string name="fm_invitations_text_skip_failures">"These invitations can't be sent right now. You can send it again from Google Play > My account."</string>
<string name="fm_invitations_trouble_sending_title">Trouble sending</string>
<string name="fm_invite_button_default_secondary_text">Up to %d people</string>
<string name="fm_invite_button_label">INVITE</string>
<string name="fm_invite_button_primary_text">Invite family members</string>
<string name="fm_invite_instructions">Go to the Play Store app > <b>My account</b></string>
<string name="fm_just_a_sec_message">Just a sec…</string>
<string name="fm_label_retry">RETRY</string>
<string name="fm_learn_how">Learn how</string>
<string name="fm_learn_more">Learn more</string>
<string name="fm_leave_family_button_label">LEAVE GROUP</string>
<string name="fm_leave_family_content_paragraph1">"By leaving %s's family group, you'll no longer have access to the family payment method or services requiring the family group."</string>
<string name="fm_leave_family_content_paragraph2">You can only change your family group once in a 12 month period.</string>
<string name="fm_leave_family_content_paragraph3">"Any pending purchases you've made using the family payment method will be charged to %s."</string>
<string name="fm_leave_family_content_paragraph4">"Your family members will be notified by email after you've left the family group."</string>
<string name="fm_leave_family_error_message">Trouble leaving the family group. Try again.</string>
<string name="fm_leave_family_progress">Leaving family group…</string>
<string name="fm_leave_family_successful_message">"You've left the family group"</string>
<string name="fm_leave_family_title">Leave family group</string>
<string name="fm_manage_instructions">To manage your family, go to Google Play > <b>My account</b></string>
<string name="fm_member_delete_error_message">Trouble removing %s. Try again.</string>
<string name="fm_member_delete_successful_message">%s was removed from your family group</string>
<string name="fm_message_family_disabled">Your family group is disabled</string>
<string name="fm_missing_password">Enter your password</string>
<string name="fm_missing_pin">Enter your PIN</string>
<string name="fm_more_button_label">MORE</string>
<string name="fm_navigate_up">Navigate up</string>
<string name="fm_next_button_label">NEXT</string>
<string name="fm_password_description">Password</string>
<string name="fm_payment_confirmed">Family payment method confirmed</string>
<string name="fm_pin_description">PIN</string>
<string name="fm_profile_avatar_description">User profile picture</string>
<string name="fm_profile_description">Manage your family group and pay for shared stuff on Google Play</string>
<string name="fm_profile_family_manager_label">"You're the family manager"</string>
<string name="fm_profile_hi_user_template">Hi %s</string>
<string name="fm_profile_tos">"By continuing, you confirm that you're 18 or older and agree to the &lt;a href=https://play.google.com/about/play-terms.html>Google Play Terms of Service&lt;/a> &amp; &lt;a href=https://www.google.com/policies/privacy>Google Privacy Policy&lt;/a>. Your email address and profile photo will be shared with your family group."</string>
<string name="fm_reauth_error">Trouble confirming %s. Try again.</string>
<string name="fm_reauth_password_title_delete_family">Confirm password to delete family group</string>
<string name="fm_reauth_password_title_leave_family">"Confirm password to leave %s's family group"</string>
<string name="fm_reauth_password_title_remove_member">Confirm password to remove %s</string>
<string name="fm_reauth_pin_title_delete_family">Confirm PIN to delete family group</string>
<string name="fm_reauth_pin_title_leave_family">"Confirm PIN to leave %s's family group"</string>
<string name="fm_reauth_pin_title_remove_member">Confirm PIN to remove %s</string>
<string name="fm_remove">REMOVE</string>
<string name="fm_remove_member">Remove member</string>
<string name="fm_remove_member_content_paragraph1">"You're about to remove %1$s from your family group. This means %2$s will no longer have access to the family payment method or services requiring the family group."</string>
<string name="fm_remove_member_content_paragraph2">Any pending purchases made by %s will be charged to your family payment method.</string>
<string name="fm_remove_member_content_paragraph3">%s will be notified by email after being removed from the family group.</string>
<string name="fm_remove_member_progress">Removing member…</string>
<string name="fm_remove_member_title">Remove %s</string>
<string name="fm_setup_music_plan">Save money as a family with a Google Play Music family plan</string>
<string name="fm_setup_shared_payment">Share a payment method on Google Play so your family can purchase apps, movies, books, and music</string>
<string name="fm_skip_button_label">SKIP</string>
<string name="fm_skip_invites_button_label">SKIP INVITATIONS</string>
<string name="fm_something_wrong">Something went wrong</string>
<string name="fm_too_many_switches_error_message">You can only change your family group once in a 12 month period.</string>
<string name="fm_too_many_switches_error_title">"Can't create family group"</string>
<string name="fm_trouble_connecting">Trouble connecting</string>
<string name="fm_try_again_button_label">TRY AGAIN</string>
<string name="fm_uninvite">Cancel Invitation</string>
<string name="fm_uninvite_failure_message">Trouble cancelling invitation. Try again.</string>
<string name="fm_uninvite_success_message">Invitation cancelled</string>
<string name="fm_upgrade_required_message">To manage your family group, update %s</string>
<string name="fm_upgrade_required_title">Update required</string>
<string name="fm_verifying_message">Verifying…</string>
<string name="fm_wallet_set_up">Add a credit card for your family members. They can make purchases on Google Play without your approval, but you can approve their in-app purchases billed by Google Play.</string>

<plurals name="fm_invitations_text_retry_error">
<item quantity="other">"These invitations weren't sent because of an error"</item>
<item quantity="one">"This invitation wasn't sent because of an error"</item>
</plurals>
<plurals name="fm_invitations_text_skip_failures">
<item quantity="other">"These invitations can't be sent right now. You can send them again from Google Play > My account."</item>
<item quantity="one">"This invitation can't be sent right now. You can send it again from Google Play > My account."</item>
</plurals>
<plurals name="fm_invite_button_secondary_text">
<item quantity="other">%d invitations left</item>
<item quantity="one">%d invitation left</item>
</plurals>

<activity android:exported="true" android:label="@string/fm_family_management" android:name="com.google.android.gms.kids.familymanagement.manage.FamilyManagementActivity" android:process="com.google.android.gms.ui" android:theme="@style/Theme.FamilyManagement">
<activity android:exported="true" android:label="@string/fm_family_setup" android:name="com.google.android.gms.kids.familymanagement.create.FamilyCreationActivity" android:process="com.google.android.gms.ui" android:theme="@style/Theme.FamilyManagement">
<activity android:exported="true" android:label="@string/fm_remove_member" android:name="com.google.android.gms.kids.familymanagement.manage.DeleteMemberActivity" android:process="com.google.android.gms.ui" android:theme="@style/Theme.FamilyManagement">

There are a couple of things from these notes worth discussing.

To begin with, the text is worded in such a way that suggests all purchases go through automatically, but it's possible to hold in-app purchases for approval. This could be text for a rule that is always in effect, or it may be an option family managers can choose for their family. I expect it's the latter since some families obviously shouldn't give free run of a credit card to a 13-year-old.

As for the purchase method, it's starting to look like multiple payment methods or methods for personal purchases won't be allowed. I have a hard time believing this is accurate, but the wording is vague enough that it could be read a few different ways.

<string name="fm_setup_shared_payment">Share a payment method on Google Play so your family can purchase apps, movies, books, and music</string>

It's worth calling out one specific line that finally and truly confirms apps are included in family sharing, along with movies, books, and music. Technically, TV shows and magazines aren't mentioned, but these are probably assumed to be included with movies and books, respectively. On the other hand, with the way content licensing goes, even those assumptions are a bit risky.

There are surely plenty of remaining questions, but we've now got a much better picture of what Google plans to do. The top question, of course, is when this will launch. I still expect the Play Store terms will have to be updated to support these changes, so it's unlikely anything will happen right away, but it's certainly looking closer now that both the Play Store and Play services seem to support the family organization.

Download

The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.

Version: 8.4.89 (2428711)

These are the variants we have available as of this post. New variants will appear regularly, so keep checking back on APK Mirror if one for your device isn't available.

To figure out the right version of Google Play services for your Android device, go to Settings -> Apps -> Google Play services, and look at the last 3 numbers in the parentheses. You'll see something like -XYZ where:

* X defines Android version:

  • 0 for Android <5.0
  • 4 and 7 for Android >=5.0
  • 8 for Android TV

* Y defines CPU architecture:

  • 1 for armeabi
  • 3 for armeabi-v7a
  • 4 for arm64-v8a
  • 7 for x86

* Z defines DPI:

  • 0 for universal
  • 2 for 160
  • 4 for 240
  • 6 for 320
  • 8 for 480

Notes:

  • It seems that -7YZ builds became -4YZ with Google Play services 6.5. If you were on -7YZ before, you should now install -4YZ.
  • Looks like -8YZ builds are for Android TV.

Examples:

  • -014 for Android <5.0 armeabi CPU 240 DPI device
  • -438 for Android 5.0+ armeabi-v7a CPU 480 DPI device
  • -876 for Android TV x86 CPU 320 DPI device