Login URL : https://www.google.com/accounts/ClientLogin
参数 :
参数 | 值 |
---|---|
Google 帐号 | |
Passwd | Google 帐号密码 |
service | "android" |
accountType | "HOSTED_OR_GOOGLE" |
请求后返回的响应字符串中找 Auth:xxxxxxxxxx
URL: http://android.clients.google.com/market/download/Download
需要两个参数:
参数 | 值 |
---|---|
userId | 与Google帐号相关的值,用tcpdump抓数据包,然后用wireshark分析。也可以从DownloadProvider 数据库中找到 |
deviceId | 手机设备号,也可以用SDK默认的"000000000000000" |
设置cookie, User-agent:
Cookie:"ANDROID=" + authToken
User-agent:AndroidDownloadManager
POST /market/api/ApiRequest HTTP/1.1
Host: android.clients.google.com
Connection: Keep-Alive
Content-Length: 476
user-agent: Android-Market/2 (dream CRC1); gzip
content-type: application/x-www-form-urlencoded
version=2&request=CsUCCuABRFF….ETXl5Qi1wUDcy
request 后面的字符串,是参数protbuf序列化,再经过base64加密。
请求的Context参数如下:
参数 | 值 |
---|---|
authSubToken | authsub token for service 'android' |
unknown1 | always 0 |
version | always 1002 |
deviceId | android id converted to hexadecimal //可以用默认的"0000000000000000" |
deviceAndSdkVersion | ro.product.device ':' ro.build.version.sdk //"sapphire:8" |
userLanguage | ro.product.locale.language //"zh" |
userCountry | ro.product.locale.region //"cn" |
operatorAlpha | gsm.operator.alpha //"T-Mobile USA" |
simOperatorAlpha | gsm.sim.operator.alpha //"T-Mobile USA" |
operatorNumeric | gsm.operator.numeric //"310260" |
simOperatorNumeric | sim.gsm.operator.numeric //"310260" |
发送请求后,得到的响应数据是经过gzip压缩过的。
参考: