Coder Social home page Coder Social logo

servalproject / batphone Goto Github PK

View Code? Open in Web Editor NEW
396.0 51.0 157.0 24.9 MB

The Serval Mesh app for Android. EXPERIMENTAL SOFTWARE.

Home Page: http://www.servalproject.org

License: GNU General Public License v3.0

Shell 0.36% HTML 0.38% CSS 0.02% Makefile 0.30% C 82.18% C++ 2.89% Java 7.85% Lex 0.04% Yacc 0.05% Assembly 0.60% Objective-C 3.01% Roff 2.18% Perl 0.16%

batphone's Introduction

Serval Mesh README

Serval Project, March 2014

Serval Mesh (also called “Batphone”) 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, without the need for a SIM card or a commercial mobile telephone carrier. In other words, it lets your Android phone communicate with other Android phones running Serval Mesh within Wi-Fi range.

The latest release of Serval Mesh is available for download on Google Play.

Serval Mesh is free software produced by the Serval Project. 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.

All source code and technical documentation is freely available from the Serval Project's batphone and serval-dna Git repositories on GitHub.

Warnings

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.

The Serval Mesh "Connect" screen allows you to connect to other Serval Mesh devices that provide their own access points. 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, or if you have a mobile data plan, may cost you money.

On the Serval Mesh "Connect" screen, connecting to any network marked "HotSpot" will put your device's Wi-Fi into Access Point mode. This will give nearby devices access to your mobile data plan, and COULD COST YOU MONEY.

On the Serval Mesh "Connect" screen, connecting to any network marked "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, 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, or if you have a mobile data plan, may cost you money.

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.

Documentation

  • CURRENT-RELEASE.md Release notes for the current release.

  • INSTALL.md Instructions for building the Android APK from the source code and installing manually.

  • DEVELOP.md Tips for contributing to the software

  • PRIVACY.md Privacy policy.

  • doc Technical documentation, including past release notes.

  • CREDITS.md Individuals and organisations who have contributed to the software.

  • Serval Wiki contains helpful information for developers and users.

  • GitHub Issues Tracking of bug reports and tasks. Please see the wiki pages on reporting bugs and managing issues before adding any new issues.


Copyright 2014 Serval Project Inc.
CC-BY-4.0 This document is available under the Creative Commons Attribution 4.0 International licence.

batphone's People

Contributors

blucalculator avatar brendon-ng avatar brendonski avatar btom avatar danielo avatar dingooz avatar felixb avatar gardners avatar herrlado avatar klkblake avatar lakeman avatar quixotique avatar rbochet avatar rom1v avatar swapnapalaniswamy avatar techxplorer avatar thomas-giraud avatar thomas-pi avatar timelady avatar xim737 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

batphone's Issues

Icon display consistency

Some icons are rendered with aliasing, some are aligned on pixel boundaries. Some buttons have text in the image.
We must be careful that all icons are consistently rendered and that all text can be easily translated.

New Rhizome needs to support the existing APIs

The new Rhizome needs to support the existing Intent based APIs

  • org.servalproject.rhizome.ADD_FILE
  • org.servalproject.rhizome.RECIEVE_FILE

Mantis severity: block
Mantis priority: high
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: always

These APIs are used by third party applications currently under development including Serval Maps

MeshMS Rhizome message log processed in reverse

In the current version of the Rhizome Message Log processing code new messages are processed starting at the end of the file. In this way messages are processed in the reverse order to what they were originally sent.

This may cause issues with processes and programs that expect to receive messages in the order in which they were sent.

Mantis severity: major
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: always
To reproduce:

Send three messages to the same device and examine how they are received by the device and the order in which org.servalproject.meshms.RECEIVE_MESHMS intents are sent.

Unassigned file types being shown as Serval mime types

Cyanogen mod has exposed this, as normal file manager does not show system and other hidden files.
Serval is being default mime type handler, with serval logo showing up as default type.

Mantis severity: major
Mantis priority: high
Mantis project: UI/UX
Product version: 0.09
Target version: 0.09
Can reproduce: always

Query Rhizome for Existence of a file

The Serval Maps application transfers photos associated with Points of Interest (POIs) separately to the data that defines the POI.

Therefore it is possible that Serval Maps believes that a photo should be available for the user to view but it isn't.

It would be nice to be able to poll Rhizome to say something like:

"is file with name 'x'" in the database.

Mantis severity: feature
Mantis priority: normal
Mantis project: Core Project
Product version: 0.10
Target version: 0.10
Can reproduce: always

