Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. import requests
  4. from uuid import uuid4
  5. from os import urandom
  6. from random import randint
  7. from time import sleep
  8.  
  9. APP_ID = str(uuid4())
  10. BOOT_ID = str(uuid4())
  11. SERIAL_ID = 'RM100-123-12345'
  12. URL = 'https://get-updates.cloud.remarkable.engineering/service/update2'
  13.  
  14. def probe() -> bool:
  15.     uuid1, uuid2 = str(uuid4()), str(uuid4())
  16.     machineid = urandom(16).hex()
  17.     data = '<?xml version="1.0" encoding="UTF-8"?>\n<request protocol="3.0" version="1.8.1.1" requestid="{%s}" sessionid="{%s}" updaterversion="0.4.2" installsource="ondemandupdate" ismachine="1">\n    <os version="zg" platform="reMarkable" sp="1.8.1.1_armv7l" arch="armv7l"></os>\n    <app appid="{%s}" version="1.8.1.1" track="Prod" ap="Prod" bootid="{%s}" oem="%s" oemversion="1.1" alephversion="1.8.1.1" machineid="%s" lang="en-US" board="" hardware_class="" delta_okay="false" nextversion="0.0.0" brand="" client="" >\n        <ping active="1"></ping>\n        <updatecheck></updatecheck>\n        <event eventtype="3" eventresult="2" previousversion=""></event>\n    </app>\n</request>\n' % (uuid1, uuid2, APP_ID, BOOT_ID, SERIAL_ID, machineid)
  18.     response = requests.post(URL, data=data)
  19.     assert(response.ok)
  20.     #print(response.content)
  21.     return machineid, b'<updatecheck status="noupdate"/>' not in response.content, response.content
  22.  
  23. def autoprobe(delay=0.5, maxExtra=0.3):
  24.     while 1:
  25.         sleep(delay + (randint(1, int(maxExtra*1000)) / 1000))
  26.  
  27.         mid, success, content = probe()
  28.         if not success:
  29.             print('Failed: %s' % mid)
  30.         else:
  31.             print('SUCCESS!!!')
  32.             print('MACHINE ID: %s' % mid)
  33.             print('RESPONSE: ')
  34.             print('%s' % content)
  35.             exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement