Release Notes for Serval Mesh 0.93
Serval Project, May 2016
What is Serval Mesh?
Serval Mesh is an app for Android 2.2 “Froyo” and above. It provides free, secure phone-to-phone voice calling, SMS and file sharing over Wi-Fi or [Bluetooth], without the need for a SIM card or a commercial mobile telephone carrier. In other words, it lets your Android phone call other Android phones running Serval Mesh within Wi-Fi range.
Serval Mesh is EXPERIMENTAL SOFTWARE. It has not yet reached version 1.0, and is intended for pre-production, demonstration purposes only. It may not work as advertised, it may lose or alter messages and files that it carries, it may consume a lot of space, speed and battery, and it may crash unexpectedly.
On the Serval Mesh "Connect" screen, connecting to "Ad Hoc Mesh" will request root permission (super-user) on your Android device in order to put Wi-Fi into Ad-Hoc mode. If you grant super-user permission to Serval Mesh, it will attempt to reinstall the Wi-Fi driver software on your device, which could result in YOUR DEVICE BECOMING PERMANENTLY DISABLED ("BRICKED").
On the Serval Mesh "Connect" screen, selecting "Portable Wi-Fi Hotspot" will put your device's Wi-Fi into Access Point mode. If you have a mobile data plan, this will give nearby devices access to your mobile data plan, and COULD COST YOU MONEY.
The Serval Mesh "Connect" screen allows you to connect to other Serval Mesh devices that act as Access Points (Hotspots) or Ad Hoc peers. If you do so, this will cut off normal Wi-Fi network access while Serval Mesh is running, and services like Google Updates, E-mail, social media and other notifications may not work.
Serval Mesh telephony is a “best effort” service, primarily intended for when conventional telephony is not possible or cost effective, and MUST NOT BE RELIED UPON for emergencies in place of carrier-grade communications systems. The Serval Project cannot be held responsible for any performance or non-performance of the technologies that they provide in good will, and if you use these technologies you must agree to indemnify the Serval Project from any such claims.
The Serval Mesh software copies all files shared using the Rhizome file distribution service to other phones and devices running the Serval Mesh software, regardless of size, content or intended recipient. The Serval Project cannot be held responsible for the legality or propriety of any files received via Rhizome, nor for any loss, damage or offence caused by the transmission or receipt of any content via Rhizome.
See the disclaimers below.
What's new since 0.92
Greatly reduced power usage, particularly when no peers are present. In previous versions of the software, a CPU lock would be held whenever the software was enabled and connected to a viable Wi-Fi network. This would completely prevent the CPU from suspending, draining the battery in a matter of hours. In this release, Android alarms are used to wake up the CPU, holding a CPU lock for only a short time. While there are still improvements to be made in this area, the software may be able to remain enabled and connected to a Wi-Fi network without significantly impacting battery life.
Bluetooth has been added as a usable network transport. The addition of bluetooth support has the potential to greatly simplify the process of discovering and connecting to other phones.
Better support for more recent versions of Android. Android 5.0 requires that native binaries are compiled in a way that isn't supported on version before 4.1. So we must now include 2 sets of compiled binaries.
Improved user feedback while networks are turning on and off.
This release of Serval Mesh has been tested on a variety of Android devices, and is expected to run on almost any Android phone. It does NOT require root.
Prior releases of Serval Mesh are known to work on the following devices, which is included for historical purposes, as many of the following devices support ad-hoc Wi-Fi mode for those for whom that is interesting:
Huawei IDEOS X1 u8180, running Android 2.2.2 (rooted) and CyanogenMod 2.3.7
HTC Sensation, running Android 2.3.4 (rooted) and HTC Sense 3.0
HTC One S
Huawei IDEOS u8150
Samsung Galaxy Tab 7 inch
Samsung Galaxy Gio S5660, running Android 2.3.6 (rooted)
Samsung Vitality SCH-R720
ZTE Score X500
HTC/Google G1 (“Dream”)
Previous releases of Serval Mesh were known to work on the following devices with minor problems:
Samsung Galaxy S2 GT-I9100, running Android 2.3 (rooted): Ad-Hoc Wi-Fi is not completely compatible with the Ad-Hoc Wi-Fi on other devices, specifically the Huawei IDEOS phones listed above. If the Galaxy S2 is the first device to join the mesh, then IDEOS phones cannot join. However, if an IDEOS phone is the first device, then the Galaxy S2 does join okay.
Google Nexus 1: does not interoperate well with HTC/Google G1.
The following devices have major known problems when attempting to use ad-hoc Wi-Fi in this or prior releases:
HTC Wildfire A3335
Samsung Galaxy Nexus: Wi-Fi Ad-Hoc mode does not start; Wi-Fi mode reverts to Off.
Motorola Razr i XT890: Wi-Fi control does not work.
Samsung Galaxy Note 2: does not detect peers. Possibly the same problem as the Galaxy S2 described above, but not tested.
See the Mobile Device Compatability Table for more details and devices.
While Serval Mesh services are enabled and you are connected to a Wi-Fi network with active peers, Android may be prevented from sleeping. This may drain the battery quickly -- see batphone issue #91.
Voice call quality degrades whenever Rhizome or MeshMS operations or transfers are in progress. Rhizome can worsen network congestion, transfers are not throttled and can lead to additional network latency and packet loss due to a problem known as Bufferbloat. -- see serval-dna issue #1.
Voice call quality is variable. We try to enable echo cancellation, if supported by the handset. However some echo may have to be controlled by lowering speaker volume or using earphones. Audio latency (delay) can exceed one second in some situations -- see batphone issue #93.
VoMP does not play a "ringing" sound while placing a call, nor a "hangup" sound when the other party hangs up, nor any other indicator of networking failures -- see batphone issue #76.
Every new MeshMS message increases the size of the Rhizome payload that contains all the messages in that conversation ply. So every MeshMS conversation will consume more network bandwidth and SD Card space as it grows -- see serval-dna issue #28. This cannot be worked around.
If a user starts a Serval Hotspot on the "Connect" screen, then the application overwrites the user's own personal hotspot name (and settings) with "ap.servalproject.org". When the Serval Hotspot is turned off, Serval Mesh restores the user's own personal hotspot settings, which involves turning the user's Wi-Fi hotspot on and off briefly. This could cause some concern or confusion, but is the only way that Android provides to restore hotspot settings.
Copyright and licensing
Serval Mesh is free software produced by the Serval Project and many contributors. The copyright in all source code is owned by Serval Project Inc., an organisation incorporated in the state of South Australia in the Commonwealth of Australia.
The Java/XML source code of Serval Mesh is licensed to the public under the GNU General Public License version 3. The serval-dna component of Serval Mesh is licensed to the public under the GNU General Public License version 2.
All technical documentation is licensed to the public under the Creative Commons Attribution 4.0 International license.
This release would not have been possible without the support of United States Agency for International Development and Radio Free Asia.
- Douglas P. Chamberlin
- Walter Ebert
- Andrew G. Morgan, California, USA
- Fred Fisher
The Serval Project was founded by Dr Paul Gardner-Stephen and Romana Challans, both academic staff at the School of Computer Science, Engineering and Mathematics at Flinders University in South Australia. Their work on the Serval Project is made possible by the ongoing support of the university.
SERVAL MESH refers to the software, protocols, systems and other goods, tangible and intangible produced by The Serval Project, Serval Project, Inc., and Serval Project Pty Limited.
SERVAL MESH COMES WITH NO WARRANTY, EXPRESSED OR IMPLIED, AND IS NOT FIT FOR MERCHANTABILITY FOR ANY PURPOSE. USE AT YOUR SOLE RISK.
SERVAL MESH WILL REDUCE THE BATTERY LIFE OF DEVICES ON WHICH IT RUNS.
SERVAL MESH MAY CONSUME ALL STORAGE, both LOCAL and EXTERNAL (eg, MICRO SD CARD) ON THE DEVICES ON WHICH IT RUNS.
SERVAL MESH SHOULD NOT BE INSTALLED ON DEVICES WHICH ARE DEPENDED UPON FOR EMERGENCY COMMUNICATION.
SERVAL MESH MAY TRANSMIT SOME DATA IN THE CLEAR.
SERVAL MESH PROTECTIONS against IMPERSONATION or OTHER MISAPPROPRIATION of IDENTITY ESTABLISHING FACTORS MAY BE DEFECTIVE and MAY NOT PERFORM AS EXPECTED.
SERVAL MESH SHOULD NOT BE RELIED UPON IN AN EMERGENCY is it is an INCOMPLETE PROTOTYPE and BEST EFFORT in nature, and may FAIL TO OPERATE.
SERVAL MESH may COST YOU MONEY if you have a MOBILE DATA PLAN by TURNING OFF WI-FI NETWORK ACCESS or by allowing NEARBY DEVICES TO USE YOUR DATA PLAN WITHOUT YOUR KNOWLEDGE OR CONSENT.
SERVAL MESH may REVEAL AND/OR BROADCAST YOUR LOCATION, IDENTITY OR OTHER INFORMATION through its normal operation.
SERVAL MESH is an INCOMPLETE, PRE-PRODUCTION software, experimental in nature and is not to be considered fit for merchantability for any purpose. It has many defects, omissions and errors that will hamper its fulfilling of its intended purposes.
Copyright 2016 Serval Project Inc.
This document is available under the Creative Commons Attribution 4.0 International licence.