Install process needs to kill bin/dna and bin/asterisk, even though they are not part of shiny

... because they could be there from a previous version.
Also note that UIDs may change if uninstalled and reinstalled, but could possibly leave the process hanging around.
Do we make servald an android service somehow?

Mantis severity: block
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Fixed in version: 0.09 Shiny
Related to: #23 reinstallation can get stuck if dna/asterisk already running
Can reproduce: always

ServalID (SID) on Contacts

The + button for contacts found on the Mesh adds details and the SID. The SID is used to establish that contacts and provide some security for more information see the website. We also need to look at the settings and make sure that is available in the Settings menu as well. I will write the help file explaining this. (See Issue #54)

Market place bug report - OutOfMemory in preparation wizard

java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:200)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1027)
Caused by: java.lang.OutOfMemoryError: (Heap Size=27847KB, Allocated=11153KB, Bitmap Size=139KB)
at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:95)
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:153)
at java.lang.StringBuilder.append(StringBuilder.java:217)
at org.servalproject.system.CoreTask.internalRunCommand(CoreTask.java:265)
at org.servalproject.system.CoreTask.runCommandForOutput(CoreTask.java:304)
at org.servalproject.system.WifiMode.iwstatus(WifiMode.java:49)
at org.servalproject.system.WifiMode.getWiFiMode(WifiMode.java:111)
at org.servalproject.system.WiFiRadio.switchWiFiMode(WiFiRadio.java:824)
at org.servalproject.system.WiFiRadio.setWiFiMode(WiFiRadio.java:382)
at org.servalproject.PreparationWizard$PreparationTask.testSupport(PreparationWizard.java:285)
at org.servalproject.PreparationWizard$PreparationTask.doInBackground(PreparationWizard.java:402)
at org.servalproject.PreparationWizard$PreparationTask.doInBackground(PreparationWizard.java:227)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
... 4 more

Mantis severity: major
Mantis priority: normal
Mantis project: Core Project
Product version: 0.07
Can reproduce: have not tried

Market place bug report - review if still present in current code

Implement "Be Right Back" (BRB) messages when about to duty-cycle WiFi Radio

We have plans to duty cycle the WiFi radio to save power, especially when there are no peers available.

However, we could also duty cycle the radio when there are peers, but nothing much is happening.

In these cases it would be nice to be able to tell the peers that "I'll Be Right Back in (say) 27 seconds", so that the mesh can use that information helpfully.

See also Issue #19 for more on duty-cycling.

Mantis severity: feature
Mantis priority: normal
Mantis project: Core Project
Related to: #19 Duty-Cycle WiFi when no mesh peers present
Can reproduce: N/A

Serval Maps Files need to be surpressed from the Rhizome Find Shared Files activity

The files can be identified by looking for the following extensions:

.smapp
.smapl

And by looking for the following prefix
smaps-photo-

Mantis severity: minor
Mantis priority: high
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.10
Can reproduce: always
To reproduce:

Run Serval Maps for a while and watch the files appear in the Find Shared Files activity

Message thread doesn't insert new items correctly

When a message arrives while the message thread is open, or when sending a new message. The display of the new message doesn't clearly indicate who wrote it.
Closing and re-opening the view does display correctly.

Market place bug report - NPE in WifiRadio.java

java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.wifi.WIFI_AP_STATE_CHANGED flg=0x10000000 (has extras) } in org.servalproject.system.WiFiRadio$1@40584160
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:765)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4385)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at org.servalproject.system.WiFiRadio.updateIntent(WiFiRadio.java:115)
at org.servalproject.system.WiFiRadio.modeChanged(WiFiRadio.java:152)
at org.servalproject.system.WiFiRadio.checkWifiMode(WiFiRadio.java:165)
at org.servalproject.system.WiFiRadio.access$600(WiFiRadio.java:55)
at org.servalproject.system.WiFiRadio$1.onReceive(WiFiRadio.java:251)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:748)

Mantis severity: major
Mantis priority: normal
Mantis project: Core Project
Product version: 0.07
Can reproduce: have not tried

Market place bug report - review to check if bug still present.

Instrumentation of Batphone to assist field diagnosis

We need to be able to easily allow a user to collect information such as:

  • the output of batmand -cd1
  • the output of logcat (possibly filtered for batphone related tags?)
  • output of tcpdump (including packet bodies?)

and anything else we might need to gather so that we can figure out what is going on with problems that people report. It would be nice to have a way to automatically upload this data as well, or encrypt it and offer it via Rhizome so that it can be easily collected to a central point during a test.

