diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2016-11-17 17:36:51 +0100 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2016-11-29 18:11:40 +0100 |
commit | 047a822596f07a7d367db9fc2ab00e0198650ebf (patch) | |
tree | 3a21f5281a070444c8a6a80cbd87ba151a4d49e6 /docs/afm-system-daemon.md | |
parent | 6f4a7c7d3322eae5fa91acc06d2884cf0e579077 (diff) |
Doc reworked, relifted
Change-Id: If41313a44cb66c0aa0f315b264284d081ff87f8e
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'docs/afm-system-daemon.md')
-rw-r--r-- | docs/afm-system-daemon.md | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/docs/afm-system-daemon.md b/docs/afm-system-daemon.md deleted file mode 100644 index f7f9b3d..0000000 --- a/docs/afm-system-daemon.md +++ /dev/null @@ -1,220 +0,0 @@ - -The afm-system-daemon -===================== - -Foreword --------- - -This document describes application framework system daemon fundamentals. -FCF (Fully Conform to Specification) implementation is still under development. -It may happen that current implementation somehow diverges with specifications. - - -Introduction ------------- - -The daemon **afm-system-daemon** is in charge of installing -applications on AGL system. Its main tasks are: - - - installs applications and setup security framework - for newly installed application. - - - uninstall applications - -The **afm-system-daemon** takes its orders from system -instance of D-Bus. - -The figure below summarizes the situation of **afm-system-daemon** in the system. - - +------------------------------------------------------------+ - | User | - | | - | +-------------------------------------------------+ | - | | | | - | | afm-user-daemon | | - | | | | - | +----------+----------------------+----------+----+ | - | | | : | - | | | : | - :================|======================|==========:=========: - | | | : | - | +----------+----------+ +-----+-----+ : | - | | D-Bus system +-----+ CYNARA | : | - | +----------+----------+ +-----+-----+ : | - | | | : | - | +----------+---------+ +-------+----------+----+ | - | | afm-system-daemon +----+ SECURITY-MANAGER | | - | +--------------------+ +-----------------------+ | - | | - | System | - +------------------------------------------------------------+ - - -Starting **afm-system-daemon** ------------------------------- - -**afm-system-daemon** is launched as a **systemd** service -attached to system. Normally, the service file is -located at /lib/systemd/system/afm-system-daemon.service. - -The options for launching **afm-system-daemon** are: - - -r - --root directory - - Set the root application directory. - - Note that the default root directory is defined - to be /usr/share/afm/applications (may change). - - -d - --daemon - - Daemonizes the process. It is not needed by sytemd. - - -q - --quiet - - Reduces the verbosity (can be repeated). - - -v - --verbose - - Increases the verbosity (can be repeated). - - -h - --help - - Prints a short help. - -The D-Bus interface -------------------- - -### Overview of the dbus interface - -***afm-system-daemon*** takes its orders from the session instance -of D-Bus. The use of D-Bus is great because it allows to implement -discovery and signaling. - -The **afm-system-daemon** is listening with the destination name -***org.AGL.afm.system*** at the object of path ***/org/AGL/afm/system*** -on the interface ***org.AGL.afm.system*** for the below detailed -members ***install*** and ***uninstall***. - -D-Bus is mainly used for signaling and discovery. Its optimized -typed protocol is not used except for transmitting only one string -in both directions. - -The client and the service are using JSON serialization to -exchange data. - -The D-Bus interface is defined by: - - * DESTINATION: **org.AGL.afm.system** - - * PATH: **/org/AGL/afm/system** - - * INTERFACE: **org.AGL.afm.system** - -The signature of any member of the interface is ***string -> string*** -for ***JSON -> JSON***. - -This is the normal case. In case of error, the current implementation -returns a dbus error that is a string. - -Here is an example using *dbus-send* to query data on -installed applications. - - dbus-send --session --print-reply \ - --dest=org.AGL.afm.system \ - /org/AGL/afm/system \ - org.AGL.afm.system.install 'string:"/tmp/appli.wgt"' - -### The protocol over D-Bus - ---- - -#### Method org.AGL.afm.system.install - -**Description**: Install an application from a widget file. - -When an application with the same *id* and *version* already exists. Outside of -using *force=true* the application is not reinstalled. - -Applications are installed the subdirectories of applications common directory. -If *root* is specified, the application is installed under the -sub-directories of the *root* defined. - -Note that this methods is a simple accessor method of -***org.AGL.afm.system.install*** from ***afm-system-daemon***. - -After the installation and before returning to the sender, -***afm-system-daemon*** sends a signal ***org.AGL.afm.system.changed***. - -**Input**: The *path* of the widget file to install and, optionally, -a flag to *force* reinstallation, and, optionally, a *root* directory. - -Either just a string being the absolute path of the widget file: - - "/a/path/driving/to/the/widget" - -Or an object: - - { - "wgt": "/a/path/to/the/widget", - "force": false, - "root": "/a/path/to/the/root" - } - -"wgt" and "root" must be absolute paths. - -**output**: An object with the field "added" being the string for -the id of the added application. - - {"added":"appli@x.y"} - ---- - -#### Method org.AGL.afm.system.uninstall - -**Description**: Uninstall an application from its id. - - -Note that this methods is a simple method accessor of -***org.AGL.afm.system.uninstall*** from ***afm-system-daemon***. - -After the uninstallation and before returning to the sender, -***afm-system-daemon*** sends a signal ***org.AGL.afm.system.changed***. - -**Input**: the *id* of the application and optionally the application *root* path. - -Either a string: - - "appli@x.y" - -Or an object: - - { - "id": "appli@x.y", - "root": "/a/path/to/the/root" - } - -**output**: the value 'true'. - -[meta-intel]: https://github.com/01org/meta-intel-iot-security "A collection of layers providing security technologies" -[widgets]: http://www.w3.org/TR/widgets "Packaged Web Apps" -[widgets-digsig]: http://www.w3.org/TR/widgets-digsig "XML Digital Signatures for Widgets" -[libxml2]: http://xmlsoft.org/html/index.html "libxml2" -[openssl]: https://www.openssl.org "OpenSSL" -[xmlsec]: https://www.aleksey.com/xmlsec "XMLSec" -[json-c]: https://github.com/json-c/json-c "JSON-c" -[d-bus]: http://www.freedesktop.org/wiki/Software/dbus "D-Bus" -[libzip]: http://www.nih.at/libzip "libzip" -[cmake]: https://cmake.org "CMake" -[security-manager]: https://wiki.tizen.org/wiki/Security/Tizen_3.X_Security_Manager "Security-Manager" -[app-manifest]: http://www.w3.org/TR/appmanifest "Web App Manifest" -[tizen-security]: https://wiki.tizen.org/wiki/Security "Tizen security home page" -[tizen-secu-3]: https://wiki.tizen.org/wiki/Security/Tizen_3.X_Overview "Tizen 3 security overview" - - - |