X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=doc%2Fwidgets.html;fp=doc%2Fwidgets.html;h=1ea017868cc54c69759531ca82c8a8dd9a8cb628;hb=bad30c92a1cbe0e411f52c277cef37b6570b623f;hp=23bf891b59cde761edfabd2b23ea3c0d411b19e3;hpb=8b1af713cef4f66d658e304f0ace0820b47d2bc5;p=src%2Fapp-framework-main.git diff --git a/doc/widgets.html b/doc/widgets.html index 23bf891..1ea0178 100644 --- a/doc/widgets.html +++ b/doc/widgets.html @@ -1,98 +1,161 @@ + - - + + + + + + The widgets + + + + - -

The widgets

- +
+

The widgets

+

José Bollo

+

Fulup Ar Foll

+

24 juin 2016

+
+ +

The widgets

version: 1
 Date:    30 mai 2016
-Author:  José Bollo
-
- -

- - -

The widgets

- -

The widgets are described by the technical recommendations -widgets and widgets-digsig.

- - -

signature

- -

The application framework

- -

This is the original part of our work here

- - -

directory where are stored applications

- -

Applications can be installed in different places: the system itself, extension device. -On a phone application are typically installed on the sd card.

- +Author: José Bollo +

The widgets

+

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 .

+

The configuration file config.xml

+

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:

+ +

Further development will add handling of for requiring and providing permissions and services.

+

Tools for managing widgets

+

This project includes tools for managing widgets. These tools are:

+ +

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.

+

Signing a widget

+

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
+

Packing a widget

+

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
+

Getting data about a widget file

+

The command wgtpkg-info opens a widget file, reads its config.xml file and displays its content in a human readable way.

+

Writing a widget

+

What kind of application?

+

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:

+ +

The steps for writing a widget

+
    +
  1. make your application

  2. +
  3. create its configuration file config.xml

  4. +
  5. sign it

  6. +
  7. pack it

  8. +
+

Fairly easy, no?

+

Organization of directory of applications

+

directory where are stored applications

+

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:

- - - -

From here those paths are referenced as: “APPDIR”.

- - -

Organization of directory of applications

- +

From here those paths are referenced as: "APPDIR".

The main path for applications is: APPDIR/PKGID/VER.

-

Where:

- - - -

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).

- - -

Identity of installed files

- -

All files are installed as user “userapp” and group “userapp”. -All files have rw(x) for user and r-(x) for group and others.

- +

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).

+

Identity of installed files

+

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.

- - -

labeling the directories of applications

- - -

organization of data

- -

The data of a user are in its directory and are labelled using the labels of the application

+

labeling the directories of applications

+

The data of a user are in its directory and are labelled by the security-manager using the labels of the application.