xref: /aosp_15_r20/external/selinux/python/sepolicy/sepolicy/sedbus.py (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1import sys
2import dbus
3import dbus.service
4import dbus.mainloop.glib
5
6
7class SELinuxDBus (object):
8
9    def __init__(self):
10        self.bus = dbus.SystemBus()
11        self.dbus_object = self.bus.get_object("org.selinux", "/org/selinux/object")
12
13    def semanage(self, buf):
14        ret = self.dbus_object.semanage(buf, dbus_interface="org.selinux")
15        return ret
16
17    def restorecon(self, path):
18        ret = self.dbus_object.restorecon(path, dbus_interface="org.selinux")
19        return ret
20
21    def setenforce(self, value):
22        ret = self.dbus_object.setenforce(value, dbus_interface="org.selinux")
23        return ret
24
25    def customized(self):
26        ret = self.dbus_object.customized(dbus_interface="org.selinux")
27        return ret
28
29    def semodule_list(self):
30        ret = self.dbus_object.semodule_list(dbus_interface="org.selinux")
31        return ret
32
33    def relabel_on_boot(self, value):
34        ret = self.dbus_object.relabel_on_boot(value, dbus_interface="org.selinux")
35        return ret
36
37    def change_default_mode(self, value):
38        ret = self.dbus_object.change_default_mode(value, dbus_interface="org.selinux")
39        return ret
40
41    def change_default_policy(self, value):
42        ret = self.dbus_object.change_default_policy(value, dbus_interface="org.selinux")
43        return ret
44
45if __name__ == "__main__":
46    try:
47        dbus_proxy = SELinuxDBus()
48        resp = dbus_proxy.setenforce(int(sys.argv[1]))
49        print(resp)
50    except dbus.DBusException as e:
51        print(e)
52