]>
glassweightruler.freedombox.rocks Git - waydroid.git/blob - tools/actions/upgrader.py
1 # Copyright 2021 Erfan Abdi
2 # SPDX-License-Identifier: GPL-3.0-or-later
5 from tools
import helpers
6 from tools
.helpers
.version
import versiontuple
11 cfg
= tools
.config
.load(args
)
12 args
.arch
= cfg
["waydroid"]["arch"]
13 args
.images_path
= cfg
["waydroid"]["images_path"]
14 args
.vendor_type
= cfg
["waydroid"]["vendor_type"]
15 args
.system_ota
= cfg
["waydroid"]["system_ota"]
16 args
.vendor_ota
= cfg
["waydroid"]["vendor_ota"]
21 old_ver
= tools
.helpers
.props
.file_get(args
, args
.work
+ "/waydroid_base.prop", "waydroid.tools_version")
22 if versiontuple(old_ver
) <= versiontuple("1.3.4"):
23 chmod_paths
= ["cache_http", "host-permissions", "lxc", "images", "waydroid_base.prop", "waydroid.prop", "waydroid.cfg"]
24 tools
.helpers
.run
.user(args
, ["chmod", "-R", "g-w,o-w"] + [os
.path
.join(args
.work
, f
) for f
in chmod_paths
], check
=False)
25 tools
.helpers
.run
.user(args
, ["chmod", "g-w,o-w", args
.work
], check
=False)
33 if os
.path
.exists(tools
.config
.defaults
["lxc"] + "/waydroid"):
34 status
= helpers
.lxc
.status(args
)
35 if status
!= "STOPPED":
36 logging
.info("Stopping container")
37 helpers
.lxc
.stop(args
)
39 args
.session
= tools
.helpers
.ipc
.DBusContainerService().GetSession()
40 except dbus
.DBusException
:
42 helpers
.images
.umount_rootfs(args
)
43 helpers
.drivers
.loadBinderNodes(args
)
45 if args
.images_path
not in tools
.config
.defaults
["preinstalled_images_paths"]:
46 helpers
.images
.get(args
)
48 logging
.info("Upgrade refused because a pre-installed image is detected at {}.".format(args
.images_path
))
49 helpers
.drivers
.probeAshmemDriver(args
)
50 helpers
.lxc
.setup_host_perms(args
)
51 helpers
.lxc
.set_lxc_config(args
)
52 helpers
.lxc
.make_base_props(args
)
53 if status
!= "STOPPED" and args
.session
:
54 logging
.info("Starting container")
55 helpers
.images
.mount_rootfs(args
, args
.images_path
, args
.session
)
56 helpers
.protocol
.set_aidl_version(args
)
57 helpers
.lxc
.start(args
)