Mantis severity: major
Mantis priority: high
Mantis project: Core Project
Can reproduce: N/A

ServalDMonitor must restart servald

When servald segfaults, a bunch of functionality stops working with little or no information given to the user.
ServalDMonitor must restart servald if connecting fails. And if that doesn't work, we must inform the user in some fashion.

File Detail Menu should have an Open and Save button.

Right now, the File Detail menu will let me save an incoming image. And then it will let me open it. But as a user, I initially thought there was no way to open the file. Because I cared about looking at the picture rather than saving it, I was stumped as to how to proceed. I would have liked to have seen a button that both saves and opens at once and gives me a clue.

Also, the semantics of "Save" are a bit unclear. The pic exists on everybody's phone, and it is persistent. It is, in a sense, saved. Saving again means copying to the sd card and making it available to non-serval Android. But that was somewhat confusing until somebody explained it to me. I'm not sure what the solution is here, but I suspect using a term other than "save" might help.

Implement auto update feature on Rhizome

rbochet reported:

Implement a feature that allows to auto update Rhizome and Batphones APK, and that keeps history of the old APK to roll back if something is wrong.

Mantis severity: feature
Mantis priority: normal
Mantis project: Installation & Configuration
Mantis tags: auto install****rhizome
Can reproduce: N/A

Wizard additions and enhancements

Explain how the phone number screen is actually creating a Serval account (ie it allows you to store your Serval contacts on your phone). This is how Serval identifies your phone. Jeremy will add showing the initially generated Serval ID (SID) to the Wizard at that point. I will write the explanation screen(s): something like: “when you create your Serval account a key or ID is generated that is unique to you” plus information about the phone number (pick anything, including your ‘regular’ carrier assigned number), and how it is tied to the SID. These will also be available also via Help screen. I will write the help file explaining this. Also see Issue #63

After a restart Serval is not running, then will not progress from "starting" message

Friday 1/6/12 afternoons apk

First 4 out of 5 phones just stopped at the "Starting" message after a reboot.
The 5th phone has suffered from some weird thing where it sits in client mode and wont change(for the last 2 apks installed), It started and went into adhoc then back to client, It lists 4 peers but only shows sids for them.
The other 4 includes the 8150 which would not complete the initial install but did after the reboot. In the action bar the 8150 lists 5 phones.
The irritating 5th phone also shows 5 phones in the action bar and has allowed me to change it to adhoc now.
Peer list on all 5 phones shows the other 4, no action bar notification for the 3 other phones

"Unable to place a call at this time" message is as close to happy as they all come. Ah! the 5th phone shows the calling screen but then goes to call ended.
No one rings, me.

Mantis severity: major
Mantis priority: immediate
Mantis project: UI/UX
Product version: 0.09
Can reproduce: always
To reproduce:

As above.

Update the french translation files

rbochet reported:

The french translation is not up to date in the APK on the dev site.

Mantis severity: text
Mantis priority: low
Mantis project: Internationalisation / Translation
Fixed in version: 0.07
Mantis tags: translation
Can reproduce: always

reinstallation can get stuck if dna/asterisk already running

sits on unpacking for ever, trying to kill these processes before root permissions have been gained.
Killing the processes manually seems to unstick it.

Mantis severity: crash
Mantis priority: normal
Mantis project: Core Project
Product version: 0.07
Target version: 0.09 Shiny
Related to: #24 Install process needs to kill bin/dna and bin/asterisk, even though they are not part of shiny
Can reproduce: have not tried

get routing table to neighbors back

Hi,
Im trying to fork batphone and add network features to it. Therefor I need the routing table that was previously written to the kernel (/proc/net/route). Is there a way to get this data?

Peer list omits a known peer

Two phones, both in Ad Hoc mode, both have established routing contact with each other, as the Android logcats reveal:

D/servald (  744): overlay_address.c:225:set_reachable()  35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60 is now reachable via unicast
D/servald (  744): overlay_address.c:213:set_reachable()  35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60 is not reachableI/servald (  744): overlay_route.c:189:get_node()  ADD OVERLAY NODE sid=35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60D/servald (  744): overlay_address.c:219:set_reachable()  35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60 is now reachable directly
I/servald (  744): overlay_route.c:534:overlay_route_recalc_node_metrics()  PEER REACHABLE, sid=35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60
V/PeerListService(  604): Discovered peer sid:35ad709a*

and

