Saagar Jha
Story time! When I was working on Android security at Google there was one project I wanted to actively sabotage. Unfortunately, I was unable to do so before I left the company. The authors probably have no idea of this. But their feature was this one.
https://androiddev.social/@MishaalRahman/110968267321676068
https://androiddev.social/@MishaalRahman/110968267321676068
Saagar Jha
(replying to Saagar Jha)
Why would I ever admit to this? My job was to make Android more secure. This feature does not make Android more secure. In fact it makes Android less secure, and less usable to boot.
The endgame for this feature is people install malware on their device. It must unship, period.
The endgame for this feature is people install malware on their device. It must unship, period.
Saagar Jha
(replying to Saagar Jha)
Why does it exist? First, some background. As Android evolves, some APIs are found to have problematic privacy or security implications. As a result, they get updated: perhaps restricted a bit more, or maybe even removed entirely. This is, in general, a good thing!
Saagar Jha
(replying to Saagar Jha)
However, changing APIs means that apps that were built for older versions may break. So, they’re often “grandfathered in”: there are rules like “we changed this in SDK Y, so if your app was built against X or below you can keep the old behavior”. This keeps them working as-is.
Saagar Jha
(replying to Saagar Jha)
Of course, this means bad actors can just always target X or below and keep doing the malicious thing. For this reason, the Play Store has long had a policy where you need to build with a more recent SDK for app updates at some point. This is also a reasonable policy!
Saagar Jha
(replying to Saagar Jha)
Now, what happens to apps that never update? They can keep being installed, and since they were build with SDK X, can keep accessing the old, problematic APIs.
This is the motivation that was used to propose this feature.
This is the motivation that was used to propose this feature.
Saagar Jha
(replying to Saagar Jha)
This is something that should get solved! Or…wait, should it? This definitely solves the problem, but you’ll notice that I never mentioned any harms. Has anyone actually installed an old app and been harmed because it did something that was let through because of the old SDK?
Saagar Jha
(replying to Saagar Jha)
The truth is that I don’t know if this has harmed anyone. At least I didn’t spot any examples when I skimmed the proposal. But, it sounds plausible, so let’s assume it has happened and motivated this change. This does mean we’ll have to look elsewhere when evaluating it, however.
Saagar Jha
(replying to Saagar Jha)
Most apps on the Play Store are not malware (seriously!) This has held true over time. Most of the old apps that haven’t been updated are games, or old utilities, or defunct social networks. Some have backends that don’t work anymore. But they’re not trying to be malicious!
Saagar Jha
(replying to Saagar Jha)
Most of our work was actually navigating around this fact. By their nature, blanket policies affect legitimate use more than illegitimate use, because there is more good than bad. When we cause pain by being overly broad, it makes people resent the process.
