X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2F2.1-widgets.md;h=f41e2d995acdb8ccbc277457d65774605833bd21;hb=0083ad3751cd2b088b5c5d0dea727671ea2a3cca;hp=93cd788493e92c2afc528afdd4b35fb42cae2ee5;hpb=d1b49a7d26bf344d9f00ae12144cbcc7d930b08b;p=src%2Fapp-framework-main.git diff --git a/docs/2.1-widgets.md b/docs/2.1-widgets.md index 93cd788..f41e2d9 100644 --- a/docs/2.1-widgets.md +++ b/docs/2.1-widgets.md @@ -1,13 +1,12 @@ -Tools for managing widgets --------------------------- +# Tools for managing widgets -This project includes tools for managing widgets. +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 +- ***wgtpkg-install***: command line tool to install a widget file. - ***wgtpkg-pack***: command line tool to create @@ -19,31 +18,29 @@ 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**. +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: ```bash -$ unzip -l WIDGET +unzip -l WIDGET ``` To extract a widget in some directory: ```bash -$ unzip WIDGET -d DIRECTORY +unzip WIDGET -d DIRECTORY ``` -*Note that DIRECTORY will be created if needed*. +*Note: that DIRECTORY will be created if needed*. -Getting data about a widget file ---------------------------------- +## 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. -Signing and packing widget --------------------------- +## Signing and packing widget ### Signing @@ -57,13 +54,13 @@ There are two types of signature files: author and distributor. Example 1: add an author signature ```bash -$ wgtpkg-sign -a -k me.key.pem -c me.cert.pem DIRECTORY +wgtpkg-sign -a -k me.key.pem -c me.cert.pem DIRECTORY ``` Example 2: add a distributor signature ```bash -$ wgtpkg-sign -k authority.key.pem -c authority.cert.pem DIRECTORY +wgtpkg-sign -k authority.key.pem -c authority.cert.pem DIRECTORY ``` ### Packing @@ -72,68 +69,74 @@ This operation can be done using the command **zip** but we provide the tool **wgtpkg-pack** that may add checking. Example: + ```bash -$ wgtpkg-pack DIRECTORY -o file.wgt +wgtpkg-pack DIRECTORY -o file.wgt ``` -Writing a widget ----------------- -### The steps for writing a widget +## Writing a widget -1. make your application +### App directory organization + +There are few directories that are by default used in the binder. At the root +directory of the widget folder, here are the directories that could be used: -2. create its configuration file **config.xml** +- *lib* : default directory where lies external libraries needed for + the binding. Binding could be stored here too or in another directory of your + choice. +- *htdocs* : root HTTP directory if binding has web UI. -3. sign it +### The steps for writing a widget -4. pack it +1. make your application +1. create its configuration file **config.xml** +1. sign it +1. pack it Fairly easy, no? -Organization of directory of applications ------------------------------------------ +## Organization of directory of applications ### directory where are stored applications -Applications can be installed in different places: the system itself, extension device. +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: - - /usr/applications: system wide applications - - /opt/applications: removable applications +- /var/local/lib/afm/applications -From here those paths are referenced as: "APPDIR". +From here this path is referenced as: "APPDIR". The main path for applications is: APPDIR/PKGID/VER. Where: - - APPDIR is as defined above - - PKGID is a directory whose name is the package identifier - - VER is the version of the package MAJOR.MINOR +- APPDIR is as defined above +- PKGID is a directory whose name is the package identifier +- VER is the version of the package MAJOR.MINOR -This organization has the advantage to allow several versions to leave together. +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 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 -The data of a user are in its directory and are labelled by the security-manager -using the labels of the application. +The data of a user are in its directory and are labelled by the security-manager using the application labels. [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" [app-manifest]: http://www.w3.org/TR/appmanifest "Web App Manifest" - - [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" @@ -148,7 +151,3 @@ using the labels of the application. [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" - - - -