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
- http://build.hackable1.org/releases/dse2/Hackable1-Openmoko-Freerunner-phone-dse2-rootfs.jffs2 (flash)
- http://build.hackable1.org/releases/dse2/Hackable1-Openmoko-Freerunner-phone-dse2.tar.gz (external MicroSD)
- http://build.hackable1.org/releases/dse2/uImage-GTA02.bin (kernel)
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:
- for flash memory,
- or alternatively for external MicroSD cards.
HTC TouchPro
- http://build.hackable1.org/releases/dse2/Hackable1-HTC-TouchPro-phone-dse2.tar.gz (external MicroSD)
Installation instructions are also available here.
dse1
Or for the earlier dse1 release:
Openmoko Freerunner
- http://build.hackable1.org/releases/dse1/Hackable1-Openmoko-Freerunner-user-2010.09a-rootfs.jffs2 (flash)
- http://build.hackable1.org/releases/dse1/Hackable1-Openmoko-Freerunner-user-2010.09a.tar.gz (external MicroSD)
- http://build.hackable1.org/releases/dse1/Hackable1-Openmoko-Freerunner-user-2010.07a-uImage.bin (kernel)
- http://build.hackable1.org/releases/dse1/Hackable1-Openmoko-Freerunner-user-2010.07a-splash.gz (optional splash screen)
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
