Giter VIP home page Giter VIP logo

android's People

Contributors

benhylau avatar kpcyrd avatar prurigro avatar sssemil 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

android's Issues

Cjdns-enabled apps

The cjdns-android app, when it is eventually built, manages the cjdns service and facilitates peering. Running that alone should allow your browser to reach services offered by your peers, and also reach Hyperboria if at least one node in your network is able to reach it. This is however, just a basic use case. The mobile nature of a cjdns node running on a phone comes with challenges, like transient peers as phones go on & off, move in & out of range, etc. but also opens up use cases that aren't practical on stationary nodes. Cjdns-enabled apps can be built to allow such use cases, like an encrypted messaging app across an ad-hoc network. Think FireChat but secure, and requires the cjdns service to be running. The cjdns app will allow other apps to silently kickstart the cjdns service on the device.

This issue is created to discuss:

  • Mobile-relevant use cases
  • Ideas for cjdns-enabled apps
  • How to implement them, whether the current design of the cjdns app can facilitate that use case, and whether the Android platform will support it

Feature Request: QR peering

Trying to type in the pubkey and password manually sounds difficult, and there aren't a lot of secure copy-paste options. Maybe this project could be useful for the desktop side of things?

Encrypted storage of credentials and everything else

Almost all persistent data in this app need to be stored encrypted. We cannot rely on device-level encryption because it's not always enabled, and only enabled by default on Lollipop+. So we need to implement our own, which unfortunately would require the user to supply a PIN every time we start the app. The PIN itself, must not be stored on the device at all.

I am debating whether encryption should be optional or required. I am leaning towards making it a requirement, because the app holds not only this node's credentials, but also those of your peers. Though this PIN is kind of redundant when device-level encryption is used.

If you are feeling particularly adventurous, you can investigate whether we can implement something that works across devices using private APIs without requiring a PIN from the user. But then it still would require the user to have a device-level PIN set. So my suggestion is do the whole thing custom with NaCl, which needs to be in the app anyways because of wrbt peering.

Credentials[Q]

What are those credentials(Alice, Bob...)? And why they are uneditable/unremovable?

APK?

Hi, might someone with Android experience compile an APK for a stable version?

This would benefit the project by making it easier for people to install the app.

I just found the meshnet project after someone posted about it on https://www.reddit.com/r/todayilearned/

Perhaps a build script could be written. I don't have much experience with Java / Android which is why I am not simply doing this and submitting a pull request.

Execution of cjdroute is not yet supported for your API level

When I try to on toggle on Android 7, app is closing and get error:
FATAL EXCEPTION: main
Process: berlin.meshnet.cjdns, PID: 15387
java.lang.RuntimeException: Unable to create service berlin.meshnet.cjdns.CjdnsService: java.lang.UnsupportedOperationException: Execution of cjdroute is not yet supported for your API level
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3544)
at android.app.ActivityThread.-wrap6(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1732)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: java.lang.UnsupportedOperationException: Execution of cjdroute is not yet supported for your API level
at berlin.meshnet.cjdns.Cjdroute$Default.execute(Cjdroute.java:110)
at berlin.meshnet.cjdns.CjdnsService.onCreate(CjdnsService.java:81)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3534)
at android.app.ActivityThread.-wrap6(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1732) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6776) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 

Exchanging peering credentials over insecure channel

We have discussed two ways for Android devices to exchange credentials, i.e. QR and NFC. Both these methods are meant for devices to peer while in close proximity, and require that both have the cjdns-android app installed. Yes, the QR can be distributed across distances, but that's the same as broadcasting the credentials to the world. So I am proposing a more general way to securely exchange peering credentials over distances, and requires only the initiating party to have the app to begin with.

  1. The initiating party will click some button from the app to initiate peering with a friend. Something like this URL gets copied to the clipboard. She can send it to a friend via email, text message, whatever.

    http://special.clearnet.server
      ?type=peerRequest
      &protocol=udpInterface
      &pubKey=thePublicKeyOfInitiatingDevice
    
  2. The friend receives it and clicks the link. If he has cjdns-android installed1, the system will ask if he wants to open the link with the cjdns app or browser. Upon selecting the cjdns app, the app will ask if he wants to accept this peer request. Upon accepting, the app generates a new set of credentials for the requested protocol, which gets encrypted with the public key from the query parameters, and the following URL gets copied to his device clipboard. He then emails it back.

    http://special.clearnet.server
      ?type=peerResponse
      &credentials=credentialsEncryptedWithHerPublicKey
    
  3. She receives the response URL, clicks it and selects the cjdns app to open, and the app decrypts with her private key and adds it to cjdroute.conf, restarts the service.

1In the case where the friend does not already have the app, the URL will open in browser, which we set up special.clearnet.server to respond to all requests with market://details?id=com.cjdns.app.package.name, so all potentially new Hyperboreans are directed to the app in Google Play.

What do you guys think? There are some uncertainties around what protocols can be used to peer between two Android devices, and whether in Step 2, he can accept by using a set of known credentials that the app knows about, such as his VPS.

Not working

