Mishaal's Android News Feed
A few days ago, I asked y'all (on Twitter) if you've enabled Android's Themed Icon feature and which apps haven't implemented it. Some of you recalled that Google is working on a feature to generate a themed icon for ANY app. How good is the forced Themed…
For a bit of context, when Google released Android 13 QPR2 Beta 2, I spotted a new launcher flag named "ENABLE_FORCED_MONO_ICON" that "enable[s] the ability to generate monochromatic icons, if it is not provided by the app.
The existence of that launcher flag got quite a few people excited, because many popular Android apps have yet to implement Themed Icon support, as shown by the replies to my previous tweet.
So many were wondering: Will this feature be available to users in Android 14? While it's true that the launcher flag has carried over from the QPR betas, there's no evidence Google will expose it to users.
This feels more like a one-off experiment, something a few OEMs (and custom launcher/ROM developers, it's open source) might expose to users in developer options, if we're lucky.
The existence of that launcher flag got quite a few people excited, because many popular Android apps have yet to implement Themed Icon support, as shown by the replies to my previous tweet.
So many were wondering: Will this feature be available to users in Android 14? While it's true that the launcher flag has carried over from the QPR betas, there's no evidence Google will expose it to users.
This feels more like a one-off experiment, something a few OEMs (and custom launcher/ROM developers, it's open source) might expose to users in developer options, if we're lucky.
X (formerly Twitter)
Mishaal Rahman (@MishaalRahman) on X
WOW! Google is testing letting you generate themed icons for ANY app, even if it doesn't provide its own monochromatic icon! This is currently disabled by default and hidden behind the "ENABLE_FORCED_MONO_ICON" flag.
👍21😱1
Mishaal's Android News Feed
If you're planning to manually install Android 14 Beta 1 using the factory image for your Pixel when it's released, do not upgrade platform-tools right now. Version 34.0.0 and newer currently have a bug that prevents them from rebooting to userspace fastboot…
Google has released platform-tools_r34.0.3, fixing the issue described above.
The SDK Platform Tools release notes page hasn't yet been updated to reflect this update, but you can download the latest tools directly (I got the update through Android Studio).
The SDK Platform Tools release notes page hasn't yet been updated to reflect this update, but you can download the latest tools directly (I got the update through Android Studio).
❤18👍8😱4
Google is preparing to add a Thread network stack for Android, and it could become a modular system component (AKA Project Mainline module) as soon as the next release, ie. Android 15 Vanilla Ice Cream.
A "ThreadNetwork" repo was added to AOSP a few months back, though no code has been added to it yet. The code change listing the owners of the project described it as the "ThreadNetwork mainline project."
The ThreadNetwork repo is now being added to the AOSP platform manifest. And a new PackageManager API is being added that apps can use to see if a particular device supports Thread (android.hardware.threadnetwork).
By making Android's new Thread network stack part of Project Mainline, it would be more easily updatable through Google Play System Updates. Would also improve quality and interoperability.
Android's Bluetooth, WiFi, and UWB stacks are already Mainline modules, and soon NFC will be too.
AFAIK, there aren't yet any Android devices that support Thread. According to The Verge, not even the new Pixel Tablet supports it, which is disappointing.
Devices need radio hardware to support the IEEE 802.15.4 protocol that Thread is based on.
A "ThreadNetwork" repo was added to AOSP a few months back, though no code has been added to it yet. The code change listing the owners of the project described it as the "ThreadNetwork mainline project."
The ThreadNetwork repo is now being added to the AOSP platform manifest. And a new PackageManager API is being added that apps can use to see if a particular device supports Thread (android.hardware.threadnetwork).
By making Android's new Thread network stack part of Project Mainline, it would be more easily updatable through Google Play System Updates. Would also improve quality and interoperability.
Android's Bluetooth, WiFi, and UWB stacks are already Mainline modules, and soon NFC will be too.
AFAIK, there aren't yet any Android devices that support Thread. According to The Verge, not even the new Pixel Tablet supports it, which is disappointing.
Devices need radio hardware to support the IEEE 802.15.4 protocol that Thread is based on.
👍15🔥4🤡2
Here's another look at the lock screen shortcut customization feature Google announced at I/O!
The available shortcuts include:
* QR code scanner
* Flashlight
* Video camera
* Notetaking (see below for explanation)
* Mute
* Wallet
* Camera
* Do Not Disturb
* Device Controls
The attached screen recording shows the lock screen shortcuts feature in action. Note that you can only place a single shortcut on both the left and the right, and that you have to long-press a shortcut to activate it.
Most of the lock screen shortcuts are pretty self-explanatory. Wallet is greyed out because I haven't added a card yet, while notetaking is greyed out because I don't have an app set as the "default notes app."
As I explained in an earlier thread, Android 14 adds support for a default notes app. The default notes app can use the new AppClips API/feature to trigger a screenshot to be taken that the user can edit before inserting into a note.
Given that the Pixel Tablet supports USI styli, I'm guessing this whole notetaking feature is intended for that device. Though Google hasn't announced a 1P stylus accessory yet, and it doesn't seem like Google Keep supports this feature either for now.
Lock screen shortcuts aren't exclusive to Pixel, unlike the new wallpaper features. The shortcut code is available in AOSP (it's called "keyguard quick affordances") as is the documentation.
Hopefully most OEMs enable this in their Android 14 builds!
The available shortcuts include:
* QR code scanner
* Flashlight
* Video camera
* Notetaking (see below for explanation)
* Mute
* Wallet
* Camera
* Do Not Disturb
* Device Controls
The attached screen recording shows the lock screen shortcuts feature in action. Note that you can only place a single shortcut on both the left and the right, and that you have to long-press a shortcut to activate it.
Most of the lock screen shortcuts are pretty self-explanatory. Wallet is greyed out because I haven't added a card yet, while notetaking is greyed out because I don't have an app set as the "default notes app."
As I explained in an earlier thread, Android 14 adds support for a default notes app. The default notes app can use the new AppClips API/feature to trigger a screenshot to be taken that the user can edit before inserting into a note.
Given that the Pixel Tablet supports USI styli, I'm guessing this whole notetaking feature is intended for that device. Though Google hasn't announced a 1P stylus accessory yet, and it doesn't seem like Google Keep supports this feature either for now.
Lock screen shortcuts aren't exclusive to Pixel, unlike the new wallpaper features. The shortcut code is available in AOSP (it's called "keyguard quick affordances") as is the documentation.
Hopefully most OEMs enable this in their Android 14 builds!
👍42❤🔥6❤4🕊1
One of the features I was expecting to see in Android 14 was the ability to turn your phone into a USB webcam for your PC. Google hasn't talked about this feature yet, but I hope they still plan to ship it!
Here's some tidbits about Android 14's USB webcam feature 👇
So back in February, I discovered code changes in AOSP that hinted at a new "DeviceAsWebcam" service (which upon re-reading the code changes I now believe to be a separate system app) that "turns an Android device into a webcam."
Android devices that support the UVC gadget mode (ie. the kernel is compiled with CONFIG_USB_CONFIGFS_F_UVC=y) can be set up to send camera frames to a /dev/video* node that a host device supporting UVC webcams can read from.
A dedicated DeviceAsWebcam app - which I should note has not yet been shipped on any Pixel builds - is what, I believe, would be responsible for actually using Android's Camera API to forward frames.
Only system apps-like DeviceAsWebcam-would have permission to R/W data to the /dev/video* node. In fact, the USB configuration file for all Tensor & Tensor 2-based (but not SM7250) Pixels already sets up the UVC function. Attached to this post is a snippet from init.gs101.usb.rc/init.gs201.usb.rc.
But since the DAW app is not present in current Android 14 beta builds, we can't actually use this functionality, though we can surface the "Webcam" option in "USB Preferences" as shown in the first post. The "Webcam" option appears when the system property ro.usb.uvc.enabled is set to true. Settings calls UsbManager#isUvcSupportEnabled(), which reads this property, to decide whether to show this option.
When you select "webcam", UsbDeviceManager sets the USB config to "uvc" and the android.hardware.usb.action.USB_STATE broadcast is sent with the USB_FUNCTION_UVC boolean extra. DAW presumably listens for this broadcast to know when to start forwarding frames.
Here's some tidbits about Android 14's USB webcam feature 👇
So back in February, I discovered code changes in AOSP that hinted at a new "DeviceAsWebcam" service (which upon re-reading the code changes I now believe to be a separate system app) that "turns an Android device into a webcam."
Android devices that support the UVC gadget mode (ie. the kernel is compiled with CONFIG_USB_CONFIGFS_F_UVC=y) can be set up to send camera frames to a /dev/video* node that a host device supporting UVC webcams can read from.
A dedicated DeviceAsWebcam app - which I should note has not yet been shipped on any Pixel builds - is what, I believe, would be responsible for actually using Android's Camera API to forward frames.
Only system apps-like DeviceAsWebcam-would have permission to R/W data to the /dev/video* node. In fact, the USB configuration file for all Tensor & Tensor 2-based (but not SM7250) Pixels already sets up the UVC function. Attached to this post is a snippet from init.gs101.usb.rc/init.gs201.usb.rc.
But since the DAW app is not present in current Android 14 beta builds, we can't actually use this functionality, though we can surface the "Webcam" option in "USB Preferences" as shown in the first post. The "Webcam" option appears when the system property ro.usb.uvc.enabled is set to true. Settings calls UsbManager#isUvcSupportEnabled(), which reads this property, to decide whether to show this option.
When you select "webcam", UsbDeviceManager sets the USB config to "uvc" and the android.hardware.usb.action.USB_STATE broadcast is sent with the USB_FUNCTION_UVC boolean extra. DAW presumably listens for this broadcast to know when to start forwarding frames.
🔥31👍19
Here's a look at potentially all of the custom clock options Pixel users will get in Android 14, courtesy of Kamila Wojciechowska (Za_Raczke on Twitter)!
Google said at I/O that lock screen clock customization will be available "next month", so expect to see these in Android 14 Beta 3.
For comparison, I've also attached the screen recording Google shared at I/O that shows off some of the lock screen clock options. (Google's is the higher resolution one). Kamila's video shows more of the clocks that will likely be available to choose from.
Google said at I/O that lock screen clock customization will be available "next month", so expect to see these in Android 14 Beta 3.
For comparison, I've also attached the screen recording Google shared at I/O that shows off some of the lock screen clock options. (Google's is the higher resolution one). Kamila's video shows more of the clocks that will likely be available to choose from.
🔥42🤮16👍9🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Want to try Android 14's forced themed icon & app cloning features?
Check out Siavash7999's AOSPMods project, which has just been updated to enable both features on Android 14! Best part is that they forced the Cloned Apps feature to support ALL apps not just a limited number.
AOSPMods requires a phone with Magisk + LSPosed, but if you're looking to customize your Pixel phone without installing a custom ROM, then this is a great way to do so. It's open source so you can see for yourself how the dev enabled these features.
You can download the latest version (canary-252 at the time of writing) from this link.
For more reading on the forced themed icon feature. For more reading on the app cloning feature.
Check out Siavash7999's AOSPMods project, which has just been updated to enable both features on Android 14! Best part is that they forced the Cloned Apps feature to support ALL apps not just a limited number.
AOSPMods requires a phone with Magisk + LSPosed, but if you're looking to customize your Pixel phone without installing a custom ROM, then this is a great way to do so. It's open source so you can see for yourself how the dev enabled these features.
You can download the latest version (canary-252 at the time of writing) from this link.
For more reading on the forced themed icon feature. For more reading on the app cloning feature.
👍30❤1
Google completed the May 2023 Google Play System Update rollout on Friday, so if you're interested, here are the modules that were updated:
Name| Old version code | New version code
AdServices: 331611190 --> 331710270
ART: 331612010 --> 331711080
Cell Broadcast: 331610010 --> 331710020
Conscrypt: 331411000 --> 331413000
IPsec: 331310000 --> 331312000
Media: 331612000 --> 331712010
Media Codecs: 331612000 --> 331712000
Media Provider: 331613010 --> 331711020
Network Stack: 331610000 --> 331710000
On Device Personalization: 330442000 --> 330442040
Statsd: 331610000 --> 331711010
Permission Controller: 331611010 --> 331710050
Device Scheduling: 331111000 --> 331113000
SDK Extensions: 331410000 --> 331412000
Tethering: 331511160 --> 331711040
UWB: 331611010 --> 331613010
WiFi: 331613000 --> 331710030
If you want the full changelog, I generated one you can see here.
Name| Old version code | New version code
AdServices: 331611190 --> 331710270
ART: 331612010 --> 331711080
Cell Broadcast: 331610010 --> 331710020
Conscrypt: 331411000 --> 331413000
IPsec: 331310000 --> 331312000
Media: 331612000 --> 331712010
Media Codecs: 331612000 --> 331712000
Media Provider: 331613010 --> 331711020
Network Stack: 331610000 --> 331710000
On Device Personalization: 330442000 --> 330442040
Statsd: 331610000 --> 331711010
Permission Controller: 331611010 --> 331710050
Device Scheduling: 331111000 --> 331113000
SDK Extensions: 331410000 --> 331412000
Tethering: 331511160 --> 331711040
UWB: 331611010 --> 331613010
WiFi: 331613000 --> 331710030
If you want the full changelog, I generated one you can see here.
👍30❤4
Amidst the news that Arm's new mobile CPU designs support 64-bit instructions only, I was wondering what happened to that feature which would have added a warning to Android when you try to run a 32-bit app on a build that supports 64-bit code. Turns out it's been revived!
(For context, refer to this tweet from last year.)
According to a Googler, the company is now "looking into it as one of the final stages of the move to 64-bit only." The reason it wasn't merged before was "just bureaucracy". The feature hasn't been merged in AOSP yet but I bet we'll see it in Android 15.
(For context, refer to this tweet from last year.)
According to a Googler, the company is now "looking into it as one of the final stages of the move to 64-bit only." The reason it wasn't merged before was "just bureaucracy". The feature hasn't been merged in AOSP yet but I bet we'll see it in Android 15.
👏25👍6
Android will add a new developer option to enable ANGLE as the system OpenGL ES driver. ANGLE currently ships on Pixel not as the default OpenGL ES driver but as a data driver, but that could change in a future release.
ANGLE is an open source, cross-platform OpenGL driver that translates OpenGL ES calls to one of the hardware-supported APIs available for that platform.
Currently most Android devices ship with native OpenGL ES drivers developed by the GPU vendor.
Sources: [1] [2] [3]
ANGLE is an open source, cross-platform OpenGL driver that translates OpenGL ES calls to one of the hardware-supported APIs available for that platform.
Currently most Android devices ship with native OpenGL ES drivers developed by the GPU vendor.
Sources: [1] [2] [3]
YouTube
Android game graphics - OpenGL ES vs. Vulkan case study
This session will explore the two graphics APIs available to games running on Android: OpenGL ES and Vulkan. The pros and cons of each API will be discussed. A case study of the performance and power benefits of Vulkan will be presented. Recommendations will…
👍17👏2
A few folks have asked me if Pixels will still get that "battery health" feature I spotted in the Android 13 QPR betas.
While the feature was removed from the SettingsIntelligence app in Android 14 Beta 1, there's a chance it could be brought back.
Android 14 adds new public APIs to get the battery charging cycle count and the battery charging status (normal, static threshold, adaptive threshold, always on power).
There are also new system APIs to get the battery manufacturing date, date of first usage, and state of health (remaining estimated full charge capacity relative to the rated capacity in %).
My guess (or rather hope) is that Google implements these directly into Android's Settings app, so that any device (not just Pixel) that adds support for reporting this information to the OS will have this data readily available to users.
I think this would be a better solution than having a standalone, proprietary battery health app. OEMs/Google could still add to this by providing custom recommendations and charging/power management features.
There's still time for this feature to make it into Android 14, since it wouldn't involve tweaking any of the APIs. But it's probably too late, and if they add it, it might be something we'll see in Android 15 (I hope).
While the feature was removed from the SettingsIntelligence app in Android 14 Beta 1, there's a chance it could be brought back.
Android 14 adds new public APIs to get the battery charging cycle count and the battery charging status (normal, static threshold, adaptive threshold, always on power).
There are also new system APIs to get the battery manufacturing date, date of first usage, and state of health (remaining estimated full charge capacity relative to the rated capacity in %).
My guess (or rather hope) is that Google implements these directly into Android's Settings app, so that any device (not just Pixel) that adds support for reporting this information to the OS will have this data readily available to users.
I think this would be a better solution than having a standalone, proprietary battery health app. OEMs/Google could still add to this by providing custom recommendations and charging/power management features.
There's still time for this feature to make it into Android 14, since it wouldn't involve tweaking any of the APIs. But it's probably too late, and if they add it, it might be something we'll see in Android 15 (I hope).
👍36🔥8❤3
This media is not supported in your browser
VIEW IN TELEGRAM
In this video posted by the official Made by Google account, we can see a little chip animation play in the status bar when the device starts charging.
This isn't enabled yet in the current Android 13 QPR or Android 14 betas, but we could see this in Android 14 Beta 3. A concept of this status bar charging chip animation was shown in a Google I/O 2021 session two years ago.
This isn't enabled yet in the current Android 13 QPR or Android 14 betas, but we could see this in Android 14 Beta 3. A concept of this status bar charging chip animation was shown in a Google I/O 2021 session two years ago.
❤50👍12🔥7🍌1
Android's new userfaultfd-based garbage collection algorithm is now enabled by default when building the ART module.
This change was announced at I/O 2022 and has been in testing for a while, but it could soon roll out in an upcoming Google Play System Update for Android 12+.
This change was announced at I/O 2022 and has been in testing for a while, but it could soon roll out in an upcoming Google Play System Update for Android 12+.
🔥20👍4❤2