mirror of
https://github.com/FliegendeWurst/googleplay-api.git
synced 2024-11-22 12:54:58 +00:00
Updated parameters with more up-to-date values
This commit is contained in:
parent
c4ba7f80b3
commit
a07640b90e
@ -102,30 +102,19 @@ class DeviceBuilder(object):
|
|||||||
headers['device'] = "{0:x}".format(gsfid)
|
headers['device'] = "{0:x}".format(gsfid)
|
||||||
return headers
|
return headers
|
||||||
|
|
||||||
def getAuthParams(self, email, passwd):
|
|
||||||
return {"Email": email,
|
|
||||||
"EncryptedPasswd": passwd,
|
|
||||||
"accountType": ACCOUNT,
|
|
||||||
"has_permission": "1",
|
|
||||||
"source": "android",
|
|
||||||
"device_country": self.locale[0:2],
|
|
||||||
"service": "androidmarket",
|
|
||||||
"app": "com.android.vending",
|
|
||||||
"lang": self.locale,
|
|
||||||
"sdk_version": self.device['build.version.sdk_int']}
|
|
||||||
|
|
||||||
def getLoginParams(self, email, encrypted_passwd):
|
def getLoginParams(self, email, encrypted_passwd):
|
||||||
return {"Email": email,
|
return {"Email": email,
|
||||||
"EncryptedPasswd": encrypted_passwd,
|
"EncryptedPasswd": encrypted_passwd,
|
||||||
"service": "ac2dm",
|
|
||||||
"add_account": "1",
|
"add_account": "1",
|
||||||
"accountType": ACCOUNT,
|
"accountType": ACCOUNT,
|
||||||
|
"google_play_services_version": self.device.get('gsf.version'),
|
||||||
"has_permission": "1",
|
"has_permission": "1",
|
||||||
"app": "com.google.android.gsf",
|
|
||||||
"source": "android",
|
"source": "android",
|
||||||
"device_country": self.locale[0:2],
|
"device_country": self.locale[0:2],
|
||||||
"lang": self.locale,
|
"lang": self.locale,
|
||||||
"sdk_version": self.device.get('build.version.sdk_int')}
|
"sdk_version": self.device.get('build.version.sdk_int'),
|
||||||
|
"client_sig": "38918a453d07199354f8b19af05ec6562ced5788",
|
||||||
|
"callerSig": "38918a453d07199354f8b19af05ec6562ced5788"}
|
||||||
|
|
||||||
def getAndroidCheckinRequest(self):
|
def getAndroidCheckinRequest(self):
|
||||||
request = googleplay_pb2.AndroidCheckinRequest()
|
request = googleplay_pb2.AndroidCheckinRequest()
|
||||||
|
@ -158,6 +158,11 @@ class GooglePlayAPI(object):
|
|||||||
encryptedPass = self.encrypt_password(email, password).decode('utf-8')
|
encryptedPass = self.encrypt_password(email, password).decode('utf-8')
|
||||||
# AC2DM token
|
# AC2DM token
|
||||||
params = self.deviceBuilder.getLoginParams(email, encryptedPass)
|
params = self.deviceBuilder.getLoginParams(email, encryptedPass)
|
||||||
|
params['service'] = 'ac2dm'
|
||||||
|
params['add_account'] = '1'
|
||||||
|
params['callerPkg'] = 'com.google.android.gms'
|
||||||
|
headers = self.deviceBuilder.getAuthHeaders(self.gsfId)
|
||||||
|
headers['app'] = 'com.google.android.gsm'
|
||||||
response = requests.post(self.AUTHURL, data=params, verify=ssl_verify,
|
response = requests.post(self.AUTHURL, data=params, verify=ssl_verify,
|
||||||
proxies=self.proxies_config)
|
proxies=self.proxies_config)
|
||||||
data = response.text.split()
|
data = response.text.split()
|
||||||
@ -195,8 +200,11 @@ class GooglePlayAPI(object):
|
|||||||
raise LoginError('Either (email,pass) or (gsfId, authSubToken) is needed')
|
raise LoginError('Either (email,pass) or (gsfId, authSubToken) is needed')
|
||||||
|
|
||||||
def getAuthSubToken(self, email, passwd):
|
def getAuthSubToken(self, email, passwd):
|
||||||
requestParams = self.deviceBuilder.getAuthParams(email, passwd)
|
requestParams = self.deviceBuilder.getLoginParams(email, passwd)
|
||||||
|
requestParams['service'] = 'androidmarket'
|
||||||
|
requestParams['app'] = 'com.android.vending'
|
||||||
headers = self.deviceBuilder.getAuthHeaders(self.gsfId)
|
headers = self.deviceBuilder.getAuthHeaders(self.gsfId)
|
||||||
|
headers['app'] = 'com.android.vending'
|
||||||
response = requests.post(self.AUTHURL,
|
response = requests.post(self.AUTHURL,
|
||||||
data=requestParams,
|
data=requestParams,
|
||||||
verify=ssl_verify,
|
verify=ssl_verify,
|
||||||
@ -221,16 +229,17 @@ class GooglePlayAPI(object):
|
|||||||
raise LoginError("auth token not found.")
|
raise LoginError("auth token not found.")
|
||||||
|
|
||||||
def getSecondRoundToken(self, first_token, params):
|
def getSecondRoundToken(self, first_token, params):
|
||||||
|
if self.gsfId is not None:
|
||||||
|
params['androidId'] = "{0:x}".format(self.gsfId)
|
||||||
params['Token'] = first_token
|
params['Token'] = first_token
|
||||||
params['service'] = 'androidmarket'
|
|
||||||
params['check_email'] = '1'
|
params['check_email'] = '1'
|
||||||
params['token_request_options'] = 'CAA4AQ=='
|
params['token_request_options'] = 'CAA4AQ=='
|
||||||
params['system_partition'] = '1'
|
params['system_partition'] = '1'
|
||||||
params['_opt_is_called_from_account_manager'] = '1'
|
params['_opt_is_called_from_account_manager'] = '1'
|
||||||
params['google_play_services_version'] = '11518448'
|
|
||||||
params.pop('Email')
|
params.pop('Email')
|
||||||
params.pop('EncryptedPasswd')
|
params.pop('EncryptedPasswd')
|
||||||
headers = self.deviceBuilder.getAuthHeaders(self.gsfId)
|
headers = self.deviceBuilder.getAuthHeaders(self.gsfId)
|
||||||
|
headers['app'] = 'com.android.vending'
|
||||||
response = requests.post(self.AUTHURL,
|
response = requests.post(self.AUTHURL,
|
||||||
data=params,
|
data=params,
|
||||||
headers=headers,
|
headers=headers,
|
||||||
|
Loading…
Reference in New Issue
Block a user