This thing is not working at all(tried on One PlusOne with Android 5.1.1 and on emulator with Android 5.1). It's not creating any tun0 interface and it's impossible to connect to any hyperboria sites(even after manually adding public nodes to cjdroute.conf).

P.S. it creates tun0 interface if you run it manually from terminal emulator or adb as root.

Manifest should specify a minimum API level

In file AndroidManifest.xml

Manifest should specify a minimum API level with <uses-sdk android:minSdkVersion="?" />; if it really supports all versions of Android set it to 1.

QR code for peering

We have a standardized format to request for peering and distribute credentials. It's work-in-progress, but they will look something like this.

Peering Request

scheme://host/?type=peer&interface=udp&link=overlay&pk=wrbtPk&metadata=metadataOfAlice&cjdnsVersion=X&wrbtVersion=Y

Credentials

scheme://host/?type=credentials&interface=udp&link=overlay&pk=wrbtPk&message=encodedMessage&cjdnsVersion=X&wrbtVersion=Y

This text should be sent through one of the following methods.

cjdns2

All of them are easy to do, except QR code requires more work. Probably use zxing to encode and decode between text and QR.

build error

I keep getting this error when compiling:

    Searching for SECCOMP
Total build time: 43697ms.
/home/kyler/code/android-cjdns/cjdns/node_build/builder.js:485
        if (err) { throw err; }
                   ^

Error: gcc -c -x cpp-output -o build_linux/memory_Allocator_c.o -std=c99 -Wall -Wextra -Werror    -Wno-pointer-sign -pedantic -D linux=1 -D CJD_PACKAGE_VERSION="cjdns-0.3-3823-g7f5caec" -Wno-unused-parameter -D Log_DEBUG -g -D NumberCompress_TYPE=v3x5x8 -D Identity_CHECK=1 -D Allocator_USE_CANARIES=1 -D PARANOIA=1 -DHAS_ETH_INTERFACE=1 -fPIE -Dandroid=1 -fno-stack-protector -fstack-protector-all -Wstack-protector -O3 build_linux/memory_Allocator_c.o.i

memory/Allocator.c: In function 'Allocator_new':
memory/Allocator.c:790:51: error: integer constant is too large for its type [-Werror]
         .canary = (unsigned long) Constant_rand64(),
                                               ^
memory/Allocator.c:791:55: error: integer constant is too large for its type [-Werror]
         .nextCanary = (unsigned long) Constant_rand64(),
                                                   ^
cc1: all warnings being treated as errors

    at error (/home/kyler/code/android-cjdns/cjdns/node_build/builder.js:53:15)
   at /home/kyler/code/android-cjdns/cjdns/node_build/builder.js:122:22
    at /home/kyler/code/android-cjdns/cjdns/node_build/builder.js:92:13
    at ChildProcess.<anonymous> (/home/kyler/code/android-cjdns/cjdns/tools/lib/Semaphore.js:7:30)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:852:16)
at Socket.<anonymous> (internal/child_process.js:323:11)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)

real    0m45.007s
user    1m27.170s
sys 0m6.970s
cp: cannot stat 'cjdroute': No such file or directory
Copying armeabi-v7a binary failed, non zero status returned - 1

Please send help.

P.S. My new site is cjdns compatible.
h.glitchedpixels.com

Implement peering protocol

Android implementation of wrbt to facilitate peering. It defines standardized peering requests and credential responses to be communicated via any channel (e.g. QR, NFC, email, text message, Twitter, etc.) that is recognizable across platforms (i.e. desktop vs. Android).

Investigate peering over bluetooth

@benhylau mentioned on IRC the problem that to peer over Bluetooth, we'd have to pair the two devices, which IMO is an unnessecary complication.

So I'd like to propose either using Gilga or implementing a similar protocol to share creds over Bluetooth.

FileNotFoundException: armeabi-v7a/cjdroute-init

Where can I find cjdroute-init? @benhylau

E/CjdnsVpnService: Failed to initialize TUN interface
java.io.FileNotFoundException: armeabi-v7a/cjdroute-init
at android.content.res.AssetManager.openAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:331)
at android.content.res.AssetManager.open(AssetManager.java:305)
at berlin.meshnet.cjdns.CjdrouteConf.copyExecutable(CjdrouteConf.java:293)
at berlin.meshnet.cjdns.CjdrouteConf.access$100(CjdrouteConf.java:31)
at berlin.meshnet.cjdns.CjdrouteConf$1.call(CjdrouteConf.java:107)
at berlin.meshnet.cjdns.CjdrouteConf$1.call(CjdrouteConf.java:90)
at rx.Observable$1.call(Observable.java:144)
at rx.Observable$1.call(Observable.java:136)
...

It appears that the project depends on dead links.

The following is the output of my compilation. It appears that there are a few dead links here... Or more accurately, a LOT of dead links...

