Denegación de AppArmor al intentar abrir un archivo usando el centro de contenido

Denegación de AppArmor al intentar abrir un archivo usando el centro de contenido

Al intentar abrir un archivo usando el centro de contenido usando C++, aparece estos errores:

Opening with peer com.ubuntu.music_music_2.1.857
Sdk-Launcher> Application was resumed
Sdk-Launcher> There has been a AppArmor denial for your application.
Sdk-Launcher> Most likely it is missing a policy in the AppArmor file.
Syslog> Jun 20 19:15:23 ubuntu-phablet kernel: [ 3561.148570] type=1400 audit(1434827723.595:155): apparmor="DENIED" operation="open" profile="com.nogzatalz.downow_downow_0.8.81" name="/home/phablet/.local/share/applications/com.ubuntu.music_music_2.1.857.desktop" pid=9282 comm="downow" requested_mask="r" denied_mask="r" fsuid=32011 ouid=32011
transfer state changed to 5
Sdk-Launcher> Application was focused
transfer state changed to 5
transfer state changed to 5

Revisé la enumeración Transfer::State y descubrí que el estado 5 significa abortado.
Este es mi archivo apparmor.json:

{
    "policy_groups": [
        "networking",
        "content_exchange",
        "content_exchange_source",
        "audio"
    ],
    "policy_version": 1.3
}

Estoy usando el marco ubuntu-sdk-15.04-qml.
Mi aplicación funcionó bien hasta la última actualización OTA. En mi Nexus 5 este es r20.
¡Cualquier ayuda es apreciada!

EDITAR: Después de intentar resolver este problema por un tiempo, noté que puedo importar contenido de otras aplicaciones, pero la exportación todavía no parece funcionar.
Aquí está mi código simplificado para importar (que funciona):

QPointer<cuc::Hub> hub = cuc::Hub::Client::instance();
cuc::Peer peer = hub->default_source_for_type(cuc::Type::Known::pictures());
cuc::Transfer * t = hub->create_import_from_peer(peers);
t->start();

Aquí está mi código simplificado para exportar (que no funciona):

 QPointer<cuc::Hub> hub = cuc::Hub::Client::instance();
 QVector<cuc::Peer> peers = hub->known_destinations_for_type(cuc::Type::Known::pictures());
 cuc::Transfer * t = hub->create_export_to_peer(peers[0]);
 QVector<cuc::Item> items;
 items.append(cuc::Item(QUrl::fromLocalFile("/home/phablet/.local/share/com.nogzatalz.downow/download/Ed Sheeran – 5 (2015) (ALBUM) 320 KBPS/Cover.jpg")));
 t->setSelectionType(cuc::Transfer::single);
 t->charge(items);

Respuesta1

En mi manifest.json, tuve que agregar una propiedad llamada content-huba los ganchos:

"content-hub": "hub.json"

Y luego crea un hub.jsonarchivo:

{
    "source": [ "pictures" ]
}

información relacionada