I/servald (  716): overlay_route.c:189:get_node()  ADD OVERLAY NODE sid=79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53BD/servald (  716): overlay_address.c:228:set_reachable()  79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B is now reachable via broadcast
D/BatPhone(  570): modeChanged() entered
D/servald (  716): overlay_address.c:219:set_reachable()  79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B is now reachable directly
I/servald (  716): overlay_route.c:534:overlay_route_recalc_node_metrics()  PEER REACHABLE, sid=79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B
V/PeerListService(  570): Discovered peer sid:79828bac*

This is confirmed by running the servald dna lookup * command on each phone:

+ START
+ adb -s 54A51BD473FC shell run-as org.servalproject /data/data/org.servalproject/bin/servald dna lookup ''\''*'\'''
sid://35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60/local/34708095510:34708095510:
sid://79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B/local/65037397440:65037397440:
+ DONE
+ START
+ adb -s 1C1D6733FB87 shell run-as org.servalproject /data/data/org.servalproject/bin/servald dna lookup ''\''*'\'''
sid://79828BAC99F12B12303388161FDC13E0093E8B8D07672A8519354AC895E0C53B/local/65037397440:65037397440:
sid://35AD709AE1F9A57A880561A21B1657C41DE71E9185D2F8843D425070252A9D60/local/34708095510:34708095510:
+ DONE

Yet the peer list screen of phone 1C1D6733FB87 shows only the Broadcast/Everyone entry, while the peer list of phone 54A51BD473FC shows Broadcast/Everyone and 65037397440.

Leaving and re-entering the peer list screens on either phones makes no difference.

Errors about unmounting the partition that the Rhizome database is on

I've noticed in testing another application this afternoon the following messages in logcat

