Commit Graph

51 Commits

Author SHA1 Message Date
Mohammed Sadiq
e21e7ddfae policy: Use SetCurrentModes instead of SetAllowedModes
There is no DBus API for SetAllowedModes, but only for SetCurrentModes.
2019-09-24 19:10:31 +05:30
Bob Ham
e34699cc9e policy: Call method name should be SendDtmf rather than SendTone
The method on MMBaseCall is send_tone but the D-Bus method call is
SendDtmf.  Without this patch, calls return
org.freedesktop.DBus.Error.AccessDenied.
2018-12-07 16:47:43 +00:00
Lubomir Rintel
cf3f3ffcd0 service: set User=root so that gio doesn't have to look into /etc/passwd
GVfs' libgvfsdbus.so GIo module, when automatically loaded, attempts to
discover if there's a session D-Bus instance to use. It tries real hard
to get the socket name it would use -- in absence of XDG_RUNTIME_DIR it
decides to make it up with user's home directory. When HOME is unset
too, it just tries to figure it out by looking into /etc/passwd. Which
upsets SELinux that would better not see us looking into it.

We trigger the load of the GIo modules, by using the GFile API to access
the the ports in /dev. They're utterly uesless to us, but there doesn't
seem to be a way to disable their load. Oh well.

For now, let's just ensure HOME is set and the problematic path in glib
is not taken.
2018-06-13 10:32:51 +00:00
Aleksander Morgado
984625165e i18n: deprecate intltool and use only gettext 0.19.8
Instead of mixing both intltool and gettext, which not always work
correctly together, this patch obsoletes intltool and uses only
gettext, which includes support for translating XML files with ITS
rules.

See migration steps for GNOME projects here:
  https://wiki.gnome.org/MigratingFromIntltoolToGettext

The gettext ITS rules for polkit policy files are imported from the
upstream polkit repository. We don't use the polkit-installed rule
files yet because there is no tagged release that contains those files
yet, so we cannot build-depend on any specific polkit version.
  https://bugs.freedesktop.org/show_bug.cgi?id=96940
2017-09-07 13:04:34 +02:00
Aleksander Morgado
d639359320 polkit: add missing Location interface method rules
https://bugs.freedesktop.org/show_bug.cgi?id=102182
2017-08-12 19:39:10 +02:00
Aleksander Morgado
0e854644db systemd: drop After=syslog.target rule
syslog implementations are using socket activation nowadays, so an
explicit ordering is not necessary anymore. Plus, syslog.target was
already dropped from systemd in v198.

Reported-by: Michael Biebl <biebl@debian.org>
2017-06-18 10:01:11 +02:00
Lubomir Rintel
ccea14ac47 systemd: tighten the service security a bit
What's left enabled:

* Access to /dev -- obviously
* CAP_SYS_ADMIN -- this is needed by TIOCSSERIAL only. Too bad this also
  allows TIOCSTI, which allows for code injection unless something else
  (SELinux) disallows access to ttys with shells.
  Maybe kernel should use CAP_SYS_TTY_CONFIG for this.
* socket(AF_NETLINK) -- udev & kernel device changes
* socket(AF_UNIX) -- D-Bus
2016-10-24 13:15:15 +02:00
Aleksander Morgado
c4a584416a core: allow disabling auto-scan and notifying ports one by one via API
This commit enables a new core ModemManager daemon option, so that automatic
detection of available modems is totally disabled: '--no-auto-scan'. Note that
this option also replaces the previously used '--test-no-auto-scan' option,
which was only used during tests.

Along with the new ModemManager option, a new ReportKernelEvent() method in
the API is defined, which allows notifying the daemon of which interfaces it
should be accessing, as well as the main details of each interface. The only
mandatory parameters in the new method are 'action' (add/remove), 'name' (the
name of the interface) and 'subsystem' (the subsystem of the interface).

The mmcli tool has support for using the new api method via several new options:

 * The '--report-kernel-event' option allows specifying device ports one by
   one, and is a direct mapping of the ReportKernelEvent() method:
     $ sudo mmcli --report-kernel-event="action=add,name=wwan0,subsystem=net"
     $ sudo mmcli --report-kernel-event="action=add,name=cdc-wdm0,subsystem=usbmisc"

 * The '--report-kernel-event-auto-scan' option uses udev monitoring to notify
   events automatically to the daemon. This allows to operate in a way
   equivalent to the default daemon operation (with implicit auto-scan).