happysmash27@x86_64-Pig ~/android $ ./gradlew installDebug

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all dependencies for configuration ':_debugCompile'.
   > Could not find com.android.support:support-v4:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/support-v4/23.2.0/support-v4-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/support-v4/23.2.0/support-v4-23.2.0.jar
         https://jitpack.io/com/android/support/support-v4/23.2.0/support-v4-23.2.0.pom
         https://jitpack.io/com/android/support/support-v4/23.2.0/support-v4-23.2.0.jar
     Required by:
         :android:unspecified
   > Could not find com.android.support:appcompat-v7:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.jar
         https://jitpack.io/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.pom
         https://jitpack.io/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.jar
     Required by:
         :android:unspecified
   > Could not find com.android.support:cardview-v7:23.1.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/cardview-v7/23.1.1/cardview-v7-23.1.1.pom
         https://jcenter.bintray.com/com/android/support/cardview-v7/23.1.1/cardview-v7-23.1.1.jar
         https://jitpack.io/com/android/support/cardview-v7/23.1.1/cardview-v7-23.1.1.pom
         https://jitpack.io/com/android/support/cardview-v7/23.1.1/cardview-v7-23.1.1.jar
     Required by:
         :android:unspecified
   > Could not find com.android.support:recyclerview-v7:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.jar
         https://jitpack.io/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.pom
         https://jitpack.io/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.jar
     Required by:
         :android:unspecified
   > Could not find com.android.support:preference-v7:23.1.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/preference-v7/23.1.1/preference-v7-23.1.1.pom
         https://jcenter.bintray.com/com/android/support/preference-v7/23.1.1/preference-v7-23.1.1.jar
         https://jitpack.io/com/android/support/preference-v7/23.1.1/preference-v7-23.1.1.pom
         https://jitpack.io/com/android/support/preference-v7/23.1.1/preference-v7-23.1.1.jar
     Required by:
         :android:unspecified
   > Could not find com.android.support:preference-v14:23.1.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/preference-v14/23.1.1/preference-v14-23.1.1.pom
         https://jcenter.bintray.com/com/android/support/preference-v14/23.1.1/preference-v14-23.1.1.jar
         https://jitpack.io/com/android/support/preference-v14/23.1.1/preference-v14-23.1.1.pom
         https://jitpack.io/com/android/support/preference-v14/23.1.1/preference-v14-23.1.1.jar
     Required by:
         :android:unspecified
   > Could not find com.android.support:support-v4:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/support-v4/23.2.0/support-v4-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/support-v4/23.2.0/support-v4-23.2.0.jar
         https://jitpack.io/com/android/support/support-v4/23.2.0/support-v4-23.2.0.pom
         https://jitpack.io/com/android/support/support-v4/23.2.0/support-v4-23.2.0.jar
     Required by:
         :android:unspecified > com.github.afollestad.material-dialogs:core:0.8.5.3
   > Could not find com.android.support:appcompat-v7:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.jar
         https://jitpack.io/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.pom
         https://jitpack.io/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.jar
     Required by:
         :android:unspecified > com.github.afollestad.material-dialogs:core:0.8.5.3
   > Could not find com.android.support:support-annotations:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.jar
         https://jitpack.io/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.pom
         https://jitpack.io/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.jar
     Required by:
         :android:unspecified > com.github.afollestad.material-dialogs:core:0.8.5.3
   > Could not find com.android.support:recyclerview-v7:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.jar
         https://jitpack.io/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.pom
         https://jitpack.io/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.jar
     Required by:
         :android:unspecified > com.github.afollestad.material-dialogs:core:0.8.5.3
   > Could not find com.android.support:recyclerview-v7:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.jar
         https://jitpack.io/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.pom
         https://jitpack.io/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.jar
     Required by:
         :android:unspecified > com.melnykov:floatingactionbutton:1.1.0
   > Could not find com.android.support:support-annotations:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.jar
         https://jitpack.io/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.pom
         https://jitpack.io/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.jar
     Required by:
         :android:unspecified > com.melnykov:floatingactionbutton:1.1.0
   > Could not find com.android.support:recyclerview-v7:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.jar
         https://jitpack.io/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.pom
         https://jitpack.io/com/android/support/recyclerview-v7/23.2.0/recyclerview-v7-23.2.0.jar
     Required by:
         :android:unspecified > com.github.brnunes:swipeablerecyclerview:1.0.1
   > Could not find com.android.support:appcompat-v7:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.jar
         https://jitpack.io/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.pom
         https://jitpack.io/com/android/support/appcompat-v7/23.2.0/appcompat-v7-23.2.0.jar
     Required by:
         :android:unspecified > com.github.afollestad.material-dialogs:core:0.8.5.3 > me.zhanghai.android.materialprogressbar:library:1.1.4
   > Could not find com.android.support:support-annotations:23.2.0.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.pom
         https://jcenter.bintray.com/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.jar
         https://jitpack.io/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.pom
         https://jitpack.io/com/android/support/support-annotations/23.2.0/support-annotations-23.2.0.jar
     Required by:
         :android:unspecified > com.github.afollestad.material-dialogs:core:0.8.5.3 > me.zhanghai.android.materialprogressbar:library:1.1.4

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 16.235 secs

Can't build binaries

This error reroduces in develop branch:

