**IMPORTANT NOTE**: //This page has been generated from a Markdown file located on https://github.com/automotive-grade-linux/docs-agl. Please edit the source document for any modification.//
====== AGL Application Framework ======
This page summarizes all materials related to AGL Application Framework
===== Source Code =====
The current code of AGL App-Framework is stored on AGL Code Repository. It's divided in the following projects:
* [[https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-main.git;a=summary|src/app-framework-main]] Main services
* [[https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-binder.git;a=summary|src/app-framework-binder]]: Binder Daemon
* [[https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-demo.git;a=summary|src/app-framework-demo]] Demos
===== Building AGL with Application Framework support =====
The Application Framework can be added easily to an AGL build using the feature 'agl-appfw-smack'.
Typically, the following command can be called to initialize AGL build:
# meta-agl/scripts/aglsetup.sh -m porter agl-appfw-smack agl-demo agl-devel
...
# bitbake agl-demo-platform
===== Documentation =====
Technical documentation is maintained in the source code and should be browsable with the [[https://github.com/automotive-grade-linux/docs-agl|upcoming AGL documentation system]]
Temporarily, a static documentation has been made in PDF format:
* [[http://iot.bzh/download/public/2016/appfw/01_Introduction-to-AppFW-for-AGL-1.0.pdf|Introduction to Application Framework]]
* [[http://iot.bzh/download/public/2016/appfw/02_Documentation-AppFW-Core-2.0.pdf|AppFW Core Documentation]]
* [[http://iot.bzh/download/public/2016/appfw/03-AGL-AppFW-Privileges-Management.pdf|Privileges Management]]
Some extra guides are also available in PDF format:
* [[http://iot.bzh/download/public/2016/sdk/AGL-Devkit-Build-your-1st-AGL-Application.pdf|Build your 1st AGL Application]]
* Applications Templates are available on [[https://github.com/iotbzh/app-framework-templates|github:iotbzh/app-framework-templates]]
==== Bindings Examples ====
Some bindings are available to quickstart new projects:
* GPS - see [[https://github.com/iotbzh/af-gps-binding/blob/master/src/af-gps-binding.c|github:iotbzh/af-gps-binding]]
* OpenXC Reader - see [[https://github.com/iotbzh/txc-demo/blob/master/binding/txc-binding.c|github:iotbzh/txc-demo]]
* CPU/Memory stats - see [[https://github.com/iotbzh/txc-demo/blob/master/binding/stat-binding.c|github:iotbzh/txc-demo]]
* Radio - see [[https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-binder.git;a=tree;f=bindings/radio;hb=master|gerrit:src/app-framework-binder]]
* Audio - see [[https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-binder.git;a=tree;f=bindings/audio;hb=master|gerrit:src/app-framework-binder]]
The list is not exhaustive. **//Please add other bindings here !//**
==== Demos ====
* Simple HTML5 Demos apps (ported from Tizen) on [[https://github.com/iotbzh/afm-widget-examples|github:iotbzh/afm-widget-examples]]
* Installable package with [[http://iot.bzh/download/public/2016/afb-demos/txc-demo_0.1.wgt|TXC Demo Application]]
* Applications available in [[https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-demo.git;a=summary|gerrit:app-framework-demo]]
===== Presentations =====
* Oct 16 - [[http://iot.bzh/download/public/2016/genivi/CyberSecurity-Genivi-Q42016-Fulup-IoTbzh.pdf|Application Security Model - Status Update]]
* Sept 16 - [[http://iot.bzh/download/public/2016/genivi/CyberSecurity-Genivi-Q42016-Fulup-IoTbzh.pdf|Building Applications with AGL Framework]] - Also visible in [[http://iot.bzh/download/public/2016/publications/build-agl-application-AMM-Munich-2016.pdf|PDF version]]
* Feb 16 - [[http://iot.bzh/download/public/2016/publications/HTML5_Applications_for_Automotive_Systems.pdf|HTML5 Apps for Automotive Systems]]
* Feb 16 - [[http://iot.bzh/download/public/2016/security/Security-Proposal-AGL20-Fulup.pdf|Application & Security Framework Proposal AGL 2.0]]
* Jan 16 - [[http://iot.bzh/download/public/2016/security/Security-Architecture-AGL20.pdf|Security Architecture Proposal]]
===== History =====
==== Motivation for rewriting the App. Framework ====
To get the background and motivation on why Application Framework has been rewritten:
* [[http://iot.bzh/download/public/2015/tizen-security-lessons-learnt-initial.pdf|Tizen Security: lessons learnt]]
* [[https://lists.linuxfoundation.org/pipermail/automotive-discussions/2016-October/002749.html|this discussion]]
* [[http://iot.bzh/download/public/2016/security/Linux-Automotive-Security-v10.pdf|Linux Automotive Security]]
==== Comparison/Relationship with Tizen ====
Tizen AGL
----------------------------------
App/OS isolation yes yes
Container option no possible
Native App partial* yes
HTML5 App yes yes
Cloud App No yes
Unified API (HTLM/Native) No yes
service as App** No yes
Adding API *** core core or App
Devel model bespoke Standard Web