# Coding

Work in progress
Wednesday, February 5, 2020

Finally done! Raccoon v4.12 should solve the CAPTCHA issue. Next stop: rewriting/replacing DummyDroid.

Tuesday, February 4, 2020

Done! Bouncycastle does the trick. The rest is a diligent but routine piece of work. Should take only a few more days.

Sunday, February 2, 2020

Finally! Got past the login CAPTCHA - on Linux, this time

Yeah, I know, no blog updates in two months. Sorry about that, but there wasn't really anything to write about.

Saturday, November 30, 2019

Ha! Success. Got past the CAPTCHA prompt

Good news is, I managed to log into my test account. Bad news are, it doesn't work on a PC (yet). But by trying to lock non-droids out, Google might have told us more about the login internals than intended.

Thursday, November 21, 2019

This whole CAPTCHA nonsense might, of course, be (in part) IP address related. At least there’s https://accounts.google.com/DisplayUnlockCaptcha. Not sure how that is actually suppose to work, no useful documentation on it either (surprise!). Anyway, I decided to work on proxy support in the setup wizard.

HTTP(S) is fairly unproblematic. Just a ton of boilerplate code, but you can easily switch between proxy hosts on a per request basis (e.g. if you want to bypass geo blocking). What’s giving me headaches is SOCKS5 (Tor, SSH tunnel). For this one you basically have to reboot the entire network code when switching hosts (killing transfers). I guess, I’ll postpone that for now, though SSH tunneling could be real handy.

I’m not sure if the HTTP User-Agent header matters for the login service (it does matter for market service), in case it makes a difference, here’s how to come up with one:

  APPNAME/VERSION (DEVICE ID)

Use either “GoogleLoginService” (earlier Android versions) or “GoogleAuth” (later Android versions) as APPNAME. I don’t know exactly when it got renamed, but it must have happened after SDK 16 and before SDK 19. VERSION may be “1.2” or “1.3” for “GoogleLoginService” and “1.4” for “GoogleAuth”.

DEVICE and ID are ro.product.device and ro.build.id from your 🗋 /system/build.prop file.

Monday, November 18, 2019
Tuesday, November 5, 2019

Progress report: adding CAPTCHA support to the setup wizard

Some of you might have found yourself being asked to solve a captcha when adding a new profile, with Raccoon providing no means to show the image nor accepting an answer.

Monday, October 14, 2019

Is it possible to merge split APK apps?

I get it, you guys hate split APKs as much as I do. So why doesn't Raccoon simply merge them into a traditional APK? Is that even possible?

Monday, December 28, 2015

How to get the Google Play User Agent for a given device

The Finsky useragent (not the same as the Chrome useragent) is used to determine app/device compatibility.