diff --git a/common/android.py b/common/android.py index e58b0e56e5..e88080884c 100644 --- a/common/android.py +++ b/common/android.py @@ -12,9 +12,13 @@ def getprop(key): return "" return subprocess.check_output(["getprop", key], encoding='utf8').strip() -def get_imei(): - ret = getprop("oem.device.imeicache") - if ret == "": +def get_imei(slot): + slot = str(slot) + if slot not in ("0", "1"): + raise ValueError("SIM slot must be 0 or 1") + + ret = parse_service_call_string(["iphonesubinfo", "3" ,"i32", str(slot)]) + if not ret: ret = "000000000000000" return ret diff --git a/selfdrive/registration.py b/selfdrive/registration.py index 5de1ec99bd..afa2771bc1 100644 --- a/selfdrive/registration.py +++ b/selfdrive/registration.py @@ -48,7 +48,7 @@ def register(): try: cloudlog.info("getting pilotauth") resp = api_get("v2/pilotauth/", method='POST', timeout=15, - imei=get_imei(), serial=get_serial(), public_key=public_key, register_token=register_token) + imei=get_imei(0), imei2=get_imei(1), serial=get_serial(), public_key=public_key, register_token=register_token) dongleauth = json.loads(resp.text) dongle_id, access_token = dongleauth["dongle_id"], dongleauth["access_token"]