W/Vold    (  152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 9, action 0)
E/ProcessKiller(  152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold    (  152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 8, action 0)
E/ProcessKiller(  152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold    (  152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 7, action 0)
E/ProcessKiller(  152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold    (  152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 6, action 0)
E/ProcessKiller(  152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold    (  152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 5, action 0)
E/ProcessKiller(  152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold    (  152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 4, action 0)
E/ProcessKiller(  152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold    (  152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 3, action 0)
E/ProcessKiller(  152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/Vold    (  152): Failed to unmount /mnt/secure/staging (Device or resource busy, retries 2, action 1)
E/ProcessKiller(  152): Process /data/data/org.servalproject/bin/servald (518) has open file /mnt/secure/staging/serval/rhizome/rhizome.db
W/ProcessKiller(  152): Sending SIGHUP to process 518
I/Vold    (  152): /mnt/secure/staging sucessfully unmounted

Mantis severity: minor
Mantis priority: normal
Mantis project: Core Project
Target version: 0.09 Shiny
Can reproduce: sometimes

Rhizome makes temporary files in the root of the SD Card

In testing Serval Maps and the new Rhizome functionality I'm seeing files successfully transfer between phones. However I also see, what I assume, are temp files being created and not deleted.

All files appear in the root of the sd card.

One type has file names like this:

012FD54F4480592C5D76873AB9DD5C952A0CA24A40730BA9F78ED9E0BB3EF03A44205AB15C2E98E17B06A1E5EC5B34066B8FF3E101DAE4FC7C6EA4816A3429731113190589.tmp
053300309DD6232023EA48B1113A17B67653A34A664ACEDCEE976E3134C9114249CE739E9CFBDBD0612A08EF910D6C7622DACA0045CEFC7A58DA08CF2A1A7EA5-845644327.tmp
064B1BD03008098965ACA0A87D197F0BF4B36032B94AAEECE0B543505CDCB5C90944125C0FBFA8E9B58695ABF3146BB564880082ED9C5AB2227CC4AF677982C8474309321.tmp
070F0015AD14C0328C862F7DF03FD1332B7D8F76FA28424F9CDE35E73CEE998E528570A5A688658CA3C3AFDC905B4A473E6C6024BD5C51F996D31EBFD62E4C33-1909722391.tmp
0D921A7096D0D3CE3116A097681A5BFC8D1D259D9B887177E590CC0788C75D943413EA9219A3AE41393FDF72FCF923E1B27DF6D7D733EB07F122F27CAF3E17E3-132075203.tmp
117B4130EEF0AFF8B8BFD1385D514DAAD506C68F4DF99FA2CB68403AAB61F9DDB0819487F62732D1D3B8E54BF8BDD2546700ACD1894ACB63C3DB0A5215468F5C1363952759.tmp

The other has file names like this:

manifest-1150949943.temp
manifest-1160076647.temp
manifest-1206884673.temp
manifest-1218757694.temp
manifest-1259879330.temp
manifest-1278279403.temp
manifest-1340679888.temp
manifest-1372272505.temp
manifest-1378203035.temp
manifest-1381780669.temp
manifest-1403840005.temp
manifest-1404253757.temp
manifest-1406239322.temp
manifest-1412107434.temp
manifest-1419227195.temp
manifest-1452616627.temp
manifest-1455361299.temp
manifest-1455645357.temp
manifest-1463885427.temp

Mantis severity: major
Mantis priority: urgent
Mantis project: Core Project
Target version: 0.09 Shiny
Can reproduce: always
To reproduce:

Use the code from the Serval Mesh code shinyintegration branch created this morning
Use the code from the Serval Maps development branch updated this afternoon
Use the mock locations feature of Serval Maps to start creating and transferring files between devices

Rhizome database space patrol

The Rhizome database currently grows without limit. The following features must be implemented:

  • remove old payloads when a manifest is updated with a new one
  • evict old content to stay within size limit setting

Mantis severity: minor
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: always

ServalID and Changing Number & Name

Set Number in the menu needs to be renamed, and it also needs to be able to be accessed from the Settings menu. The information contained underneath all the other buttons in the menu access the same screen, but this information need to be converted to a different type of button, with explanation and formatting. The screen Set Number accesses is the last screen of the wizard. We need to make it easier for people to be able access this to change their personal information and view their Serval ID. I will write the help file explaining the action. Related to Issues #54 & #55.

Switch ON/OFF button is OFF but servald has started

When the Batphone app is started, the Switch ON/OFF button is in the OFF state (with caption "Switch ON") but the log and process listing shows that servald is running.

Mantis severity: major
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: sometimes
To reproduce:

This occurs fairly reliably after a reinstall and start application using adb.

During app, startup the following errors appear in the log:

W/System.err: java.lang.ClassNotFoundException: WifiP2pManager in loader dalvik.system.PathClassLoader[/data/app/org.servalproject-2.apk]
W/System.err: WifiP2pManager.enableP2p NOT FOUND
W/System.err: WifiP2pManager.disableP2p NOT FOUND
V/Batphone: Cannot control Wifi-Direct.

Manually killing (HUP) the servald process then pressing the ON button appears to resolve the problem: the servald process gets started and the button goes to "ON" state.

User specified files names when sharing files via Rhizome

From Paul:

it would be nice to be able to set the name of a file when sharing via rhizome.

this would be helpful for photos and also for APK updates on the mesh,
so that they don't end up with identical or random names.

Mantis severity: feature
Mantis priority: normal
Mantis project: Core Project
Product version: 0.10
Target version: 0.10
Can reproduce: N/A

display information being sent back to project for review

Statistics and metrics being sent back to the project need to be able to be reviewed by the user.

Mantis severity: major
Mantis priority: low
Mantis project: UI/UX
Related to: mantis:0000098 preparing information sent back to project for display
Related to: servalproject/serval-dna#38 Anonymous collection of statistics
Related to: mantis:0000090 UI - Anonymous collection of statistics, and the notification of same
Can reproduce: have not tried

Jeremy to work on back end.

Rhizome file list does not update after Unshare

Version: 0.90-beta-15-ga399993

After unsharing a file using the Unshare button on the File Detail dialog window, the file list screen still shows the unshared file. In order to refresh the list, the user must use the Back control to exit the file list, and re-open it with the Find button.

Duty-Cycle WiFi when no mesh peers present

When the mesh is running it runs all the time, and while phones like the U8150 can run the mesh for about 10 - 11 hours, this is still a fairly short battery life compared to a regular cellular network.
One easy way to extend the battery life, is to duty cycle the WiFi radio when there are no peers visible.

For example, if no peers have been detected after, say, 5 or 10 seconds, then the radio can be turned off for 5 - 30 seconds. The interval turned off should be random in length to prevent anti-synchronisation where two peers are in range but never have their radios on at the same time.

Perhaps the best way to turn the radio off quickly on all phones is release the PartialWakeLock after setting an alarm to wake the phone after the 5 - 30 second interval. This would also mean that whenever the phone is awake, the mesh is running, which is probably sensible from a usability perspective.

Mantis severity: feature
Mantis priority: high
Mantis project: Core Project
Related to: #20 Implement "Be Right Back" (BRB) messages when about to duty-cycle WiFi Radio
Can reproduce: N/A

Rhizome list does not update on new content

The code is all there, it used to work.
I have confirmed that the ACTION_RECEIVE_FILE intent is being sent to announce the file arrival, but has not been received by the list activity's broadcast receiver. This is probably a permissions issue.

NullPointerException in ServalDMonitor near end of wizard

The symptom is that near the end of the wizard, after pressing OK to accept a phone number, the Android "Application has crashed" dialog pops up, however the Serval app continues to run, and soon afterwards the Serval icon appears in the top bar, and the Serval app is still available.

The cause appears to be that 'socket' can sometimes be null at the line

socket.setSoTimeout(60000);

This is caused shortly after a 'Connection Refused' exception occurs at line 78, which is presumably caused because servald is no longer listening to the socket, which is caused because the servald 'stop' command now actually stops the servald process (but didn't before), and there is a race between the server re-starting and ServalDMonitor.

Mantis severity: major
Mantis priority: high
Mantis project: Core Project
Target version: 0.09 Shiny
Can reproduce: random
To reproduce:

Install from scratch and start
Go through the startup questions - accept license and root permission
Go through three wizard screens

The error occurs about 25%-50% of the time

Rootless operation by default

The Batphone app should be able to function perfectly well on a non-rooted Android device.

The set-up wizard should not, by default, probe for root, except on a special edition that we publish on the Google Play called “Serval Mesh with root” or something even more suggestive. The only difference between the “rootful” edition and the tame edition will be the setting of a single configuration item or final boolean somewhere, and this boolean must be configurable on the Serval Settings activity, so that users can set Batphone to probe for root by default on start-up if they wish.

Regardless of what the set-up wizard does, there must also be a Serval Settings button for probing for root, so that users with the tame app can still take advantage of it, if present.

This change will mean we can tone down some of the warnings and disclaimers that are built into the Batphone app (and the release notes), although we will still need to warn about normal Serval operation and carry the usual disclaimers.

Upgrades from 0.07 - 0.09 fail to stop old services

When upgrading to 0.09 from 0.07 the Asterisk and DNA processes are not killed as expected.

Mantis severity: major
Mantis priority: urgent
Mantis project: Core Project
Product version: 0.09 Shiny
Target version: 0.09 Shiny
Can reproduce: have not tried
To reproduce:

  • Install 0.07 on a phone
  • Start Serval Mesh Software
  • Upgrade to 0.09 without stoping existing Serval Mesh software
  • Check to see if the processes have been killed as expected

Race condition in AudioPlayer

AudioPlayer.cleanup() is called both from the playback thread when it is shutting down, and from the AudioManager when it gets the CallEnded message from servald. The playback thread will throw an NullPointerException if it attempts to shutdown when cleanup() has already been called.

servald doesn't start if there is no sdcard

Serval Mesh fails with force quit if there is no sdcard installed.
In this situation, we should use local phone storage for the serval instance path, which allow it to work, but at the risk of rhizome filling up internal storage on the phone.

Entering a phone number via dial pad

The screen that shows results when you enter a phone number (as opposed to using a contact) needs to be reformatted - it is a screen that needs some work in look consistency. I will format.

Solve the reachability of a special phone number

rbochet reported:

When the phone number

"3#14159"

is set, it is impossible to reach it.

Mantis severity: minor
Mantis priority: normal
Mantis project: Installation & Configuration
Can reproduce: N/A
To reproduce:

Set the phone number 3#14159

Try to call it from another cell phone.

Release on F-droid

F-droid.org operates a repo for apks that it builds from source itself. The F-droid client app informs users of updates. I would like to see the app on there, but am wondering if we should go with 0.90 or wait until 1.0. F-droid client app can support betas too, if you want to use it that way. If you want to distribute your own apks from the app it is possible to set up your own repo.

Serval Mesh attempts to use sqlite databases on SD card before it is ready

I have seen, occasionally, errors in the log relating to the Serval Mesh software, in particular the messaging component, trying to access the SQLite database on the SD card before the SD card is actually ready.

Mantis severity: major
Mantis priority: high
Mantis project: Core Project
Can reproduce: sometimes
To reproduce:

Reboot the phone and watch the output from logcat from the earliest moment possible.

Main screen "call" option works even if mesh is turned off

Should prompt user to ask if they would like mesh turned on.

Mantis severity: minor
Mantis priority: normal
Mantis project: Core Project
Product version: 0.09 Shiny
Can reproduce: always
To reproduce:

Turn mesh off. Press "Call" button. Observe displays dialler.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.