Я пытаюсь отправить сообщения DBus с помощью Сенсорного приложения C++ Ubuntu. С конфигурированием шаблона по умолчанию (никакая ошибка с unconfined
) поскольку Apparmor подают мою заявку, получает следующую ошибку как ответ:
QDBusMessage(type=Error, service="", error name="org.freedesktop.DBus.Error.AccessDenied", error message="An AppArmor policy prevents this sender from sending this message to this recipient, 0 matched rules; type="method_call", sender=":1.278" (uid=32011 pid=28575 comm="/usr/lib/arm-linux-gnueabihf/qt5/bin/qmlscene $@ s") interface="org.bluez.Manager" member="DefaultAdapter" error name="(unset)" requested_reply="0" destination="org.bluez" (uid=0 pid=824 comm="/usr/sbin/bluetoothd ")", signature="", contents=([]) )
phablet@ubuntu-phablet:/etc/apparmor.d$ aa-easyprof --policy-vendor=ubuntu --policy-version=1.2 --list-templates
default
ubuntu-push-helper
ubuntu-scope-network
ubuntu-sdk
ubuntu-webapp
unconfined
Мой вопрос: Сделайте я должен настроить шаблон Apparmor со значением unconfined
даже при том, что обзор Ubuntu отклонит пакет загрузки (и сделает ручной обзор, вероятно)? Или есть ли какой-либо способ создать собственный шаблон для Сенсорных пакетов щелчка Ubuntu?
Спасибо за Ваш ответ. Это - то, что я сделал. См. manifest.json.in
:
{
"policy_groups": [
"networking"
],
"policy_version": 1.2,
"template": "unconfined"
}
Таким образом после путей работал на меня для отключения звука телефона BQ любым Сенсорным приложением Ubuntu, но только путем определения шаблона безопасности как неограниченный.
команда аудио импульса Запуска:
[...]
myProcess = new QProcess(this);
connect (myProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(printOutput()));
connect (myProcess, SIGNAL(readyReadStandardError()), this, SLOT(printError()));
QString cmd("/usr/bin/pactl");
QStringList arguments;
arguments.append(QString("set-sink-mute"));
arguments.append(QString("0"));
arguments.append(QString(muted?"1":"0"));
myProcess->start(QString(cmd), arguments);
Отправляют сообщение DBus:
QDBusInterface handlerPropertiesInterface("org.freedesktop.Accounts", "/org/freedesktop/Accounts/User32011", "org.freedesktop.DBus.Properties", QDBusConnection::systemBus());
handlerPropertiesInterface.call("Set", "com.ubuntu.touch.AccountsService.Sound", "SilentMode", QVariant::fromValue(QDBusVariant(muted)));
По моему мнению было бы лучше иметь определенный шаблон для отправки сообщений DBus (кроме "широкого" неограниченного шаблона), правильно? Или действительно ли возможно определить собственные шаблоны безопасности?