root@gem-01:~/android# ./install_debug
./install_debug: 3: ./install_debug: ndk-build: not found
Starting Build
Settings evaluated using settings file '/master/settings.gradle'.
Projects loaded. Root project using build file '/root/android/build.gradle'.
Included projects: [root project 'android']
Evaluating root project 'android' using build file '/root/android/build.gradle'.
Creating configuration compile
Creating configuration apk
Creating configuration provided
Creating configuration wearApp
Creating configuration annotationProcessor
Creating configuration androidTestCompile
Creating configuration androidTestApk
Creating configuration androidTestProvided
Creating configuration androidTestWearApp
Creating configuration androidTestAnnotationProcessor
Creating configuration testCompile
Creating configuration testApk
Creating configuration testProvided
Creating configuration testWearApp
Creating configuration testAnnotationProcessor
Creating configuration debugCompile
Creating configuration debugApk
Creating configuration debugProvided
Creating configuration debugWearApp
Creating configuration debugAnnotationProcessor
Creating configuration testDebugCompile
Creating configuration testDebugApk
Creating configuration testDebugProvided
Creating configuration testDebugWearApp
Creating configuration testDebugAnnotationProcessor
Creating configuration releaseCompile
Creating configuration releaseApk
Creating configuration releaseProvided
Creating configuration releaseWearApp
Creating configuration releaseAnnotationProcessor
Creating configuration testReleaseCompile
Creating configuration testReleaseApk
Creating configuration testReleaseProvided
Creating configuration testReleaseWearApp
Creating configuration testReleaseAnnotationProcessor
Parsing the SDK, no caching allowed
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-15/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-16/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-17/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-18/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-19/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-21/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-22/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-23/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-24/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_gdk-google-19/package.xml
Parsing /opt/android-sdk-linux/build-tools/28.0.2/package.xml
Parsing /opt/android-sdk-linux/docs/package.xml
Parsing /opt/android-sdk-linux/extras/android/m2repository/package.xml
Parsing /opt/android-sdk-linux/extras/google/auto/package.xml
Parsing /opt/android-sdk-linux/extras/google/google_play_services/package.xml
Parsing /opt/android-sdk-linux/extras/google/instantapps/package.xml
Parsing /opt/android-sdk-linux/extras/google/m2repository/package.xml
Parsing /opt/android-sdk-linux/extras/google/market_apk_expansion/package.xml
Parsing /opt/android-sdk-linux/extras/google/market_licensing/package.xml
Parsing /opt/android-sdk-linux/extras/google/simulators/package.xml
Parsing /opt/android-sdk-linux/extras/google/webdriver/package.xml
Parsing /opt/android-sdk-linux/platform-tools/package.xml
Parsing /opt/android-sdk-linux/platforms/android-10/package.xml
Parsing /opt/android-sdk-linux/platforms/android-11/package.xml
Parsing /opt/android-sdk-linux/platforms/android-12/package.xml
Parsing /opt/android-sdk-linux/platforms/android-13/package.xml
Parsing /opt/android-sdk-linux/platforms/android-14/package.xml
Parsing /opt/android-sdk-linux/platforms/android-15/package.xml
Parsing /opt/android-sdk-linux/platforms/android-16/package.xml
Parsing /opt/android-sdk-linux/platforms/android-17/package.xml
Parsing /opt/android-sdk-linux/platforms/android-18/package.xml
Parsing /opt/android-sdk-linux/platforms/android-19/package.xml
Parsing /opt/android-sdk-linux/platforms/android-20/package.xml
Parsing /opt/android-sdk-linux/platforms/android-21/package.xml
Parsing /opt/android-sdk-linux/platforms/android-22/package.xml
Parsing /opt/android-sdk-linux/platforms/android-23/package.xml
Parsing /opt/android-sdk-linux/platforms/android-24/package.xml
Parsing /opt/android-sdk-linux/platforms/android-25/package.xml
Parsing /opt/android-sdk-linux/platforms/android-26/package.xml
Parsing /opt/android-sdk-linux/platforms/android-27/package.xml
Parsing /opt/android-sdk-linux/platforms/android-28/package.xml
Parsing /opt/android-sdk-linux/platforms/android-7/package.xml
Parsing /opt/android-sdk-linux/platforms/android-8/package.xml
Parsing /opt/android-sdk-linux/platforms/android-9/package.xml
Parsing /opt/android-sdk-linux/tools/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-15/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-16/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-17/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-18/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-19/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-21/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-22/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-23/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-24/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_gdk-google-19/package.xml
Parsing /opt/android-sdk-linux/build-tools/28.0.2/package.xml
Parsing /opt/android-sdk-linux/docs/package.xml
Parsing /opt/android-sdk-linux/extras/android/m2repository/package.xml
Parsing /opt/android-sdk-linux/extras/google/auto/package.xml
Parsing /opt/android-sdk-linux/extras/google/google_play_services/package.xml
Parsing /opt/android-sdk-linux/extras/google/instantapps/package.xml
Parsing /opt/android-sdk-linux/extras/google/m2repository/package.xml
Parsing /opt/android-sdk-linux/extras/google/market_apk_expansion/package.xml
Parsing /opt/android-sdk-linux/extras/google/market_licensing/package.xml
Parsing /opt/android-sdk-linux/extras/google/simulators/package.xml
Parsing /opt/android-sdk-linux/extras/google/webdriver/package.xml
Parsing /opt/android-sdk-linux/platform-tools/package.xml
Parsing /opt/android-sdk-linux/platforms/android-10/package.xml
Parsing /opt/android-sdk-linux/platforms/android-11/package.xml
Parsing /opt/android-sdk-linux/platforms/android-12/package.xml
Parsing /opt/android-sdk-linux/platforms/android-13/package.xml
Parsing /opt/android-sdk-linux/platforms/android-14/package.xml
Parsing /opt/android-sdk-linux/platforms/android-15/package.xml
Parsing /opt/android-sdk-linux/platforms/android-16/package.xml
Parsing /opt/android-sdk-linux/platforms/android-17/package.xml
Parsing /opt/android-sdk-linux/platforms/android-18/package.xml
Parsing /opt/android-sdk-linux/platforms/android-19/package.xml
Parsing /opt/android-sdk-linux/platforms/android-20/package.xml
Parsing /opt/android-sdk-linux/platforms/android-21/package.xml
Parsing /opt/android-sdk-linux/platforms/android-22/package.xml
Parsing /opt/android-sdk-linux/platforms/android-23/package.xml
Parsing /opt/android-sdk-linux/platforms/android-24/package.xml
Parsing /opt/android-sdk-linux/platforms/android-25/package.xml
Parsing /opt/android-sdk-linux/platforms/android-26/package.xml
Parsing /opt/android-sdk-linux/platforms/android-27/package.xml
Parsing /opt/android-sdk-linux/platforms/android-28/package.xml
Parsing /opt/android-sdk-linux/platforms/android-7/package.xml
Parsing /opt/android-sdk-linux/platforms/android-8/package.xml
Parsing /opt/android-sdk-linux/platforms/android-9/package.xml
Parsing /opt/android-sdk-linux/tools/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-15/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-16/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-17/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-18/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-19/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-21/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-22/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-23/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_apis-google-24/package.xml
Parsing /opt/android-sdk-linux/add-ons/addon-google_gdk-google-19/package.xml
Parsing /opt/android-sdk-linux/build-tools/28.0.2/package.xml
Parsing /opt/android-sdk-linux/docs/package.xml
Parsing /opt/android-sdk-linux/extras/android/m2repository/package.xml
Parsing /opt/android-sdk-linux/extras/google/auto/package.xml
Parsing /opt/android-sdk-linux/extras/google/google_play_services/package.xml
Parsing /opt/android-sdk-linux/extras/google/instantapps/package.xml
Parsing /opt/android-sdk-linux/extras/google/m2repository/package.xml
Parsing /opt/android-sdk-linux/extras/google/market_apk_expansion/package.xml
Parsing /opt/android-sdk-linux/extras/google/market_licensing/package.xml
Parsing /opt/android-sdk-linux/extras/google/simulators/package.xml
Parsing /opt/android-sdk-linux/extras/google/webdriver/package.xml
Parsing /opt/android-sdk-linux/platform-tools/package.xml
Parsing /opt/android-sdk-linux/platforms/android-10/package.xml
Parsing /opt/android-sdk-linux/platforms/android-11/package.xml
Parsing /opt/android-sdk-linux/platforms/android-12/package.xml
Parsing /opt/android-sdk-linux/platforms/android-13/package.xml
Parsing /opt/android-sdk-linux/platforms/android-14/package.xml
Parsing /opt/android-sdk-linux/platforms/android-15/package.xml
Parsing /opt/android-sdk-linux/platforms/android-16/package.xml
Parsing /opt/android-sdk-linux/platforms/android-17/package.xml
Parsing /opt/android-sdk-linux/platforms/android-18/package.xml
Parsing /opt/android-sdk-linux/platforms/android-19/package.xml
Parsing /opt/android-sdk-linux/platforms/android-20/package.xml
Parsing /opt/android-sdk-linux/platforms/android-21/package.xml
Parsing /opt/android-sdk-linux/platforms/android-22/package.xml
Parsing /opt/android-sdk-linux/platforms/android-23/package.xml
Parsing /opt/android-sdk-linux/platforms/android-24/package.xml
Parsing /opt/android-sdk-linux/platforms/android-25/package.xml
Parsing /opt/android-sdk-linux/platforms/android-26/package.xml
Parsing /opt/android-sdk-linux/platforms/android-27/package.xml
Parsing /opt/android-sdk-linux/platforms/android-28/package.xml
Parsing /opt/android-sdk-linux/platforms/android-7/package.xml
Parsing /opt/android-sdk-linux/platforms/android-8/package.xml
Parsing /opt/android-sdk-linux/platforms/android-9/package.xml
Parsing /opt/android-sdk-linux/tools/package.xml

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring root project 'android'.

