package icon

Serval Mesh

Peer to peer communications
The Serval Project is seeking funds to develop a mesh extender which aims to
work around the limitations caused by the lack of AdHoc mode in Android. Visit
the campaign website to
the cause.

N.B The app no longer asks for root by default although you can still try
it in adhoc mode. Prebuilts are no longer in the source code.

This is experimental software: 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.

Mobile communications are useful, but depend on infrastructure that can be
damaged, overwhelmed, or even absent. This app assumes zero infrastructure. The
phones talk to each other using WiFi; relaying calls and messages and figuring
out how to resolve numbers. In other words, it lets your phone communicate with
other Android phones running Serval Mesh within WiFi range.

Requires root: No. Basic Android still doesn't allow WiFi in AdHoc mode, so the
app will ask for root if you try to enable adhoc mode.

The Java/XML part is distributable under the GNU GPLv3 while the serval-dna
(distributed number architecture) project is GPLv2.

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 0.93 (2371) suggested Added on Jun 03, 2017

    arm64-v8a armeabi armeabi-v7a mips mips64 x86 x86_64

    This version requires Android 2.2 or newer.

    It is built by F-Droid and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • android.permission.AUTHENTICATE_ACCOUNTS
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • send sticky broadcast
      Allows the app to send sticky broadcasts, which remain after the broadcast ends. Excessive use may make the phone slow or unstable by causing it to use too much memory.
    • directly call phone numbers
      Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn't allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation.
    • allow Wi-Fi Multicast reception
      Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
    • connect and disconnect from Wi-Fi
      Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
    • disable your screen lock
      Allows the app to disable the keylock and any associated password security. For example, the phone disables the keylock when receiving an incoming phone call, then re-enables the keylock when the call is finished.
    • find accounts on the device
      Allows the app to get the list of accounts known by the phone. This may include any accounts created by applications you have installed.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • android.permission.MANAGE_ACCOUNTS
    • change your audio settings
      Allows the app to modify global audio settings such as volume and which speaker is used for output.
    • reroute outgoing calls
      Allows the app to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether.
    • read call log
      This app can read your call history.
    • read your contacts
      Allows the app to read data about your contacts stored on your phone. Apps will also have access to the accounts on your phone that have created contacts. This may include accounts created by apps you have installed. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge.
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • android.permission.READ_PROFILE
    • read sync settings
      Allows the app to read the sync settings for an account. For example, this can determine whether the People app is synced with an account.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • write call log
      Allows the app to modify your phone's call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log.
    • modify your contacts
      Allows the app to modify the data about your contacts stored on your phone. This permission allows apps to delete contact data.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
    • toggle sync on and off
      Allows an app to modify the sync settings for an account. For example, this can be used to enable sync of the People app with an account.
    • net.commotionwireless.meshtether.ACCESS_STATE
    • net.commotionwireless.meshtether.CHANGE_STATE
    • org.servalproject.meshms.SEND_MESHMS
    • org.servalproject.rhizome.RECEIVE_FILE

    Download APK 11 MiB PGP Signature | Build Log

  • Version 0.91 (2120) - Added on Jul 22, 2013

    armeabi

    This version requires Android 2.2 or newer.

    It is built by F-Droid and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • android.permission.AUTHENTICATE_ACCOUNTS
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • send sticky broadcast
      Allows the app to send sticky broadcasts, which remain after the broadcast ends. Excessive use may make the phone slow or unstable by causing it to use too much memory.
    • directly call phone numbers
      Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn't allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation.
    • allow Wi-Fi Multicast reception
      Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
    • connect and disconnect from Wi-Fi
      Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
    • disable your screen lock
      Allows the app to disable the keylock and any associated password security. For example, the phone disables the keylock when receiving an incoming phone call, then re-enables the keylock when the call is finished.
    • find accounts on the device
      Allows the app to get the list of accounts known by the phone. This may include any accounts created by applications you have installed.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • android.permission.MANAGE_ACCOUNTS
    • change your audio settings
      Allows the app to modify global audio settings such as volume and which speaker is used for output.
    • reroute outgoing calls
      Allows the app to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether.
    • read call log
      This app can read your call history.
    • read your contacts
      Allows the app to read data about your contacts stored on your phone. Apps will also have access to the accounts on your phone that have created contacts. This may include accounts created by apps you have installed. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge.
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • android.permission.READ_PROFILE
    • read sync settings
      Allows the app to read the sync settings for an account. For example, this can determine whether the People app is synced with an account.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • write call log
      Allows the app to modify your phone's call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log.
    • modify your contacts
      Allows the app to modify the data about your contacts stored on your phone. This permission allows apps to delete contact data.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
    • toggle sync on and off
      Allows an app to modify the sync settings for an account. For example, this can be used to enable sync of the People app with an account.
    • org.servalproject.meshms.SEND_MESHMS
    • org.servalproject.rhizome.RECEIVE_FILE

    Download APK 1.8 MiB PGP Signature | Build Log

  • Version 0.91.RC2 (2117) - Added on Jul 04, 2013

    armeabi

    This version requires Android 2.2 or newer.

    It is built by F-Droid and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • android.permission.AUTHENTICATE_ACCOUNTS
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • send sticky broadcast
      Allows the app to send sticky broadcasts, which remain after the broadcast ends. Excessive use may make the phone slow or unstable by causing it to use too much memory.
    • directly call phone numbers
      Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn't allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation.
    • allow Wi-Fi Multicast reception
      Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
    • connect and disconnect from Wi-Fi
      Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
    • disable your screen lock
      Allows the app to disable the keylock and any associated password security. For example, the phone disables the keylock when receiving an incoming phone call, then re-enables the keylock when the call is finished.
    • find accounts on the device
      Allows the app to get the list of accounts known by the phone. This may include any accounts created by applications you have installed.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • android.permission.MANAGE_ACCOUNTS
    • change your audio settings
      Allows the app to modify global audio settings such as volume and which speaker is used for output.
    • reroute outgoing calls
      Allows the app to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether.
    • read call log
      This app can read your call history.
    • read your contacts
      Allows the app to read data about your contacts stored on your phone. Apps will also have access to the accounts on your phone that have created contacts. This may include accounts created by apps you have installed. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge.
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • android.permission.READ_PROFILE
    • read sync settings
      Allows the app to read the sync settings for an account. For example, this can determine whether the People app is synced with an account.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • write call log
      Allows the app to modify your phone's call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log.
    • modify your contacts
      Allows the app to modify the data about your contacts stored on your phone. This permission allows apps to delete contact data.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
    • toggle sync on and off
      Allows an app to modify the sync settings for an account. For example, this can be used to enable sync of the People app with an account.
    • org.servalproject.meshms.SEND_MESHMS
    • org.servalproject.rhizome.RECEIVE_FILE

    Download APK 1.8 MiB PGP Signature | Build Log