Google has announced that Android 13 is the first Android release where the majority of new code is written in a memory safe language. About 21% of all new native code added to Android 13 is written in Rust.
Support for Rust was introduced in Android 12. There are now approximately 1.5 million total lines of Rust code for new AOSP components such as Keystore2, the Ultra-wideband stack, DNS-over-HTTP/3, the Android Virtualization Framework, and more.
The drop in memory safety vulnerabilities (223 in 2019 to 85 in 2022) and the severity of vulnerabilities overall have been credited to Google's shift away from memory unsafe languages. 2022 is the first year where memory safety vulnerabilities aren't a majority of Android vulns.
Google's using Rust for new, low-level Android components & doesn't plan to convert existing code written in C/C++ (media, Bluetooth, NFC, etc.). However, they're improving the safety of Android's C/C++ code with things like the Scudo hardened allocator, HWASAN, GWP-ASAN, & KFENCE, as well as improved fuzzing.
And Google will continue to grow the use of Rust in the Android platform.
"We’re implementing userspace HALs in Rust. We’re adding support for Rust in Trusted Applications. We’ve migrated VM firmware in the Android Virtualization Framework to Rust. With support for Rust landing in Linux 6.1 we’re excited to bring memory-safety to the kernel, starting with kernel drivers."
I recommend reading the full blog post by Jeff Vander Stoep. It goes into a lot more detail!
Support for Rust was introduced in Android 12. There are now approximately 1.5 million total lines of Rust code for new AOSP components such as Keystore2, the Ultra-wideband stack, DNS-over-HTTP/3, the Android Virtualization Framework, and more.
The drop in memory safety vulnerabilities (223 in 2019 to 85 in 2022) and the severity of vulnerabilities overall have been credited to Google's shift away from memory unsafe languages. 2022 is the first year where memory safety vulnerabilities aren't a majority of Android vulns.
Google's using Rust for new, low-level Android components & doesn't plan to convert existing code written in C/C++ (media, Bluetooth, NFC, etc.). However, they're improving the safety of Android's C/C++ code with things like the Scudo hardened allocator, HWASAN, GWP-ASAN, & KFENCE, as well as improved fuzzing.
And Google will continue to grow the use of Rust in the Android platform.
"We’re implementing userspace HALs in Rust. We’re adding support for Rust in Trusted Applications. We’ve migrated VM firmware in the Android Virtualization Framework to Rust. With support for Rust landing in Linux 6.1 we’re excited to bring memory-safety to the kernel, starting with kernel drivers."
I recommend reading the full blog post by Jeff Vander Stoep. It goes into a lot more detail!
Google Online Security Blog
Memory Safe Languages in Android 13
Posted by Jeff Vander Stoep For more than a decade, memory safety vulnerabilities have consistently represented more than 65% of vulnerab...
🔥17👏6👍1
Folks, this is bad news. Very, very bad. Hackers and/or malicious insiders have leaked the platform certificates of several vendors. These are used to sign system apps on Android builds, including the "android" app itself. These certs are being used to sign malicious Android apps!
Why is that a problem? Well, it lets malicious apps opt into Android's shared user ID mechanism and run with the same highly privileged user ID as "android" - android.uid.system. Basically, they have the same authority/level of access as the Android OS process!
(Here's a short summary of shared UID, from my Android 13 deep dive.)
The post on the Android Partner Vulnerability Initiative issue tracker shared SHA256 hashes of the platform signing certificates and correctly signed malware using those certificates. Thanks to sites like
VirusTotal and APKMirror, it's trivial to see who is affected...
So, for example, this malware sample. Scroll down to the certificate subject/issuer, and whose name do you see? The biggest Android OEM on the planet? Yeah, yikes.
Go to APKMirror and just search for the SHA256 hash of the corresponding platform signing certificate... Yeah, this certificate is still being used to sign apps.
That's just one example. There are others at risk, too.
In any case, Google recommends that affected parties should rotate the platform certificate, conduct an investigation into how this leak happened, and minimize the number of apps signed with the platform certificate, so that future leaks won't be as devastating.
Why is that a problem? Well, it lets malicious apps opt into Android's shared user ID mechanism and run with the same highly privileged user ID as "android" - android.uid.system. Basically, they have the same authority/level of access as the Android OS process!
(Here's a short summary of shared UID, from my Android 13 deep dive.)
The post on the Android Partner Vulnerability Initiative issue tracker shared SHA256 hashes of the platform signing certificates and correctly signed malware using those certificates. Thanks to sites like
VirusTotal and APKMirror, it's trivial to see who is affected...
So, for example, this malware sample. Scroll down to the certificate subject/issuer, and whose name do you see? The biggest Android OEM on the planet? Yeah, yikes.
Go to APKMirror and just search for the SHA256 hash of the corresponding platform signing certificate... Yeah, this certificate is still being used to sign apps.
That's just one example. There are others at risk, too.
In any case, Google recommends that affected parties should rotate the platform certificate, conduct an investigation into how this leak happened, and minimize the number of apps signed with the platform certificate, so that future leaks won't be as devastating.
😱27🔥5👀3👍2😭2
Mishaal's Android News Feed
Folks, this is bad news. Very, very bad. Hackers and/or malicious insiders have leaked the platform certificates of several vendors. These are used to sign system apps on Android builds, including the "android" app itself. These certs are being used to sign…
Okay, so what are the immediate implications/takeaways for users?
- You can't trust that an app has been signed by the legitimate vendor/OEM if their platform certificate was leaked. Do not sideload those apps from third-party sites/outside of Google Play or trusted OEM store.
- This may affect updates to apps that are delivered through app stores if the OEM rotates the signing key, depending on whether or not that app has a V3 signature or not. V3 signature scheme supports key rotation, older schemes do not.
OEMs are not required to sign system apps with V3 signatures. The minimum signature scheme version for apps targeting API level 30+ on the system partition is V2. You can check the signature scheme using the apksigner tool.
Affected OEMs can still rotate the cert used to sign their system apps that have V2 signatures and then push an OTA update to deliver the updated apps. Then they can push app updates with that new cert, but devices that haven't received OTAs won't receive those app updates.
The leaked platform signing certificates can't be used to install compromised OTA updates, thankfully.
- You can't trust that an app has been signed by the legitimate vendor/OEM if their platform certificate was leaked. Do not sideload those apps from third-party sites/outside of Google Play or trusted OEM store.
- This may affect updates to apps that are delivered through app stores if the OEM rotates the signing key, depending on whether or not that app has a V3 signature or not. V3 signature scheme supports key rotation, older schemes do not.
OEMs are not required to sign system apps with V3 signatures. The minimum signature scheme version for apps targeting API level 30+ on the system partition is V2. You can check the signature scheme using the apksigner tool.
Affected OEMs can still rotate the cert used to sign their system apps that have V2 signatures and then push an OTA update to deliver the updated apps. Then they can push app updates with that new cert, but devices that haven't received OTAs won't receive those app updates.
The leaked platform signing certificates can't be used to install compromised OTA updates, thankfully.
😢10👍5🔥1😐1
End-to-end encryption for group chats in Google Messages is starting to roll out!
End-to-end encryption for 1:1 chats became available for everyone mid-2021. At their I/O 2022 keynote earlier this year, Google said that end-to-end encryption for group chats would be enabled later this year.
(H/T Twitter user SeeAreEff)
EDIT:
Some additional info: User SeeAreEff is on the latest beta release of Google Messages (version 20221129_00_RC01.phone.openbeta_dynamic) and the latest stable release of Google Play Services (version 22.46.17). They said that their buddy, Andy, is using an Android phone.
End-to-end encryption for 1:1 chats became available for everyone mid-2021. At their I/O 2022 keynote earlier this year, Google said that end-to-end encryption for group chats would be enabled later this year.
(H/T Twitter user SeeAreEff)
EDIT:
Some additional info: User SeeAreEff is on the latest beta release of Google Messages (version 20221129_00_RC01.phone.openbeta_dynamic) and the latest stable release of Google Play Services (version 22.46.17). They said that their buddy, Andy, is using an Android phone.
👍21👎1
Mishaal's Android News Feed
Okay, so what are the immediate implications/takeaways for users? - You can't trust that an app has been signed by the legitimate vendor/OEM if their platform certificate was leaked. Do not sideload those apps from third-party sites/outside of Google Play…
Statement from Google given to @9to5Google.
I think the best protection Google can offer is through Play Protect. If you install a new app that was signed by a leaked platform cert, Play Protect should be able to check if that app matches.
I think the best protection Google can offer is through Play Protect. If you install a new app that was signed by a leaked platform cert, Play Protect should be able to check if that app matches.
👍34
Mishaal's Android News Feed
End-to-end encryption for group chats in Google Messages is starting to roll out! End-to-end encryption for 1:1 chats became available for everyone mid-2021. At their I/O 2022 keynote earlier this year, Google said that end-to-end encryption for group chats…
Google has officially announced the rollout of end-to-end encryption for group chats in Messages. This "will be available to some users in the open beta program over the coming weeks." Also, Google says that you'll soon be able to react to RCS messages with any emoji.
Google
Happy birthday and farewell, SMS! It's time for RCS
SMS has been around for 30 years, and Messages by Google has the perfect gift to celebrate: RCS.
👍17🥰4
Google has announced the release of Android 13 for TV today, but the new release is only available right now for the ADT-3 developer platform and the Android TV emulator.
If you want a full, detailed breakdown of what's new for TVs in Android 13, I've got you covered with this blog post.
If you want a full, detailed breakdown of what's new for TVs in Android 13, I've got you covered with this blog post.
Android Developers Blog
Android 13 for TV is now available
Posted by Wolfram Klein, Product Manager, Android TV OS
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Google is testing a "Send" shortcut in the Nearby Share bottom sheet that lets you quickly select files (using the Files by Google app) to share with others. This shortcut will appear when you tap the Quick Setting tile for Nearby Share.
Yes, you can already share files through Nearby Share. However, you have to open another app, select file(s) to share, hit share, & then pick Nearby Share. This cuts out some steps and makes the QS tile actually useful (before it just let you change visibility or open settings).
H/T t.me/google_nws
Yes, you can already share files through Nearby Share. However, you have to open another app, select file(s) to share, hit share, & then pick Nearby Share. This cuts out some steps and makes the QS tile actually useful (before it just let you change visibility or open settings).
H/T t.me/google_nws
👍15🔥6👏2
Google has been working on making it easier to do platform app development using Android Studio, and this latest code change in AOSP seems to bring them one step closer.
(AOSP code change in question: Export framework turbine stubs as android_stubs_private)
You're probably familiar with Android Studio, but you can't develop platform apps (like SystemUI) using it, at least not out of the box.
One of the issues is that only public APIs are available through the SDK that Android Studio downloads. Platform apps frequently call hidden/private/system APIs.
To solve this, one solution is to replace the SDK's android.jar file with one that contains all Android framework APIs, enabling platform app development through Android Studio.
(You can build your own android.jar to unlock all platform APIs by compiling AOSP and then extracting the JAR before it gets dexed. H/T @phhusson for that info. Another method is detailed here.)
Google's solution seems similar, except it's not replacing android.jar in the SDK path but instead adding an android_private_stubs JAR containing stubs for non-private APIs, so Android Studio won't throw a fit when you try to call them. More importantly, they'll probably maintain this so you won't need to manually create your own JAR for each Android release!
(There are other methods to enable AOSP platform app development on Android Studio, eg. a tool called AIDEGen is offered to configure your preferred IDE for platform app development.)
Back in March, the Android Studio team was hiring someone to help make Studio usable for Android OS development. This effort seems related to that role.
(AOSP code change in question: Export framework turbine stubs as android_stubs_private)
You're probably familiar with Android Studio, but you can't develop platform apps (like SystemUI) using it, at least not out of the box.
One of the issues is that only public APIs are available through the SDK that Android Studio downloads. Platform apps frequently call hidden/private/system APIs.
To solve this, one solution is to replace the SDK's android.jar file with one that contains all Android framework APIs, enabling platform app development through Android Studio.
(You can build your own android.jar to unlock all platform APIs by compiling AOSP and then extracting the JAR before it gets dexed. H/T @phhusson for that info. Another method is detailed here.)
Google's solution seems similar, except it's not replacing android.jar in the SDK path but instead adding an android_private_stubs JAR containing stubs for non-private APIs, so Android Studio won't throw a fit when you try to call them. More importantly, they'll probably maintain this so you won't need to manually create your own JAR for each Android release!
(There are other methods to enable AOSP platform app development on Android Studio, eg. a tool called AIDEGen is offered to configure your preferred IDE for platform app development.)
Back in March, the Android Studio team was hiring someone to help make Studio usable for Android OS development. This effort seems related to that role.
👍12❤3🔥2
A trifecta of releases today: the December 2022 Android Security Bulletin, the first Android 13 Quarterly Platform Release (QPR), and the December 2022 Pixel Feature Drop!
—-
The December 2022 Android Security Bulletin is live!
- 4 critical severity vulnerabilities in AOSP components (CVE-2022-20472, CVE-2022-20473, CVE-2022-20411, and CVE-2022-20498) 3 of which are RCE vulnerabilities and 1 of which is related to Bluetooth.
- 4 vulnerabilities in Project Mainline components
—-
The announcement for the Pixel update went live on the Pixel support forum today. The build number is TQ1A.221205.01X and is available for the Pixel 4a and later.
Apart from new features, the list of bug fixes is MASSIVE, as is usually the case with the first QPR following a new letter release.
—-
The December 2022 Android Security Bulletin is live!
- 4 critical severity vulnerabilities in AOSP components (CVE-2022-20472, CVE-2022-20473, CVE-2022-20411, and CVE-2022-20498) 3 of which are RCE vulnerabilities and 1 of which is related to Bluetooth.
- 4 vulnerabilities in Project Mainline components
—-
The announcement for the Pixel update went live on the Pixel support forum today. The build number is TQ1A.221205.01X and is available for the Pixel 4a and later.
Apart from new features, the list of bug fixes is MASSIVE, as is usually the case with the first QPR following a new letter release.
👍12
Mishaal's Android News Feed
A trifecta of releases today: the December 2022 Android Security Bulletin, the first Android 13 Quarterly Platform Release (QPR), and the December 2022 Pixel Feature Drop! —- The December 2022 Android Security Bulletin is live! - 4 critical severity vulnerabilities…
New features in the December 2022 Pixel Feature Drop:
- Clear Calling (Pixel 7)
- Speaker labels in Google Recorder (Pixel 6 onward)
- Free VPN by Google One (Pixel 7)
- New Curated Culture wallpapers (all)
- Unified search expands to all Pixels
- Safety Center (all)
- Live Translate now in Arabic, Persian, Swedish, Vietnamese, and Danish (Pixel 6 onward)
- Cough & snore detection now available for Pixel 6
- Better insights from Sleep Profile on Pixel Watch (requires Fitbit Premium)
In addition, Google says that it'll roll out spatial audio with head tracking support to the Pixel Buds Pro in January 2023. This will work with the Pixel 6 and 7 series.
- Clear Calling (Pixel 7)
- Speaker labels in Google Recorder (Pixel 6 onward)
- Free VPN by Google One (Pixel 7)
- New Curated Culture wallpapers (all)
- Unified search expands to all Pixels
- Safety Center (all)
- Live Translate now in Arabic, Persian, Swedish, Vietnamese, and Danish (Pixel 6 onward)
- Cough & snore detection now available for Pixel 6
- Better insights from Sleep Profile on Pixel Watch (requires Fitbit Premium)
In addition, Google says that it'll roll out spatial audio with head tracking support to the Pixel Buds Pro in January 2023. This will work with the Pixel 6 and 7 series.
👍24🔥5👨💻1
Mishaal's Android News Feed
Waze is apparently coming to Android Automotive OS as soon as next month! An admin on the Waze Suggestion Box forum said they're working on making it available, and a business development manager from Renault said they're expecting it to launch by the end…
Waze is now available on Android Automotive, starting with the Renault Austral Hybrid and Renault Megane E-Tech EVs. You can download it from Google Play or from the My Renault mobile app.
I downloaded the Waze app for AAOS through Google Play even though I don't have a Renault EV (or a build that pretends to be one), so it seems the current listing isn't restricted to Renault's EVs?
(GPS is still semi-broken on this ROM/device, so I can't actually use it lol.)
I downloaded the Waze app for AAOS through Google Play even though I don't have a Renault EV (or a build that pretends to be one), so it seems the current listing isn't restricted to Renault's EVs?
(GPS is still semi-broken on this ROM/device, so I can't actually use it lol.)
👍6🔥2
Mishaal's Android News Feed
New features in the December 2022 Pixel Feature Drop: - Clear Calling (Pixel 7) - Speaker labels in Google Recorder (Pixel 6 onward) - Free VPN by Google One (Pixel 7) - New Curated Culture wallpapers (all) - Unified search expands to all Pixels - Safety…
Spatial audio with head tracking is available starting in Android 13 QPR1, thanks to the new audio pipeline architecture and sensor framework integration.
The Pixel 6 and 7 series received QPR1 yesterday, but spatial audio with head tracking support isn't available yet when connected to the Pixel Buds Pro as Google says this feature will roll out next month. It's likely the reason for the wait is that the Pixel Buds Pro will need a firmware update.
For head tracking to work, the headset needs to report head pose information following Android's Head Tracker HID Protocol. Also, a low-latency codec needs to be used, as head-tracking latency must not >150ms for the experience to be good. Google will likely be using Opus; QPR1 added support for it over A2DP.
However, it's not clear if the Buds Pro currently support Opus decoding, and a firmware update may be needed to enable this as well as support for sending out that head pose information.
When it does roll out, Google says that spatial audio will initially be supported with movies from Netflix, YouTube, Google TV, and HBOMax that have 5.1 or higher audio tracks. Google recommends using content marked as Dolby audio, 5.1 or Dolby atmos.
Head tracking isn't enabled by default, though. You'll have to navigate to Settings > Connected devices > Pixel Buds Pro > Settings > Head tracking to turn it on, as shown below.
The Pixel 6 and 7 series received QPR1 yesterday, but spatial audio with head tracking support isn't available yet when connected to the Pixel Buds Pro as Google says this feature will roll out next month. It's likely the reason for the wait is that the Pixel Buds Pro will need a firmware update.
For head tracking to work, the headset needs to report head pose information following Android's Head Tracker HID Protocol. Also, a low-latency codec needs to be used, as head-tracking latency must not >150ms for the experience to be good. Google will likely be using Opus; QPR1 added support for it over A2DP.
However, it's not clear if the Buds Pro currently support Opus decoding, and a firmware update may be needed to enable this as well as support for sending out that head pose information.
When it does roll out, Google says that spatial audio will initially be supported with movies from Netflix, YouTube, Google TV, and HBOMax that have 5.1 or higher audio tracks. Google recommends using content marked as Dolby audio, 5.1 or Dolby atmos.
Head tracking isn't enabled by default, though. You'll have to navigate to Settings > Connected devices > Pixel Buds Pro > Settings > Head tracking to turn it on, as shown below.
👍18
This is why I wasn't too sad when I bricked my ADT-3. I had already heard the ADT-4 was coming with these specs 😆
This upgrade is long overdue. Android TV 10 mandated launch devices to support AV1 decoding, which the ADT-3 does not support. More recently, Android TV 13 added a bunch of features/APIs related to terrestrial broadcasting, so a device like this is needed to test.
This upgrade is long overdue. Android TV 10 mandated launch devices to support AV1 decoding, which the ADT-3 does not support. More recently, Android TV 13 added a bunch of features/APIs related to terrestrial broadcasting, so a device like this is needed to test.
9to5Google
Sources: Google preparing 'ADT-4' developer box for Android TV with upgraded specs
After the ADT-3 was discontinued, we've found evidence that Google will start pushing ADT-4 in the near future.
👍6👏1