You have not accepted the license agreements of the following SDK components:
[Android SDK Build-Tools 25.0.1].
Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
Alternatively, to learn how to transfer the license agreements from one workstation to another, go to http://d.android.com/r/studio-ui/export-licenses.html

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED

Total time: 14.957 secs
Stopped 0 compiler daemon(s).
root@gem-01:~/android#

ipv6_route.h No Such file or directory

I'm following the instructions and ./android_do returns:
util/platform/netdev/NetPlatform_linux.c:37:30: fatal error: linux/ipv6_route.h: No such file or directory #include <linux/ipv6_route.h>

Is this alive?

What's the status of this project? I'd love to see what can be done, help out, and possibly back this with $$$ if needed as well. We use cjdns where I work, and having access to stuff on Android would be cool.

Get it on F-Droid

It would help a lot if you could get the app on F-Droid (at f-droid.org).

CANNOT LINK EXECUTABLE ... cjdroute: has text relocations

API 23 does not allow TEXTREL:

W/System.err: CANNOT LINK EXECUTABLE "/data/user/0/berlin.meshnet.cjdns/files/cjdroute": /data/data/berlin.meshnet.cjdns/files/cjdroute: has text relocationsCANNOT LINK EXECUTABLE "/data/user/0/berlin.meshnet.cjdns/files/cjdroute": /data/data/berlin.meshnet.cjdns/files/cjdroute: has text relocationsAborted

