Android 15 could update your phone’s NFC stack through Google Play

Hotstar in UAE
Hotstar in UAE

Google has been on a multi-year journey to kill fragmentation in the Android ecosystem. When I’m talking about Android fragmentation, I’m referring to how there are many, many different implementations of the Android operating system out there. That’s not a problem in and of itself given that Google intentionally lets device makers customize Android to their liking. However, it does make distributing OS updates a bit harder. One solution to this problem that Google came up with back in 2019 is called Project Mainline.

Under Project Mainline, certain operating system components are packaged as modules. Then they’re distributed directly by Google rather than your device’s OEM. This makes them much easier to update across devices. Instead of waiting for your device’s particular OEM or carrier to merge, test, and distribute a security or feature update to a core OS component, you can instead leave things in the hands of Google.

When an update to a Project Mainline module is available, Google will push an update out to everybody through the Google Play Store using a mechanism called Google Play System Updates. Since Project Mainline modules are signed by Google, they can push out updates to Mainline modules even on devices from other manufacturers.

Google Play System Updates
Checking for Google Play System Updates in Android

Android 15 to turn the NFC stack into an updateable Project Mainline module

When Project Mainline debuted in Android 10, there were only 12 modules. Over the years, Google has modularized more parts of Android. In Android 14, there are now 37 updatable modules. In the upcoming Android 15 update, the number of Project Mainline modules could rise to a total of 40. While digging through the first Android 15 beta released earlier today, I discovered the existence of three new APEX packages: com.android.nfcservices, com.google.android.crashrecovery, and com.google.android.profiling.

APEX is the package format used by Project Mainline, which means that these three packages are potentially new Mainline modules. I say “potentially” because there are some APEX packages that aren’t part of Project Mainline. Since their updates aren’t handled through Google Play System Updates. We won’t know for sure if that’s the case for these three modules until Android 15 gets closer to release, though.

Anyways, the first APEX package I mentioned, com.android.nfcservices, is the most interesting of the three, because it contains a copy of Android’s NFC stack. NFC, which stands for near-field communication, is the ultra short-range wireless communication technology that’s popularly used for contactless payments. By putting Android’s NFC stack into an APEX module, Google is preparing to turn it into an updatable Project Mainline module. Indeed, I first heard that was the plan all the way back in May of 2023.

NFC APEX in Android 15 Beta 1
In Android 15 Beta 1, the NFC stack is now part of an APEX package.

Paving the way for pushing out security fixes and new features more quickly

Making the NFC stack more easily updatable means that Google can push out security fixes and new features more quickly to users. Android 15, for example, brings a number of new features to the NFC stack. One such new feature is a new observe mode to make tap to pay “more seamless and reliable.” Once devices start to ship with Android’s new updatable NFC stack, we’ll see Google push out more updates bringing new features like this.

In fact, with the release of Android 15 Beta 1 today, Google quietly enabled Android’s new updatable NFC stack on Pixel phones. However, it appears the company made a mistake in the migration process. Resulting in NFC being completely broken for Pixels users running the first beta. Hopefully, Google will push out an update quickly to fix these NFC issues in the Android 15 beta. Because NFC is critical to the operation of the default wallet app.

NFC settings in Android 15 Beta 1
NFC is broken in Android 15 Beta 1.

2024-04-12 15:07:46