September 29, 2020

Is there any part in Android not fucked up beyond recognition?

Gotta vent, cover your ears.

So, here I am, finally got a legacy free version of the Google Play API ready. It is based on the Apache HTTP client library because that allows for spoofing an Android TLS stack on a PC (required since Google now does SSL fingerprinting when logging in) as well as some other goodies such as:

  • TOR / Proxy support
  • Intercepting HTTP requests and printing them as CURL scripts (really nice for debugging)

There’s only one minor issue with the new code: it doesn’t work on fucking Android!

Oh, you wanted to use Apache HttpClient? Tough!

Back in the days, someone in the Android team decided that Apache HttpClient was a really popular way for doing HTTP requests and that therefore, the OS should ship with the library. That someone didn’t bother with waiting for a stable version and some things had to be changed under the hood anyways, because heavens beware, shipping an(y) open source component without wanking on it first is against company policy. So, that someone (accidentally) had created a fork, which now had to be maintained independently, of which he got tired eventually. Therefore, in accordance with another company policy (“regularly screw up people, depending on your shit by retiring it”), it got removed completely.

Bottom line:

  • You cannot do cross platform development involving the Apache HttpClient library. The “PC version” won’t work on Android and the Android version doesn’t work on a PC.
  • You cannot ship your app with your own version of HttpClient, because Google’s Wankware gets preloaded.
  • Well, you actually can ship your own version, but not if your app is to run on anything below Android 8.

Way to go Google, making a popular library completely useless on Android.