Reach Hyperboria via Clearnet Overlay

I am not sure what exactly needs to be done to make this happen. But the goal is to reach a Hyperboria-only site from the default browser.

@lgierth @kpcyrd I imagine we'd first need peering creds in cjdroute.conf or some kind of peers.d. Then we can get cjdroute running in the background. The we need to set up a VpnService, right?

Add real-time visualization of peers

On the Me page, we want to show a node graph to represent the all the direct connections to your phone. It gives an idea of how well-connect you are to the mesh network at the moment. Some relevant information may include:

  • Last four bytes of your peer's address as in fc00.org
  • The peering protocol expressed in colour code (e.g. IPTunnel, BT)

I am thinking a WebView loading a local JS implementation like this will do. See discussion on this topic here #16.

Possible need to retrieve runtime permissions

The tun interface never comes online on Oreo (Google Pixel)

05-02 07:22:34.006 15404-16405/? E/CjdnsVpnService: Failed to initialize TUN interface
                                                    java.lang.RuntimeException: java.net.SocketTimeoutException: Poll timed out
                                                        at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:472)
                                                        at rx.observables.BlockingObservable.first(BlockingObservable.java:169)
                                                        at berlin.meshnet.cjdns.Cjdroute$Default$2$1.call(Cjdroute.java:240)

This is possibly due to the app not getting certain permissions

05-02 07:22:04.905 16408-16408/? W/cjdroute: type=1400 audit(0.0:25568): avc: denied { read } for name="uuid" dev="proc" ino=6838785 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0
05-02 07:22:05.090 870-904/? W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.SIG_STR flg=0x10 (has extras) } to com.cheekydevs.fiswitch/.utils.SignalReceiver
05-02 07:22:06.928 870-917/? E/NotificationService: Suppressing notification from package by user request.
05-02 07:22:07.908 16408-16408/? I/chatty: uid=10325(berlin.meshnet.cjdns) ./cjdroute identical 3 lines
05-02 07:22:08.908 16408-16408/? W/cjdroute: type=1400 audit(0.0:25572): avc: denied { read } for name="uuid" dev="proc" ino=6838785 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0
05-02 07:22:08.917 15404-16411/? I/Default: 1525270928 INFO RandomSeed.c:56 Trying random seed [/proc/sys/kernel/random/uuid (Linux)] Failed
05-02 07:22:08.919 15404-16411/? I/Default: 1525270928 INFO RandomSeed.c:64 Seeding random number generator succeeded with [1] sources
05-02 07:22:08.923 15404-16411/? I/Default: 1525270928 INFO LibuvEntropyProvider.c:59 Taking clock samples every [1000]ms for random generator
05-02 07:22:08.924 15404-16411/? I/Default: 1525270928 DEBUG Core.c:384 Getting pre-configuration from client
05-02 07:22:08.924 16408-16408/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 16408 (cjdroute), pid 16408 (cjdroute)
05-02 07:22:08.925 15404-16411/? I/Default: 1525270928 DEBUG Pipe.c:231 Pipe [/data/user/0/berlin.meshnet.cjdns/files/cjdns_pipe_259626a7-9a0b-4f86-b42b-63c8dc0e127f] established connection
05-02 07:22:08.937 16415-16415/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 16415 (cjdroute-init), pid 16415 (cjdroute-init)
05-02 07:22:08.968 16655-16655/? W/crash_dump64: type=1400 audit(0.0:25573): avc: denied { search } for name="berlin.meshnet.cjdns" dev="sda35" ino=2221346 scontext=u:r:crash_dump:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
05-02 07:22:08.968 16656-16656/? W/crash_dump64: type=1400 audit(0.0:25574): avc: denied { search } for name="berlin.meshnet.cjdns" dev="sda35" ino=2221346 scontext=u:r:crash_dump:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
05-02 07:22:08.974 16655-16655/? I/crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
05-02 07:22:08.974 16656-16656/? I/crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
05-02 07:22:08.968 16655-16655/? W/crash_dump64: type=1400 audit(0.0:25575): avc: denied { search } for name="files" dev="sda35" ino=2221892 scontext=u:r:crash_dump:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
05-02 07:22:08.968 16656-16656/? W/crash_dump64: type=1400 audit(0.0:25576): avc: denied { search } for name="files" dev="sda35" ino=2221892 scontext=u:r:crash_dump:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
05-02 07:22:08.976 739-739/? I//system/bin/tombstoned: received crash request for pid 16408
05-02 07:22:08.979 16655-16655/? I/crash_dump64: performing dump of process 16408 (target tid = 16408)
05-02 07:22:08.979 739-739/? I//system/bin/tombstoned: received crash request for pid 16415
05-02 07:22:08.979 739-739/? I//system/bin/tombstoned: enqueueing crash request for pid 16415
05-02 07:22:08.979 16655-16655/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-02 07:22:08.979 16655-16655/? A/DEBUG: Build fingerprint: 'google/sailfish/sailfish:8.1.0/OPM2.171019.029/4657601:user/release-keys'
05-02 07:22:08.979 16655-16655/? A/DEBUG: Revision: '0'
05-02 07:22:08.979 16655-16655/? A/DEBUG: ABI: 'arm64'
05-02 07:22:08.979 16655-16655/? A/DEBUG: pid: 16408, tid: 16408, name: cjdroute  >>> ./cjdroute <<<
05-02 07:22:08.979 16655-16655/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
[...]
05-02 07:22:08.978 16655-16655/? W/crash_dump64: type=1400 audit(0.0:25577): avc: denied { search } for name="berlin.meshnet.cjdns" dev="sda35" ino=2221346 scontext=u:r:crash_dump:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
05-02 07:22:08.983 16655-16655/? A/DEBUG: backtrace:
05-02 07:22:08.983 16655-16655/? A/DEBUG:     #00 pc 000000000001da4c  /system/lib64/libc.so (abort+112)
05-02 07:22:08.983 16655-16655/? A/DEBUG:     #01 pc 0000000000006678  /data/data/berlin.meshnet.cjdns/files/cjdroute

