Skip to content

consider newer Android API #56

@ghost

Description

the current implementation:

data: dict[str, int | str | bytes] = {
"accountType": "HOSTED_OR_GOOGLE",
"Email": email,
"has_permission": 1,
"add_account": 1,
"EncryptedPasswd": google.construct_signature(
email, password, ANDROID_KEY_7_3_29
),
"service": service,
"source": "android",
"androidId": android_id,
"device_country": device_country,
"operatorCountry": operator_country,
"lang": lang,
"sdk_version": sdk_version,
"client_sig": client_sig,
"callerSig": client_sig,
"droidguard_results": "dummy123",
}

from what I can tell is based on Android API 19, which is dated around 2013:

https://apilevels.com

have you considered bumping up the implementation? it seems starting with API 21, Google is using something more like this:

POST /auth HTTP/1.1
Host: android.clients.google.com
Accept-Encoding: identity
Connection: Keep-Alive
User-Agent: GoogleAuth/1.4 (generic_x86 LSY66K); gzip
app: com.google.android.gms
content-type: application/x-www-form-urlencoded
device: 3760dcd91...

ACCESS_TOKEN=1&
add_account=1&
device_country=us&
droidguard_results=CgYXdhUgp-PSEFsAAHdU9h5a1xWSAFpFJRNTS5M9AC4R4ZGh9VMLBADDJ6...&
google_play_services_version=11055270&
is_dev_key_gmscore=1&
lang=en_US&
sdk_version=21&
service=ac2dm&
Email=s...&
androidId=3760dcd91...&
Token=oauth2_4%2F0Adeu5BVnTdwNdQyQ97hA6iZKM3KitofkyAKOb3yucDZ0JxPCvMJ3c7y-lmHr...

admittedly, getting that Token value to plug into the request is not simple, but after 10 years it might be time to start thinking about it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions