[Dev] New changes : Application Framework

Baptiste Durand baptiste.durand at open.eurogiciel.org
Thu Sep 18 18:16:02 GMT 2014

Hello all,

Since Today the Application Framework provides some news Core API.
& a new way to install applications
CAPI Changes :

So what News?
Now in Tizen 3 we can install/uninstall  applications for dedicated user or
for all users.

So the Tizen Database are duplicated.
Each User has it proper database that references all applications installed
for himself (only) stored in $HOME/.applications/dbspace

The set Applications Databases  are also used to register applications for
all user (common applications ) also called Global database stored in

In consequences, appid is not unique now.
Indeed an application can be installed for all user and in a same time for
a dedicated user.

If a user makes a request to open an app (by using appid), the user's app
are choosen even if an application with the same appid exists at Global
level ( avaible for all users)

So now only the couple of value (appid, uid) is unique.

To include this, we has been needed to introduce new CAPI based on Tizen
2.X  ones.

All functions fixed by _usr_ with an user id in parameters is related to
applications or packages Database (depending of CAPI used) of the user

All functions with the same prototype of Tizen 2.X ones are related to
Common/Systems Applications

We also introduce a Global User concept this user is a fictive one. (In
Code, we can see some reference to a GLOBAL_USER)
it exist only for operating on Common Applications Databases.

To give an example of what is explain before, we have in application
information library and pakcage manager library.

  ail_error_e ail_filter_list_usr_appinfo_foreach(ail_filter_h filter,
ail_list_appinfo_cb appinfo_func, void *user_data, uid_t uid); ail_error_e
ail_filter_list_appinfo_foreach(ail_filter_h filter, ail_list_appinfo_cb
appinfo_func, void *user_data);
-> ail_filter_list_appinfo_foreach permits to apply a filter on Common
applications only (related to common applications).

-> ail_error_e ail_filter_list*_usr_*appinfo_foreach   permits to apply a
filter on the applications dedicated to a user (choosen in parameters).

  int pkgmgr_client_usr_install(pkgmgr_client *pc, const char *pkg_type,
const char *descriptor_path, const char *pkg_path, const char
*optional_file, pkgmgr_mode mode, pkgmgr_handler event_cb, void *data,
uid_t uid); int pkgmgr_client_install(pkgmgr_client *pc, const char
*pkg_type, const char *descriptor_path, const char *pkg_path, const char
*optional_file, pkgmgr_mode mode, pkgmgr_handler event_cb, void *data,
uid_t uid);
pkgmgr_client_*usr*_install is used to install an application for a
dedicated user

pkgmgr_client_install is used to install an application for all users

We decide to duplicated the CAPI to distinguish Global level to User's
for two reasons;
-> make integration change easier
->satisfy a Core API usage in a Core Application Context. (see diagram
architecture overview)

We do not consider :
pkgmgr_client_install  are equal to  pkgmgr_client_*usr*_install( getuid())
-> CAPI can be used ay System Level by daemon (and a daemon is often not
associated to a regular user )

So we need to permits to manipulate database by offering two differents API
(one for Global DB / 1 for user's ones).
We consider that this concept to take the current user in account should be
done at HIGH Level API (ie WEB API or Native API) (see diagram architecture

Pkgcmd new option / Backend for Widget Apps

We add ability  to install web apps through pkgmgr-server

so now pkgcmd binary is able to manage applications by using package
Manager CAPI

we are going to add -G option that permits to install application for all
users. (coming soon next week).


Please find in attachment the list of added CAPI

*For your information :During The Linux Con at Dusseldorf Sabera Djelti
will present a global overview of theses changes.*

For additional informations : please take a look on the wiki


Baptiste and Sabera

Baptiste DURAND
Eurogiciel Vannes/FR
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.tizen.org/pipermail/dev/attachments/20140918/e3d73a13/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Architecture Overview .jpg
Type: image/jpeg
Size: 35819 bytes
Desc: not available
URL: <http://lists.tizen.org/pipermail/dev/attachments/20140918/e3d73a13/attachment-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: listing CAPI multiuser.ods
Type: application/vnd.oasis.opendocument.spreadsheet
Size: 15846 bytes
Desc: not available
URL: <http://lists.tizen.org/pipermail/dev/attachments/20140918/e3d73a13/attachment-0001.ods>

More information about the Dev mailing list