Develop binaries crash

I/art: Background sticky concurrent mark sweep GC freed 6761(472KB) AllocSpace objects, 2(32KB) LOS objects, 12% free, 3MB/4MB, paused 1.202ms total 119.707ms
I/Choreographer: Skipped 37 frames! The application may be doing too much work on its main thread.
D/EGL_emulation: eglMakeCurrent: 0xb0494d60: ver 2 0
I/Choreographer: Skipped 31 frames! The application may be doing too much work on its main thread.
D/EGL_emulation: eglMakeCurrent: 0xb0494d60: ver 2 0
D/EGL_emulation: eglMakeCurrent: 0xb0494d60: ver 2 0
D/EGL_emulation: eglMakeCurrent: 0xb0494d60: ver 2 0
W/art: Verification of void berlin.meshnet.cjdns.Cjdroute$Default$2$1$4.call(berlin.meshnet.cjdns.model.Node$Me) took 166.732ms
I/Default: 1534110230 INFO RandomSeed.c:42 Attempting to seed random number generator
I/Default: 1534110230 INFO RandomSeed.c:50 Trying random seed [/dev/urandom] Success
1534110231 INFO RandomSeed.c:50 Trying random seed [/proc/sys/kernel/random/uuid (Linux)] Success
I/Default: 1534110231 INFO RandomSeed.c:64 Seeding random number generator succeeded with [2] sources
1534110231 INFO LibuvEntropyProvider.c:59 Taking clock samples every [1000]ms for random generator
I/Default: 1534110231 DEBUG Core.c:355 Getting pre-configuration from client
I/Default: 1534110232 DEBUG Pipe.c:231 Pipe [/data/data/berlin.meshnet.cjdns/files/cjdns_pipe_81412c4f-1839-49d4-beca-fd101dfa38ca] established connection
I/Default: 1534110232 DEBUG Core.c:358 Finished getting pre-configuration from client
I/Default: 1534110232 DEBUG UDPAddrIface.c:273 Binding to address [127.0.0.1:11234]
I/Default: 1534110232 DEBUG UDPAddrIface.c:312 Bound to address [127.0.0.1:11234]
I/Default: 1534110232 DEBUG SubnodePathfinder.c:119 INIT
I/Default: 1534110232 DEBUG Pathfinder.c:172 INIT
I/Default: 1534110232 DEBUG NodeStore.c:565 Linking [fc00:12dc:6d44:7e55:ee60:6035:59f5:f596] with [fc00:12dc:6d44:7e55:ee60:6035:59f5:f596] with label fragment [0000.0000.0000.0001]
I/Default: 1534110233 DEBUG Janitor.c:637 Could not find anything to do
I/Default: 1534110233 DEBUG Janitor.c:665 Global Mean Response Time: 5000 nodes [1] links [1]
I/Default: 1534110233 DEBUG Janitor.c:637 Could not find anything to do
I/AdminApi: ping sent
E/AdminApi: ping completed
I/Default: cjdroute started
I/AdminApi: Security_setupComplete sent
E/AdminApi: Security_setupComplete completed
I/AdminApi: UDPInterface_new sent
E/AdminApi: UDPInterface_new completed
I/AdminApi: UDPInterface_beginConnection sent
E/AdminApi: UDPInterface_beginConnection completed
I/AdminApi: UDPInterface_new sent
E/AdminApi: UDPInterface_new completed
I/AdminApi: UDPInterface_beginConnection sent
E/AdminApi: UDPInterface_beginConnection completed
I/art: Background sticky concurrent mark sweep GC freed 4196(256KB) AllocSpace objects, 0(0B) LOS objects, 8% free, 3MB/4MB, paused 12.984ms total 96.981ms
E/art: dlopen("/data/app/berlin.meshnet.cjdns-1/lib/arm/libsendfd.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "__register_atfork" referenced by "libsendfd.so"...
E/AndroidRuntime: FATAL EXCEPTION: RxCachedThreadScheduler-1
Process: berlin.meshnet.cjdns, PID: 3491
java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:54)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__register_atfork" referenced by "libsendfd.so"...
at java.lang.Runtime.loadLibrary(Runtime.java:371)
at java.lang.System.loadLibrary(System.java:989)
at berlin.meshnet.cjdns.FileDescriptorSender.(FileDescriptorSender.java:15)
at berlin.meshnet.cjdns.FileDescriptorSender.send(FileDescriptorSender.java)
at berlin.meshnet.cjdns.CjdnsVpnService$4.call(CjdnsVpnService.java:177)
at berlin.meshnet.cjdns.CjdnsVpnService$4.call(CjdnsVpnService.java:172)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
at rx.internal.operators.OperatorMerge$InnerSubscriber.emit(OperatorMerge.java:676)
at rx.internal.operators.OperatorMerge$InnerSubscriber.onNext(OperatorMerge.java:586)
at berlin.meshnet.cjdns.CjdnsVpnService$5$1.call(CjdnsVpnService.java:166)
at berlin.meshnet.cjdns.CjdnsVpnService$5$1.call(CjdnsVpnService.java:154)
at rx.Observable.unsafeSubscribe(Observable.java:7466)
at rx.internal.operators.OperatorMerge$MergeSubscriber.handleNewSource(OperatorMerge.java:215)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:185)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:120)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
at rx.internal.operators.OperatorMerge$InnerSubscriber.emit(OperatorMerge.java:676)
at rx.internal.operators.OperatorMerge$InnerSubscriber.onNext(OperatorMerge.java:586)
at berlin.meshnet.cjdns.CjdrouteConf$1.call(CjdrouteConf.java:100)
at berlin.meshnet.cjdns.CjdrouteConf$1.call(CjdrouteConf.java:90)
at rx.Observable.unsafeSubscribe(Observable.java:7466)
at rx.internal.operators.OperatorMerge$MergeSubscriber.handleNewSource(OperatorMerge.java:215)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:185)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:120)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
at rx.internal.operators.OperatorMerge$InnerSubscriber.emit(OperatorMerge.java:676)
at rx.internal.operators.OperatorMerge$InnerSubscriber.onNext(OperatorMerge.java:586)
at berlin.meshnet.cjdns.AdminApi$BaseOnSubscribe.call(AdminApi.java:711)
at berlin.meshnet.cjdns.AdminApi$BaseOnSubscribe.call(AdminApi.java:676)
at rx.Observable.unsafeSubscribe(Observable.java:7466)
at rx.internal.operators.OperatorMerge$MergeSubscriber.handleNewSource(OperatorMerge.java:215)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:185)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:120)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
at rx.internal.operators.OperatorMerge$InnerSubscriber.emit(OperatorMerge.java:676)
at rx.internal.operators.OperatorMerge$InnerSubscriber.onNext(OperatorMerge.java:586)
at berlin.meshnet.cjdns.AdminApi$BaseOnSubscribe.call(AdminApi.java:711)
at berlin.meshnet.cjdns.AdminApi$BaseOnSubscribe.call(AdminApi.java:676)
at rx.Observable.unsafeSubscribe(Observable.java:7466)
at rx.internal.operators.OperatorMerge$MergeSubscriber.handleNewSource(OperatorMerge.java:215)
at rx.internal.op
D/Error: ERR: exClass=rx.exceptions.OnErrorThrowable$OnNextValue
D/Error: ERR: exMsg=OnError while emitting onNext value: java.lang.Integer.class
ERR: file=OperatorMerge.java
ERR: class=rx.internal.operators.OperatorMerge$InnerSubscriber
ERR: method=emit line=679
D/Error: ERR: stack=java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

Use JNI

What about using JNI instead of binary executable?

App name & About page

What should we name this app? Also discussing ideas on what content should go in the About page, which is loaded in a WebView in the app.

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.