Version 17 (modified by ppronchery, 7 weeks ago)

The panel applet is now an optional plug-in

DeforaOS smartphone

The DeforaOS project is an experimental Operating System project, featuring a graphical desktop environment. Suitable for embedded devices, this environment can be installed from hackable:1's packages repository.

Overview

The idea behind this set of applications is to follow the original UNIX philosophy closely, meaning that each individual component is kept as independent and simple as possible. The actual telephony application therefore suffices to itself, and its core only contains the minimal functionality required for phone calls and messaging to work. On the other hand, it features a plug-in system, where additional features can be added; typically:

  • additional integration (eg panel applet, FSO...)
  • dedicated hardware support (eg Openmoko-specific code)
  • profile management (ringtone, volume, silent and offline modes...)
  • security features (eg SMS encryption...)

Likewise, the other applications of the environment can be used independently.

Requirements

The following packages are required to run the environment as a phone:

  • libsystem0
  • panel (optional but looks better)
  • phone

Installing these packages is recommended as well:

  • browser (file browser, desktop manager)
  • libdesktop0
  • framer (window manager)

More packages from the environment are available as well:

  • editor (simple text editor)
  • player (media player)
  • surfer (web browser)
  • todo (task list manager)

The environment may also benefit from the presence of the following packages on the system:

  • pulseaudio
  • xkbd or h1xkbd
  • matchbox-window-manager (until framer is ready)

Installation

The following command will download and install these packages:

# apt-get install libsystem0 panel phone browser libdesktop0 framer editor player surfer todo xkbd

The following script can be used to start the environment, it should then be placed in $HOME/.xsession:

#!/bin/sh

#variables
export GTK_MODULES="libgtkstylus.so"

start_panel() {
	while true; do
		panel
		sleep 1
	done
}

start_phone() {
	sleep 3
	while true; do
		phone
		sleep 1
	done
}

start_desktop() {
	while true; do
		desktop -h
		sleep 1
	done
}

start_windowmanager() {
	while true; do
		matchbox-window-manager -use_titlebar yes -use_desktop_mode decorated -theme Moko -use_cursor no
		#framer
		sleep 1
	done
}

#main
[ -f ~/.Xresources ] && xrdb ~/.Xresources
h1pa="/usr/share/hackable1/h1.pa"
if [ -f $h1pa ]; then pulseaudio -D -F $h1pa; else pulseaudio -D; fi
start_phone &
start_panel &
#XXX disabled until framer is ready
#start_desktop &
start_windowmanager

The following configuration file is required for the telephony application to function on the Openmoko Freerunner, in $HOME/.phone:

device=/dev/ttySAC0
baudrate=115200
hwflow=1
plugins=openmoko,panel,profiles

The following configuration file is recommended for the panel applet to show up, in $HOME/.panel:

top=systray,volume,battery,bluetooth,gps,gsm,phone,clock
bottom=desktop,main,keyboard,tasks

Additional configuration

SMS encryption

WARNING

As of June 4th 2010:

  • this functionality is very young and the configuration instructions can (and will) evolve in the future
  • the level of cryptography offered is that of confidentiality (eg a simple XOR is not expected to resist to targeted attacks)
  • the only way to enable/disable the feature is to alter the configuration file and restart the application

To enable the cryptography plug-in, the following lines can be added to the configuration file, in $HOME/.phone:

plugins=openmoko,panel,profiles,smscrypt

[smscrypt]
secret=your shared secret here

Building images

The instructions found in the BuildingImages page still apply, just make sure to add the following argument to build.sh:

ENVIRONMENT="deforaos"

Comparison with Om2007.2

Benefits

  • simpler architecture
  • the user interface is probably more responsive (dialing, messaging, on-screen keyboard...)
  • uses less disk space (less dependencies)
  • ready to handle profile management
  • supports SMS encryption
  • easily extensible (plug-ins...)

Common issues

  • at the moment the SIM code is not asked at every boot (partly hardware issue)
  • the same goes for network registration

Disadvantages

  • there is no backend for PIM management (all operations are currently performed on the SIM card)
  • younger code (by May 2010)