]> glassweightruler.freedombox.rocks Git - waydroid.git/blob - tools/services/hardware_manager.py
tools: Upver to 1.3.2
[waydroid.git] / tools / services / hardware_manager.py
1 # Copyright 2021 Erfan Abdi
2 # SPDX-License-Identifier: GPL-3.0-or-later
3 import logging
4 import threading
5 import tools.actions.container_manager
6 from tools import helpers
7 from tools.interfaces import IHardware
8
9 stopping = False
10
11 def start(args):
12 def enableNFC(enable):
13 logging.debug("Function enableNFC not implemented")
14
15 def enableBluetooth(enable):
16 logging.debug("Function enableBluetooth not implemented")
17
18 def suspend():
19 tools.actions.container_manager.freeze(args)
20
21 def reboot():
22 helpers.lxc.stop(args)
23 helpers.lxc.start(args)
24
25 def upgrade(system_zip, system_time, vendor_zip, vendor_time):
26 helpers.lxc.stop(args)
27 helpers.images.umount_rootfs(args)
28 helpers.images.replace(args, system_zip, system_time,
29 vendor_zip, vendor_time)
30 helpers.images.mount_rootfs(args, args.images_path)
31 helpers.protocol.set_aidl_version(args)
32 helpers.lxc.start(args)
33
34 def service_thread():
35 while not stopping:
36 IHardware.add_service(
37 args, enableNFC, enableBluetooth, suspend, reboot, upgrade)
38
39 global stopping
40 stopping = False
41 args.hardware_manager = threading.Thread(target=service_thread)
42 args.hardware_manager.start()
43
44 def stop(args):
45 global stopping
46 stopping = True
47 try:
48 if args.hardwareLoop:
49 args.hardwareLoop.quit()
50 except AttributeError:
51 logging.debug("Hardware service is not even started")