wiki:DeforaOSSmartphone

DeforaOS smartphone

The DeforaOS project is an  experimental Operating System project, featuring a graphical desktop environment. Suitable for embedded devices, this environment is released as a  separate set of images, or can be installed from hackable:1's  daily builds.

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.

Download

dse2

Images can be found there for the dse2 release:

Openmoko Freerunner

You can choose between either one of these images, depending on if you prefer to flash the device itself, or run the distribution on a separate MicroSD card (512MB is enough, 1GB recommended). The regular installation instructions apply:

HTC TouchPro

Installation instructions are also available here.

dse1

Or for the earlier dse1 release:

Openmoko Freerunner

Manual Installation

Requirements

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

  • matchbox-window-manager (until framer is ready)
  • panel
  • phone

Installing these packages is recommended as well:

  • browser (file browser, desktop manager and homescreen)
  • keyboard (virtual keyboard)
  • locker (screensaver)

More packages from the environment are available as well:

  • editor (simple text editor)
  • framer (window manager)
  • mailer (mail client)
  • 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 (ring tones)

Instructions

The following command will download and install these packages:

# apt-get install panel phone browser locker framer editor mailer player surfer todo keyboard

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() {
	sleep 8
	while true; do
		panel
		sleep 1
	done
}

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


start_saver() {
	sleep 16
	while true; do
		locker -s
		sleep 1
	done
}

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

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

#main
[ -f ~/.Xresources ] && xrdb ~/.Xresources
[ -f ~/.pulse/hackable1.pa ] && pulseaudio -D -F ~/.pulse/hackable1.pa
start_phone &
start_panel &
start_saver &
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=gprs,openmoko,panel,profiles

Alternatively, settings and plug-ins for the phone application can be configured from within its graphical interface.

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
top_size=panel-small
bottom=main,keyboard,desktop,tasks
bottom_size=panel-large

Additional configuration

SMS encryption

A word of warning: the level of cryptography offered is that of confidentiality (eg it is not expected to resist to targeted attacks).

To activate the cryptography plug-in, simply enable it in the list of plug-ins within the phone's configuration interface (Main menu→Applications→Settings→Phone settings). You then want to configure the respective shared secrets in the new "SMS encryption" entry of the settings menu.

Building images

The instructions found in the BuildingImages page still apply, just make sure to add the following argument to strap1.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)
  • manages different profiles
  • supports SMS encryption
  • easily extensible (plug-ins...)

Additionally, the development version supports different telephony backends to be used, with support for VOIP (SIP) being introduced already.

Disadvantages

  • there is no backend for PIM management (all operations are currently performed on the SIM card)
  • some features are still missing:
    • support for hardware buttons