Worth noting that the ReportKernelEvent() method is only usable when
'--no-auto-scan' is explicitly used in the daemon. An error will be reported if
the method is tried while standard udev monitoring is enabled (implicit if
auto scan isn't explicitly disabled in the daemon).

If mmcli is going to be used only to report 'real time' events, an optional
'--initial-kernel-events=[PATH]' may be given in the ModemManager call to
automatically process a set of port kernel events one by one on boot. The file
may e.g. contain:
  action=add,name=wwan0,subsystem=net
  action=add,name=cdc-wdm0,subsystem=usbmisc
2016-09-29 15:43:05 +02:00
Aleksander Morgado
d5bc19f7db policy: fix minor typo 2015-08-02 10:39:48 +02:00
Aleksander Morgado
69585b1374 polkit: added Voice policy rule 2015-08-02 10:39:48 +02:00
David Herrmann
99da30059f policy: don't prevent us from receiving signals
By using:
    <deny send_destination="org.freedesktop.ModemManager1"/>

..we prevent anyone on the system from sending us signals, even if we
subscribed to them. This is clearly not what this line intended. More
importantly, we silently break mm-auth-provider-polkit, as we never
receiver 'changed' signals via PolkitAuthority. Right now, this is not
required by the implementation of PolkitAuthority, but ModemManager
should not place restrictions on the implementation of external
libraries.

So make sure we only prevent Method-Calls to be sent to us. Any other
message that we didn't expect is automatically discarded by gdbus,
anyway.

Without this change, debugging dbus policies constantly shows messages
that Polkit couldn't send the 'changed' signal to ModemManager. This is
suppressed in non-debugging mode. But it would make debugging a lot
easier, if we'd avoid force-dropping those events and not clutter the
debug-log.
2015-07-15 15:04:43 +02:00
Aleksander Morgado
c8572c8098 polkit: fix Location.Setup() authorization rules 2014-07-11 18:56:37 +02:00
Aleksander Morgado
6bdcd7cb22 data: add icon 2014-03-09 22:15:16 +01:00
Aleksander Morgado
247a945950 context: new '--test-plugin-dir' to allow specifying where the plugins are 2014-02-13 13:41:50 +01:00
Aleksander Morgado
ea362ce18e service,tests: run in MM in debug mode in service tests 2014-02-13 13:41:47 +01:00
Aleksander Morgado
65f87561c5 context: new '--test-enable' to enable the Test interface 2014-02-13 13:41:25 +01:00
Aleksander Morgado
243720414e context: new '--test-no-auto-scan' to avoid automatic scanning for devices 2014-02-13 13:41:23 +01:00
Aleksander Morgado
bf57da537d context: new '--test-session' allows launching the MM daemon in the session bus 2014-02-13 13:41:20 +01:00
Aleksander Morgado
46ff06ff80 service,tests: new DBus service file for tests 2014-02-13 13:41:17 +01:00
Aleksander Morgado
37115dee93 api,introspection: new 'Signal' interface for extended signal quality 2013-08-21 12:33:09 +02:00
Aleksander Morgado
74056e02ce build: fix dbus activation file generation
https://bugzilla.gnome.org/show_bug.cgi?id=704711
2013-07-23 11:04:29 +02:00
Aleksander Morgado
a05bd76564 systemd: schedule to restart the service on-abort
See https://bugzilla.gnome.org/show_bug.cgi?id=701229.
2013-06-25 12:02:42 +02:00
Aleksander Morgado
223db868a8 dbus: no need for systemd and nosystemd setups of the service file
We can just merge them.
2013-06-23 12:08:03 +02:00
Aleksander Morgado
ce6777c53b Revert "systemd: simplify unit file"
This reverts commit 91898aa8b0.

See additional comments in the following bug:

  https://bugzilla.gnome.org/show_bug.cgi?id=701229

Basically, 'mask' and 'unmask' operations are not the ones we should be using
or suggesting; and the Alias= for the DBus file is the correct way to go.
2013-06-23 11:47:41 +02:00
Aleksander Morgado
0c7265de29 build: new strict & permissive polkit policies in '--with-polkit'
The '--with-polkit' configure switch now supports more options than just yes
or no:

 * strict: Active user needs to explicitly authenticate when peforming an
   operation defined in the Device.Control, Messaging, Location or Contacts
   interfaces. Polkit policy is set to 'auth_self_keep'.

 * permissive: Active user doesn't need to explicitly authenticate when
   peforming an operation defined in the Device.Control, Messaging, Location or
   Contacts interfaces. Polkit policy is set to 'yes'.

 * none: don't use polkit.

If '--with-polkit' is not given, usage will be automatically decided based on
the presence of the Polkit headers in the system (if headers found, strict
policy will be applied, otherwise none).

Also:
 * '--with-polkit' is equivalent to '--with-polkit=strict'
 * '--with-polkit=yes' is equivalent to '--with-polkit=strict'
 * '--with-polkit=no' is equivalent to '--with-polkit=none'
 * '--without-polkit' is equivalent to '--with-polkit=none'

By default, ModemManager will always apply the strict policy, in order to
protect the user from unwanted operations in the modem (e.g. getting the PIN
locked forever after wrong PIN/PUK unlock attempts).

https://bugzilla.gnome.org/show_bug.cgi?id=701740
2013-06-13 09:21:52 +02:00
Aleksander Morgado
a00f1d7428 build: fix distcheck 2013-06-06 10:16:22 +02:00
Aleksander Morgado
91898aa8b0 systemd: simplify unit file
Avoid setting up the Alias rule, which was a helper to let us 'disable' the
systemd service including dbus-activations. Without the Alias, 'disable' will
still let starting ModemManager through dbus-activation. If you really want to
fully disallow starting MM also through dbus-activation, you should 'mask' and
'unmask' the service.

E.g.:
 $ sudo systemctl mask ModemManager
ln -s '/dev/null' '/etc/systemd/system/ModemManager.service'

 $ sudo mmcli -L
error: couldn't find the ModemManager process in the bus

 $ sudo systemctl unmask ModemManager
rm '/etc/systemd/system/ModemManager.service'

 $ sudo mmcli -L
No modems were found

https://bugzilla.gnome.org/show_bug.cgi?id=701229
2013-06-06 10:07:17 +02:00
Aleksander Morgado
3ed1cb2e1d docs: don't require 'dia' to build the docs
These diagrams are not expected to change much, so just include the generated
PNGs in the repository, and remove 'dia' from the prerequisites to build the
documentation.
2013-05-26 19:16:39 +02:00
Dan Williams
f3ad2e5bb5 trivial: fix typo 2013-02-06 11:59:16 -06:00
Aleksander Morgado
222825d642 systemd: include systemd unit file support
Allow having systemd handling the life cycle of the ModemManager process.
2013-02-06 17:32:59 +01:00
Aleksander Morgado
86ff6b35c3 data: include ModemManager logo images 2012-10-04 11:13:49 +02:00
Aleksander Morgado
b6d628b3a1 build: merge libmm-common into libmm-glib
It's pointless to have libmm-common around, just merge it into libmm-glib and
make ModemManager depend on libmm-glib directly. At the end, the non-common
stuff in libmm-glib is really minimal.
2012-10-04 10:17:05 +02:00
Aleksander Morgado
6fa3f0b0d7 build: provide pkg-config files for ModemManager, libmm-common and libmm-glib 2012-05-24 09:59:53 +02:00
Jiří Klimeš
6d888e2e90 dbus: remove 'max_replies_per_connection' limit from D-Bus configuration
It is leftover from times when D-Bus default limit was 32. Now, it is 8192, see
http://cgit.freedesktop.org/dbus/dbus/commit/?id=8d3d8ff55739eebd84d0d53a20a025329feafc3b
2012-05-23 10:41:45 +02:00
Aleksander Morgado
7d9d003324 build: rename the binary from modem-manager' to ModemManager' 2012-03-16 14:53:17 +01:00
Aleksander Morgado
e68db23a97 introspection: setup all new files and remove old ones 2012-03-16 14:53:17 +01:00
Aleksander Morgado
d6edfbd9d5 policy: implement Sms interface rules 2012-03-16 14:53:16 +01:00
Aleksander Morgado
4bdeea41ae policy: implement Messaging interface rules 2012-03-16 14:53:16 +01:00
Aleksander Morgado
8e1955cb88 policy: implement Location interface rules 2012-03-16 14:53:16 +01:00
Aleksander Morgado
eaa47892b5 policy: implement USSD interface rules 2012-03-16 14:53:16 +01:00
Aleksander Morgado
cf0a4ae0ce policy: implement Bearer interface rules 2012-03-16 14:53:16 +01:00
Aleksander Morgado
986ab0cb23 policy: implement Sim interface rules 2012-03-16 14:53:16 +01:00
Aleksander Morgado
96fdb716e1 policy: implement CDMA interface rules 2012-03-16 14:53:15 +01:00
Aleksander Morgado
83586c9a62 policy: implement 3GPP interface rules 2012-03-16 14:53:15 +01:00
Aleksander Morgado
f2440e9ab2 policy: implement Simple interface rules 2012-03-16 14:53:15 +01:00
Aleksander Morgado
e176d56b32 policy: implement Modem interface rules 2012-03-16 14:53:15 +01:00
Aleksander Morgado
dad31604cb policy: implement Manager interface rules 2012-03-16 14:53:15 +01:00
Aleksander Morgado
d06d76e379 policy: no need for a rule to manage readable info 2012-03-16 14:53:15 +01:00
Aleksander Morgado
587bca48f0 policy: renamed Sms' action to Messaging' 2012-03-16 14:53:15 +01:00
Aleksander Morgado
1e79a2d292 build: install DBus service and data files for the new API 2012-03-15 14:14:19 +01:00