]> glassweightruler.freedombox.rocks Git - waydroid.git/blob - tools/services/hardware_manager.py
Add -w flag for waiting for init
[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
10 def start(args):
11 def enableNFC(enable):
12 logging.debug("Function enableNFC not implemented")
13
14 def enableBluetooth(enable):
15 logging.debug("Function enableBluetooth not implemented")
16
17 def suspend():
18 tools.actions.container_manager.freeze(args)
19
20 def reboot():
21 helpers.lxc.stop(args)
22 helpers.lxc.start(args)
23
24 def upgrade(system_zip, system_time, vendor_zip, vendor_time):
25 helpers.lxc.stop(args)
26 helpers.images.umount_rootfs(args)
27 helpers.images.replace(args, system_zip, system_time,
28 vendor_zip, vendor_time)
29 helpers.images.mount_rootfs(args, args.images_path)
30 helpers.lxc.start(args)
31
32 def service_thread():
33 IHardware.add_service(
34 args, enableNFC, enableBluetooth, suspend, reboot, upgrade)
35
36 args.hardware_manager = threading.Thread(target=service_thread)
37 args.hardware_manager.start()
38
39 def stop(args):
40 try:
41 if args.hardwareLoop:
42 args.hardwareLoop.quit()
43 except AttributeError:
44 logging.debug("Hardware service is not even started")