X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=doc%2Fwidgets.html;h=8c2757713f76ab447a518f4db81f9af8417aeb82;hb=62a07cae0e40181daafdb0204c275af66d0f6d64;hp=77bf236f0dc3e6f6cbd6132114d8830947022c4c;hpb=f2bde701a9873c69897e599a7da08a0d113a86ab;p=src%2Fapp-framework-main.git diff --git a/doc/widgets.html b/doc/widgets.html index 77bf236..8c27577 100644 --- a/doc/widgets.html +++ b/doc/widgets.html @@ -1,77 +1,176 @@ +
- - + + + + + +version: 1
-Date: 15 March 2016
-Author: José Bollo
-
-
-
-The widgets are described by the technical recommendations -widgets and widgets-digsig.
- - -The application framework
- -This is the original part of our work here
- - -Applications can be installed in few places: on the system itself or on an extension device. -For my phone, for example, it is the sd card.
- +The widgets are described by the technical recommendations widgets and widgets-digsig.
+In summary, widgets are ZIP files that can be signed and whose content is described by the file
This is one of the important file of the widget. It fully describes the widget.
+Here is the example of the config file for the QML application SmartHome.
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" id="smarthome" version="0.1">
+ <name>SmartHome</name>
+ <icon src="smarthome.png"/>
+ <content src="qml/smarthome/smarthome.qml" type="text/vnd.qt.qml"/>
+ <description>This is the Smarthome QML demo application. It shows some user interfaces for controlling an
+automated house. The user interface is completely done with QML.</description>
+ <author>Qt team</author>
+ <license>GPL</license>
+</widget>
The most important items are:
+<widget id="......">: gives the id of the widget. It must be unique.
<widget version="......">: gives the version of the widget
<icon src="...">: gives a path to the icon of the application (can be repeated with different sizes)
<content src="..." type="...">: this indicates the entry point and its type. The types handled are set through the file /etc/afm/afm-launch.conf
Further development will add handling of
This project includes tools for managing widgets. These tools are:
+wgtpkg-info: command line tool to display informations about a widget file.
wgtpkg-installer: command line tool to install a widget file.
wgtpkg-pack: command line tool to create a widget file from a widget directory.
wgtpkg-sign: command line tool to add a signature to a widget directory.
For all these commands, a tiny help is available with options -h or --help.
+There is no tool for unpacking a widget. For doing such operation, you can use the command unzip.
+To list the files of a widget:
+$ unzip -l WIDGET
To extract a widget in some directory:
+$ unzip WIDGET -d DIRECTORY
Note that DIRECTORY will be created if needed.
+To sign a widget, you need a private key and its certificate.
+The tool wgtpkg-sign creates or replace a signature file in the directory of the widget BEFORE its packaging.
+There are two types of signature files: author and distributor.
+Example 1: add an author signature
+$ wgtpkg-sign -a -k me.key.pem -c me.cert.pem DIRECTORY
Example 2: add a distributor signature
+$ wgtpkg-sign -k authority.key.pem -c authority.cert.pem DIRECTORY
This operation can be done using the command zip but we provide the tool wgtpkg-pack that may add checking.
+Example:
+$ wgtpkg-pack DIRECTORY -o file.wgt
The command wgtpkg-info opens a widget file, reads its config.xml file and displays its content in a human readable way.
+The file /etc/afm/afm-launch.conf explain how to launch applications. (It is the current state that use afm-user-daemon. In a future, it may be replace by systemd features.)
+Currently the applications that can be run are:
+binary applications: their type is application/x-executable
HTML5 applications: their type is text/html
QML applications: their type is text/vnd.qt.qml
make your application
create its configuration file config.xml
sign it
pack it
Fairly easy, no?
+Applications can be installed in different places: the system itself, extension device. On a phone application are typically installed on the sd card.
This translates to:
-In the remaining of the document, these places are writen “APPDIR”.
- - -The main path for applivcations are: APPDIR/PKGID/VER.
- +From here those paths are referenced as: "APPDIR".
+The main path for applications is: APPDIR/PKGID/VER.
Where:
-This organisation has the advantage to allow several versions to leave together. -This is needed for some good reasons (rolling back) and also for less good reasons (user habits).
- - -All the files are installed as the user “userapp” and group “userapp”. -All files have rw(x) for user and r-(x) for group and others.
- -This allows any user to read the files.
- - -The data of a user are in its directory and are labelled using the labels of the application
+This organization has the advantage to allow several versions to leave together. This is needed for some good reasons (rolling back) and also for less good reasons (user habits).
+All files are installed as user "afm" and group "afm". All files have rw(x) for user and r-(x) for group and others.
+This allows every user to read every file.
+The data of a user are in its directory and are labelled by the security-manager using the labels of the application.