mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-21 18:53:57 +08:00
* agnos updater
* add manifest
* fix path
* get manifest from overlay
* update manifest
* remove merge markers
* add streaming decompressor
* dont need read all
* Unsparsify
* Fix output filename
* Optimization
* cleanup
* Small cleanup
* Read manifest from merged overlay
* Write hash at end of partition
* Sync before writing hash
* Write bytes in file
* add manifest with image sizes
* Fix manifest path
* File was closed already
* Format string
* Put raw hash
* Read hashes in launch script
* update launch script
* should be agnos version
* fix slot
* Make sure we clear the hash
* Verify partition size
* move updated
* Standalone flasher
* Don't rely on ordering
* Get path
* Debug log
* Download agnos
* Info is enough
* update manifest
* Remove f
* Check downloader return code
* Exit on wrong manifest
* Fix typos
* Set pythonpath before hardware init
* move agnos into hardware folder
* remove comments
* Fix abstractmethod
Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: b276881fcd
90 lines
1.5 KiB
Python
90 lines
1.5 KiB
Python
from abc import abstractmethod
|
|
|
|
|
|
class HardwareBase:
|
|
@staticmethod
|
|
def get_cmdline():
|
|
with open('/proc/cmdline') as f:
|
|
cmdline = f.read()
|
|
return {kv[0]: kv[1] for kv in [s.split('=') for s in cmdline.split(' ')] if len(kv) == 2}
|
|
|
|
@staticmethod
|
|
def read_param_file(path, parser, default=0):
|
|
try:
|
|
with open(path) as f:
|
|
return parser(f.read())
|
|
except Exception:
|
|
return default
|
|
|
|
@abstractmethod
|
|
def reboot(self, reason=None):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def uninstall(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_os_version(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_sound_card_online(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_imei(self, slot):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_serial(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_subscriber_info(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_network_type(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_sim_info(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_network_strength(self, network_type):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_battery_capacity(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_battery_status(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_battery_current(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_battery_voltage(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_battery_charging(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def set_battery_charging(self, on):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_usb_present(self):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def get_current_power_draw(self):
|
|
pass
|