Conversation

The main issue with adoption for Android is that CFI is still only universally enabled for the kernel, not userspace. It's not being pushed onto app developers via the NDK. There's also a lot of low hanging fruit from the Android Runtime although we address a lot ourselves.
1
2
It's great that the majority of app code is written in memory safe languages. However, apps still use plenty of a native code and most of that is loaded via dynamic libraries rather than in separate native processes. Runtime for Kotlin/Java provides low-hanging fruit to target.
1
2
Yeah, app developers will have to deal with it when the NDK starts doing it as has been done for the earlier features. Android removed non-PIE dynamic executables completely along with many other legacy things like text relocations thanks to new archs (arm64) and API levels.
1
2
Apps are always meant to be built with the latest SDK but they can take time to move to targeting the latest API level. Targeting newer API levels enables backwards incompatible improvements which app developers are forced to adopt. Lots of privacy/security improvements are done.
1
1
Too many apps have latent memory corruption bugs that are going to be uncovered. It'll likely end up being phased in via API level. Eventually apps won't have the option to turn it off anymore after a certain API level. It's a nice way of being able to gradually do these changes.
1
1
App developers get around 4-6 months of the new major OS version being in public Beta testing and then they get about a year after the stable release before the Play Store forces them to target the new API level. Of course, can't do that for our changes unless we upstream them.
1
1
Some of our changes would really benefit from being upstream so app developers could be forced to cope with it such as our OTHER_SENSORS (Sensors) permission where we currently have to assume every app needs it and have to leave it enabled by default.
1
1
I wish we could force a change on the app ecosystem that way ourselves since there are dozens of things we'd be able to do in a nicer way. It's still pretty easy for us to make fairly aggressive changes due to how apps are forced to work by doing things through the OS APIs.
1