diff --git a/common/apk.py b/common/apk.py index e9ef98268..b01f5f48d 100644 --- a/common/apk.py +++ b/common/apk.py @@ -32,6 +32,7 @@ def start_frame(): def set_package_permissions(): pm_grant("ai.comma.plus.offroad", "android.permission.ACCESS_FINE_LOCATION") + pm_grant("ai.comma.plus.offroad", "android.permission.READ_PHONE_STATE") appops_set("ai.comma.plus.offroad", "SU", "allow") appops_set("ai.comma.plus.offroad", "WIFI_SCAN", "allow") appops_set("ai.comma.plus.offroad", "READ_EXTERNAL_STORAGE", "allow") diff --git a/selfdrive/loggerd/uploader.py b/selfdrive/loggerd/uploader.py index 8f7e0a67a..6067f01ed 100644 --- a/selfdrive/loggerd/uploader.py +++ b/selfdrive/loggerd/uploader.py @@ -67,11 +67,13 @@ def clear_locks(root): def is_on_wifi(): # ConnectivityManager.getActiveNetworkInfo() try: - result = android.parse_service_call_string(["connectivity", "2"]) + # TODO: figure out why the android service call sometimes dies with SIGUSR2 (signal from MSGQ) + result = android.parse_service_call_string(android.service_call(["connectivity", "2"])) if result is None: return True return 'WIFI' in result - except AttributeError: + except (AttributeError, subprocess.CalledProcessError): + cloudlog.exception("is_on_wifi failed") return False def is_on_hotspot(): diff --git a/selfdrive/pandad.py b/selfdrive/pandad.py index e64b99049..2c21bdf72 100755 --- a/selfdrive/pandad.py +++ b/selfdrive/pandad.py @@ -58,7 +58,7 @@ def update_panda(): serial = None panda_version = "bootstub" if panda.bootstub else panda.get_version() - panda_signature = "bootstub" if panda.bootstub else panda.get_signature() + panda_signature = b"" if panda.bootstub else panda.get_signature() cloudlog.warning("Panda %s connected, version: %s, signature %s, expected %s" % ( serial, panda_version,