From 91ec07ed77fc930abed172287968716d1e21f1b3 Mon Sep 17 00:00:00 2001 From: Domenico Iezzi Date: Wed, 6 Sep 2017 21:45:52 +0200 Subject: [PATCH] Created Documentation folder Signed-off-by: Domenico Iezzi --- Documentation/auth/README.md | 49 +++++++++++ Documentation/download/README.md | 36 ++++++++ Documentation/download/download-delivery-byte | Bin 0 -> 1464 bytes Documentation/search/README.md | 31 +++++++ Documentation/search/search-response-bytes | Bin 0 -> 19299 bytes README.md | 80 +----------------- 6 files changed, 118 insertions(+), 78 deletions(-) create mode 100644 Documentation/auth/README.md create mode 100644 Documentation/download/README.md create mode 100644 Documentation/download/download-delivery-byte create mode 100644 Documentation/search/README.md create mode 100644 Documentation/search/search-response-bytes diff --git a/Documentation/auth/README.md b/Documentation/auth/README.md new file mode 100644 index 0000000..176ba4f --- /dev/null +++ b/Documentation/auth/README.md @@ -0,0 +1,49 @@ +## Auth (with token) + +### Details +**URL** +``` +POST https://android.clients.google.com/auth HTTP/1.1 +``` + +**HEADERS** +``` +device: 320d104c4dc6eaa4 +app: com.google.android.gms +Accept-Encoding: gzip +User-Agent: GoogleAuth/1.4 (A0001 NJH47F); gzip +content-length: 638 +content-type: application/x-www-form-urlencoded +Host: android.clients.google.com +Connection: Keep-Alive +``` + +**URLEncoded query string** +``` +androidId=&lang=en_US&google_play_services_version=11509438&sdk_version=25&device_country=it&request_visible_actions=&client_sig=38918a453d07199354f8b19af05ec6562ced5788&callerSig=38918a453d07199354f8b19af05ec6562ced5788&Email=&service=oauth2%3Ahttps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplacesserver&app=com.google.android.gms&check_email=1&token_request_options=CAA4AQ%3D%3D&system_partition=1&callerPkg=com.google.android.gms&Token= +``` + +**URLEncoded parsed** +``` +androidId: +lang: en_US +google_play_services_version: 11509438 +sdk_version: 25 +device_country: it +request_visible_actions: +client_sig: 38918a453d07199354f8b19af05ec6562ced5788 +callerSig: 38918a453d07199354f8b19af05ec6562ced5788 +Email: +service: oauth2:https://www.googleapis.com/auth/placesserver +app: com.google.android.gms +check_email: 1 +token_request_options: CAA4AQ== +system_partition: 1 +callerPkg: com.google.android.gms +Token: +``` + +### Notes + +Token in the URLEncoded query is the Master Token, not the Auth Token. +Some info on Master Token [here](https://sbktech.blogspot.it/2014/01/inside-android-play-services-magic.html) diff --git a/Documentation/download/README.md b/Documentation/download/README.md new file mode 100644 index 0000000..8f7d573 --- /dev/null +++ b/Documentation/download/README.md @@ -0,0 +1,36 @@ +## Download ( /fdfe/delivery ) + +### Details + +**URL** +``` +GET https://android.clients.google.com/fdfe/delivery?doc=com.termux.api&ot=1&st=EP6Gwc0FGc3MvN8QbNZBIhcI35bT8qSL1gIQAxABEAQQAhAGEAoYAg%3D%3D&vc=15&fdcf=1&fdcf=2 +``` + +**PARSED GET PARAMETERS** +``` +doc: com.termux.api +ot: 1 +st: EP6Gwc0FGc3MvN8QbNZBIhcI35bT8qSL1gIQAxABEAQQAhAGEAoYAg== +vc: 15 +fdcf: 1 +``` + +**HEADERS** +``` +X-DFE-MCCMNC: 22201 +X-DFE-Device-Id: +X-DFE-Content-Filters: +X-DFE-Network-Type: 4 +X-DFE-Request-Params: timeoutMs=4000 +User-Agent: Android-Finsky/8.1.72.S-all%20%5B6%5D%20%5BPR%5D%20165478484 (api=3,versionCode=80817206,sdk=25,device=A0001,hardware=bacon,product=bacon,platformVersionRelease=7.1.2,model=A0001,buildId=NJH47F,isWideScreen=0,supportedAbis=armeabi-v7a;armeabi) +X-DFE-Client-Id: am-android-oneplus +Authorization: GoogleLogin auth= +Accept-Language: en-US +Host: android.clients.google.com +Connection: Keep-Alive +Accept-Encoding: gzip +``` + +### Notes +Protobuf response is `download-delivery-byte` diff --git a/Documentation/download/download-delivery-byte b/Documentation/download/download-delivery-byte new file mode 100644 index 0000000000000000000000000000000000000000..0d26e67e24d6bd926ee67928e28924017488df17 GIT binary patch literal 1464 zcmeIv&5G+}00!XG8Np!&L`KeL4sKl>$xNDjNfYIuX_}^)v`O>ZB%6}o_RHUwCh0WE z73fA7!Od9+ZbU>x!L43~Teq&g0*ABk3fu_p-uH!f^;~{+_5JAa>iUbTi^s3ux_+T! zwF=s5$L&pd$}B2B#fMJ#@8*ed= z4{EGibB=9nZGF$WTA<7*-y-v(sDTKDxwkAqmDiOuD@qI^E$UQ4cCsWhRC5|J9fnzc zulR$^Kjqq(hR0ruyjpe9F`W;xJewd03GdWb95VzpU2dV<8f~hb4(vG8IW6=XY)6vy zeXqI!q8@B{E}C +User-Agent: Android-Finsky/8.1.72.S-all%20%5B6%5D%20%5BPR%5D%20165478484 (api=3,versionCode=80817206,sdk=25,device=A0001,hardware=bacon,product=bacon,platformVersionRelease=7.1.2,model=A0001,buildId=NJH47F,isWideScreen=0,supportedAbis=armeabi-v7a;armeabi) +X-DFE-Client-Id: am-android-oneplus +X-Limit-Ad-Tracking-Enabled: false +X-DFE-MCCMNC: 22201 +X-DFE-Device-Id: +X-DFE-Request-Params: timeoutMs=4000 +Accept-Language: en-US +Authorization: GoogleLogin auth= +Host: android.clients.google.com +Connection: Keep-Alive +Accept-Encoding: gzip +``` + +### Notes +Need to investigate `X-DFE-Cookie`. +Protobuf response is `search-response-bytes` diff --git a/Documentation/search/search-response-bytes b/Documentation/search/search-response-bytes new file mode 100644 index 0000000000000000000000000000000000000000..6242d9ad74dfe64cd948bc6dce8c222f1113feca GIT binary patch literal 19299 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 968f539..14ca4ff 100644 --- a/README.md +++ b/README.md @@ -10,81 +10,5 @@ This project is released under the BSD license. # API reversing -Here are some example request reversed from LineageOS 14.1 (Android 7.1) with lastest play services (as of 06/09/2017): - -### Search - -**URL:** GET https://android.clients.google.com/fdfe/search?c=4&q=zodiac -``` -X-Ad-Id: -X-DFE-Device-Id: -X-DFE-Content-Filters: -X-DFE-Network-Type: 4 -X-DFE-Request-Params: timeoutMs=4000 -X-DFE-Cookie: -X-DFE-Encoded-Targets: CAESqQGzlYEGDsgF3gTRAkIC2AMCFJIHgAIWjgi1AVhAmQGOA4ICb+kKmAHgAQyGAS9o8gLzAe0BFvsLuAMBAsADjwLDFYUBNS2lCJYStgEBfgegAm2xAgEoAQYo4wvDAtAFqwIB+APWArYDwgHhBf0BjAICU+MGmgGRAZsC0AFM/gXlASshzgFSAuUBAq8BGAEGAaMBS2IBqQWIA4UBAWNKNkqhA4ICaWGIA7QDGv4EEwIOzgE7tQGgAQhaAgMEazeA088CgruxAwEBAwIECQgIAQECCAMBAQIBAQECAgIGAQYUCgEHAgMDBAIQAQEBygEBEwMEAg3nAX0KJQIWBQIBCht1DDMXASEKFA8GByI3hAEODBZNCVMFfxERGAEDDX4EXx4UECMLDnBkBA0PaqMBwAKEAQSEAQIBAXwOGRg2FQEYAQsBKGUCAiUocxQnoQUGERoONxgcaY0BtAFZ0AEeJws0Ji9b1AFldwkBCt4BdgN9LQwDLGSeAQSBAXRQH3KIAYoBzAIFBQnNAQVFoAE5OI0CGmA1Ls4BDXKqAQEgiwOSAagCJpcDYa0ChAZ24wX4AV2hAQEPBgEBAocEBHOWAQZVbQFFAdwFMg57swGSAQOGBisYoQEHMAEhAQcCIAgSHQemAzgBGkaEAQH7AUB1pwEZIgKjAiwWD7wLAwKAASKHATvJAcoBtgEBDQMniAMe2wFSqASDBKoBEykEiwGyAzoQJ3RXRDgVowEBjQH1ARoLmQFFDAsIL1sBaRq5AQ4RX3wLuAEhBgIUAb4DFG8TIa4BjgFFBgQCAQECWUKdAmIVBAEUxwESASQLWgoeJQICBf8EwgEGIxUyEscBaAUhRxABAVnLATFOSpIBFtMBngEHHgg7ZOgBBlOOAqQB0QGSAQvPAXoBIk1dB0oEAQQ6BQcEAgVnDSYIMB0VCwIBed8BLW4DARUFBgcGnwE9KDY+DAJfO2cRFFUNKgMKQz8jB8oCAgddDAI/VjZuBAz5AgIGBxQFEQRYJkwDDBQYJFUqU2McAwYYRP8BDAELBQcEkwECfxEHHx5PBSoCCwkLDwcUBgQKChYEWgrTAhY -User-Agent: Android-Finsky/8.1.72.S-all%20%5B6%5D%20%5BPR%5D%20165478484 (api=3,versionCode=80817206,sdk=25,device=A0001,hardware=bacon,product=bacon,platformVersionRelease=7.1.2,model=A0001,buildId=NJH47F,isWideScreen=0,supportedAbis=armeabi-v7a;armeabi) -X-DFE-Client-Id: am-android-oneplus -X-Limit-Ad-Tracking-Enabled: false -Authorization: GoogleLogin auth= -Accept-Language: en-US -If-None-Match: 1903308838 -Host: android.clients.google.com -Connection: Keep-Alive -Accept-Encoding: gzip -``` - -### Details (single) - -**URL:** GET https://android.clients.google.com/fdfe/details?doc=com.google.android.apps.photos - -``` -X-Ad-Id: -X-DFE-Device-Id: -X-DFE-Content-Filters: -X-DFE-Network-Type: 4 -X-DFE-Request-Params: timeoutMs=4000 -X-DFE-Cookie: -X-DFE-Encoded-Targets: CAESqQGzlYEGDsgF3gTRAkIC2AMCFJIHgAIWjgi1AVhAmQGOA4ICb+kKmAHgAQyGAS9o8gLzAe0BFvsLuAMBAsADjwLDFYUBNS2lCJYStgEBfgegAm2xAgEoAQYo4wvDAtAFqwIB+APWArYDwgHhBf0BjAICU+MGmgGRAZsC0AFM/gXlASshzgFSAuUBAq8BGAEGAaMBS2IBqQWIA4UBAWNKNkqhA4ICaWGIA7QDGv4EEwIOzgE7tQGgAQhaAgMEazeA088CgruxAwEBAwIECQgIAQECCAMBAQIBAQECAgIGAQYUCgEHAgMDBAIQAQEBygEBEwMEAg3nAX0KJQIWBQIBCht1DDMXASEKFA8GByI3hAEODBZNCVMFfxERGAEDDX4EXx4UECMLDnBkBA0PaqMBwAKEAQSEAQIBAXwOGRg2FQEYAQsBKGUCAiUocxQnoQUGERoONxgcaY0BtAFZ0AEeJws0Ji9b1AFldwkBCt4BdgN9LQwDLGSeAQSBAXRQH3KIAYoBzAIFBQnNAQVFoAE5OI0CGmA1Ls4BDXKqAQEgiwOSAagCJpcDYa0ChAZ24wX4AV2hAQEPBgEBAocEBHOWAQZVbQFFAdwFMg57swGSAQOGBisYoQEHMAEhAQcCIAgSHQemAzgBGkaEAQH7AUB1pwEZIgKjAiwWD7wLAwKAASKHATvJAcoBtgEBDQMniAMe2wFSqASDBKoBEykEiwGyAzoQJ3RXRDgVowEBjQH1ARoLmQFFDAsIL1sBaRq5AQ4RX3wLuAEhBgIUAb4DFG8TIa4BjgFFBgQCAQECWUKdAmIVBAEUxwESASQLWgoeJQICBf8EwgEGIxUyEscBaAUhRxABAVnLATFOSpIBFtMBngEHHgg7ZOgBBlOOAqQB0QGSAQvPAXoBIk1dB0oEAQQ6BQcEAgVnDSYIMB0VCwIBed8BLW4DARUFBgcGnwE9KDY+DAJfO2cRFFUNKgMKQz8jB8oCAgddDAI/VjZuBAz5AgIGBxQFEQRYJkwDDBQYJFUqU2McAwYYRP8BDAELBQcEkwECfxEHHx5PBSoCCwkLDwcUBgQKChYEWgrTAhY -User-Agent: Android-Finsky/8.1.72.S-all%20%5B6%5D%20%5BPR%5D%20165478484 (api=3,versionCode=80817206,sdk=25,device=A0001,hardware=bacon,product=bacon,platformVersionRelease=7.1.2,model=A0001,buildId=NJH47F,isWideScreen=0,supportedAbis=armeabi-v7a;armeabi) -X-DFE-Client-Id: am-android-oneplus -X-Limit-Ad-Tracking-Enabled: false -Authorization: GoogleLogin auth= -Accept-Language: en-US -Host: android.clients.google.com -Connection: Keep-Alive -Accept-Encoding: gzip -``` - -### BulkDetails - -**URL:** POST https://android.clients.google.com/fdfe/bulkDetails?au=1 - -``` -X-DFE-Device-Id: -X-DFE-Content-Filters: -X-DFE-Network-Type: 4 -X-DFE-Request-Params: timeoutMs=30000 -X-DFE-Cookie: -X-DFE-Encoded-Targets: CAESqQGzlYEGDsgF3gTRAkIC2AMCFJIHgAIWjgi1AVhAmQGOA4ICb+kKmAHgAQyGAS9o8gLzAe0BFvsLuAMBAsADjwLDFYUBNS2lCJYStgEBfgegAm2xAgEoAQYo4wvDAtAFqwIB+APWArYDwgHhBf0BjAICU+MGmgGRAZsC0AFM/gXlASshzgFSAuUBAq8BGAEGAaMBS2IBqQWIA4UBAWNKNkqhA4ICaWGIA7QDGv4EEwIOzgE7tQGgAQhaAgMEazeA088CgruxAwEBAwIECQgIAQECCAMBAQIBAQECAgIGAQYUCgEHAgMDBAIQAQEBygEBEwMEAg3nAX0KJQIWBQIBCht1DDMXASEKFA8GByI3hAEODBZNCVMFfxERGAEDDX4EXx4UECMLDnBkBA0PaqMBwAKEAQSEAQIBAXwOGRg2FQEYAQsBKGUCAiUocxQnoQUGERoONxgcaY0BtAFZ0AEeJws0Ji9b1AFldwkBCt4BdgN9LQwDLGSeAQSBAXRQH3KIAYoBzAIFBQnNAQVFoAE5OI0CGmA1Ls4BDXKqAQEgiwOSAagCJpcDYa0ChAZ24wX4AV2hAQEPBgEBAocEBHOWAQZVbQFFAdwFMg57swGSAQOGBisYoQEHMAEhAQcCIAgSHQemAzgBGkaEAQH7AUB1pwEZIgKjAiwWD7wLAwKAASKHATvJAcoBtgEBDQMniAMe2wFSqASDBKoBEykEiwGyAzoQJ3RXRDgVowEBjQH1ARoLmQFFDAsIL1sBaRq5AQ4RX3wLuAEhBgIUAb4DFG8TIa4BjgFFBgQCAQECWUKdAmIVBAEUxwESASQLWgoeJQICBf8EwgEGIxUyEscBaAUhRxABAVnLATFOSpIBFtMBngEHHgg7ZOgBBlOOAqQB0QGSAQvPAXoBIk1dB0oEAQQ6BQcEAgVnDSYIMB0VCwIBed8BLW4DARUFBgcGnwE9KDY+DAJfO2cRFFUNKgMKQz8jB8oCAgddDAI/VjZuBAz5AgIGBxQFEQRYJkwDDBQYJFUqU2McAwYYRP8BDAELBQcEkwECfxEHHx5PBSoCCwkLDwcUBgQKChYEWgrTAhY -User-Agent: Android-Finsky/8.1.72.S-all%20%5B6%5D%20%5BPR%5D%20165478484 (api=3,versionCode=80817206,sdk=25,device=A0001,hardware=bacon,product=bacon,platformVersionRelease=7.1.2,model=A0001,buildId=NJH47F,isWideScreen=0,supportedAbis=armeabi-v7a;armeabi) -X-DFE-Client-Id: am-android-oneplus -Authorization: GoogleLogin auth= -Accept-Language: en-US -Content-Type: application/x-protobuf -Content-Length: 345 -Host: android.clients.google.com -Connection: Keep-Alive -Accept-Encoding: gzip -``` - -### Download (with DownloadManager) - -**URL:** GET https://android.clients.google.com/market/download/Download?packageName=com.blizzard.bma&versionCode=37&ssl=1&token=AOTCm0RaA2KnsS7TNkToZHQ-HFvfoFcKVl8cEtfceae9R_D1AM7NUnBmYUQ94qbR7KE_WzE-ujoJ7zjyBPjxFXTycEPO2D3PEcEeEKRnRkT-lQnWBX0zBTVyxl3cl_SHNrsD4mU89DOlhd7MxFyjHXYy8Z0sjCEKoEkxN_sEI1Yc76cRvpfhhsD6Hp41B9qizcCWpYF40XXRVbbO75zsAA7Bx4tdyR-7xG5Fu8tVcTU1m9Apj3QyFrQYDmVCz642avKBW2FaZGup8Eg4ixX3LPGnV2t7sL2-kjFrKsnSg8pZ9McN9bqAwNi2jzuotwsrGPsB_YHeiC-mad44p4h7HrDrDojnclKVAGzvt2dVSpV83w&cf=2&did=0&cpn=mizUmddBG6L0EGEh - -``` -User-Agent: AndroidDownloadManager/7.1.2 (Linux; U; Android 7.1.2; A0001 Build/NJH47F) -Accept-Encoding: identity -Connection: close -Host: android.clients.google.com -``` +Currently I'm trying to reverse a more recent version of the GooglePlay API on LineageOS 14.1 (Android 7.1) using [mitmproxy](https://mitmproxy.org/). +Checkout the Documentation folder for more details on single API endpoints.