Coder Social home page Coder Social logo

markqvist / sideband Goto Github PK

View Code? Open in Web Editor NEW
260.0 16.0 25.0 36.14 MB

LXMF client for Android, Linux and macOS allowing you to communicate with people or LXMF-compatible systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, or anything else Reticulum supports.

License: Other

Makefile 0.14% Python 94.21% kvlang 3.92% HTML 0.69% Java 0.49% Shell 0.01% CSS 0.54%
android lora mesh p2p packet-radio reticulum rns lxmf

sideband's Introduction

Sideband

Sideband is an extensible LXMF messaging client, situational awareness tracker and remote control and monitoring system for Android, Linux, macOS and Windows. It allows you to communicate with other people or LXMF-compatible systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR Paper Messages, or anything else Reticulum supports.

Screenshot

Sideband is completely free, end-to-end encrypted, permission-less, anonymous and infrastructure-less. Sideband uses the peer-to-peer and distributed messaging system LXMF. There is no sign-up, no service providers, no "end-user license agreements", no data theft and no surveillance. You own the system.

This also means that Sideband operates differently than what you might be used to. It does not need a connection to a server on the Internet to function, and you do not have an account anywhere. Please read the Guide section included in the program, to get an understanding of how Sideband differs from other messaging systems.

Sideband provides many useful and interesting functions, such as:

  • Secure and self-sovereign messaging using the LXMF protocol over Reticulum.
  • Image and file transfers over all supported mediums.
  • Secure and direct P2P telemetry and location sharing. No third parties or servers ever have your data.
  • Situation display on both online and locally stored offline maps.
  • Geospatial awareness calculations.
  • Exchanging messages through encrypted QR-codes on paper, or through messages embedded directly in lxm:// links.
  • Using Android devices as impromptu Reticulum routers (Transport Instances), for setting up or extending networks easily.
  • Remote command execution and response engine, with built-in commands, such as ping, signal reports and echo.
  • Remote telemetry querying, with strong, secure and cryptographically robust authentication and control.
  • Plugin system that allows you to easily create your own commands, services and telemetry sources.

Sideband works well with the terminal-based LXMF client Nomad Network, which allows you to easily host Propagation Nodes for your LXMF network, and more.

Installation On Android

For your Android devices, you can install Sideband through F-Droid, by adding the Between the Borders Repo, or you can download an APK on the latest release page. Both sources are signed with the same release keys, and can be used interchangably.

After the application is installed on your Android device, it is also possible to pull updates directly through the Repository section of the application.

Installation On Linux

On all Linux-based operating systems, Sideband is available as a pip package. This installation method includes desktop integration, so that Sideband will show up in your applications menu and launchers. Make sure you have Python and pip installed (default on most modern distributions), and run:

# Install Sideband and dependencies on Linux:
pip install sbapp

# Find the Sideband application in your launcher,
# or run it directly from the command line:
sideband

# You can also run Sideband in headless daemon
# mode, for example as a telemetry collector:
sideband --daemon

Please Note! If you are using an operating system that blocks normal user package installation via pip, it's easy to permanently return pip to normal behaviour by editing the ~/.config/pip/pip.conf file, and adding the following directive in the [global] section:

[global]
break-system-packages = true

You can also simply add the --break-system-packages directive on a per-installation basis. For example, on a system that blocks normal user package installation, you can install Sideband by running pip install sbapp --break-system-packages.

Installation On macOS

A DMG file containing a macOS app bundle is available on the latest release page.

Alternatively, you can install Sideband with pip on macOS:

# Install Sideband and dependencies on macOS
pip install "sbapp[macos]"

# Run it
sideband

Installation On Windows

Even though there is currently not an automated installer, or packaged .exe file for Sideband on Windows, you can still install it through pip. If you don't already have Python installed, download and install the latest version of Python.

Important! When asked by the installer, make sure to add the Python program to your PATH environment variables. If you don't do this, you will not be able to use the pip installer, or run the sideband command.

When Python has been installed, you can open a command prompt and install sideband via pip:

pip install sbapp

The Sideband application can now be launched by running the command sideband in the command prompt. If needed, you can create a shortcut for Sideband on your desktop or in the start menu.

When running Sideband for the first time, a default Reticulum configuration file will be created, if you don't already have one. If you don't have any existing Reticulum connectivity available locally, you may want to edit the file, located at C:\Users\USERNAME\.reticulum\config and manually add an interface that provides connectivity to a wider network. If you just want to connect over the Internet, you can add one of the public hubs on the Reticulum Testnet.

Installation With pipx

You can use the pipx tool to install Sideband in an isolated environment, but on Linux you will have to launch Sideband from the command line, or create your own launcher links, since pipx does not support desktop integration. Unfortunately, it does not seem like pipx will be adding desktop integration in the near future, so restoring the original pip tool to its proper behaviour is recommended for now. If you want to use pipx anyway, it is as simple as:

# Install Sideband on Linux
pipx install sbapp

# Install Sideband on macOS
pipx install "sbapp[macos]"

# Optionally install Reticulum utilities
pipx install rns

# Optionally install standalone LXMF utilities
pipx install lxmf

Example Paper Message

You can try out the paper messaging functionality by using the following QR-code. It is a paper message sent to the LXMF address 6b3362bd2c1dbf87b66a85f79a8d8c75. To be able to decrypt and read the message, you will need to import the following base32-encoded Reticulum Identity into the app:

3BPTDTQCRZPKJT3TXAJCMQFMOYWIM3OCLKPWMG4HCF2T4CH3YZHVNHNRDU6QAZWV2KBHMWBNT2C62TQEVC5GLFM4MN25VLZFSK3ADRQ=

You can import the identity into Sideband in the Encryption Keys part of the program. After the you have imported the identity, you can scan the following QR-code and open it in the app, where it will be decrypted and added to your messages.

You can also find the entire message in this link:

lxm://azNivSwdv4e2aoX3mo2MdTAozuI7BlzrLlHULmnVgpz3dNT9CMPVwgywzCJP8FVogj5j_kU7j7ywuvBNcr45kRTrd19c3iHenmnSDe4VEd6FuGsAiT0Khzl7T81YZHPTDhRNp0FdhDE9AJ7uphw7zKMyqhHHxOxqrYeBeKF66gpPxDceqjsOApvsSwggjcuHBx9OxOBy05XmnJxA1unCKgvNfOFYc1T47luxoY3c0dLOJnJPwZuFRytx2TXlQNZzOJ28yTEygIfkDqEO9mZi5lgev7XZJ0DvgioQxMIyoCm7lBUzfq66zW3SQj6vHHph7bhr36dLOCFgk4fZA6yia2MlTT9KV66Tn2l8mPNDlvuSAJhwDA_xx2PN9zKadCjo9sItkAp8r-Ss1CzoUWZUAyT1oDw7ly6RrzGBG-e3eM3CL6u1juIeFiHby7_3cON-6VTUuk4xR5nwKlFTu5vsYMVXe5H3VahiDSS4Q1aqX7I

On operating systems that allow for registering custom URI-handlers, you can click the link, and it will be decoded directly in your LXMF client. This works with Sideband on Android.

Support Sideband Development

You can help support the continued development of open, free and private communications systems by donating via one of the following channels:

  • Monero:
    84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
    
  • Ethereum
    0xFDabC71AC4c0C78C95aDDDe3B4FA19d6273c5E73
    
  • Bitcoin
    35G9uWVzrpJJibzUwpNUQGQNFzLirhrYAH
    
  • Ko-Fi: https://ko-fi.com/markqvist

Development Roadmap

  • Secure and private location and telemetry sharing
  • Including images in messages
  • Sending file attachments
  • Offline and online maps
  • Paper messages
  • Using Sideband as a Reticulum Transport Instance
  • Encryption keys export and import
  • Plugin support for commands, services and telemetry
  • Adding Linux .desktop file integration
  • Sending voice messages (using Codec2 and Opus)
  • Implementing the Local Broadcasts feature
  • LXMF sneakernet functionality
  • Network visualisation and test tools
  • A debug log viewer
  • Better message sorting mechanism
  • Fix I2P status not being displayed correctly when the I2P router disappears unexpectedly
  • Adding a Nomad Net page browser

License

Unless otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Permission is hereby granted to use Sideband in binary form, for any and all purposes, and to freely distribute binary copies of the program, so long as no payment or compensation is charged or received for such distribution or use.

Device screenshots generated with deviceframes. Thanks!

sideband's People

Contributors

4c3e avatar faragher avatar jooray avatar markqvist avatar mindstorms6 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

sideband's Issues

Possible I2P interface bug

Hi Mark,

I've been informed of something not functioning as expected when trying to use the i2pd daemon within Sideband.

I'm not aware of all details, but wanted to reach out to you and make you aware of this as well. If you could look into this that would be great. If you need more information let me know and I'll see what I can find out.

Thanks.

lora32 2.1 Not receiving data

I don't usually post issues however I did search through closed and open issues. I purchased two lilygo lora32 2.1 devices hoping to use sideband. I followed the directions to setup two andoid devices over bluetooth at https://unsigned.io/guides/2023_01_19_RNode_Bluetooth_Setup_In_Sideband_On_Android.html . Over wifi works fine and i can send and receive messages.

With the latest rnode firmware 1.68 on both devices while using sideband, I can send out announcements however the other device never receives them, when checking 'Connectivity Status' it shows RNode On-air and Out: has traffic however In: traffic is always 0. I feel like I must be missing an important step but I think I followed all of the steps in the above link.

I had both android sideband instances set to the same parameters for 915.0mhz etc

[20:19:53] Device info:
[20:19:53] Product : LilyGO LoRa32 v2.1 850 - 950 MHz (b1:b9:37)
[20:19:53] Device signature : Validated - Local signature
[20:19:53] Firmware version : 1.68
[20:19:53] Hardware revision : 1
[20:19:53] Serial number : 00:00:00:03
[20:19:53] Frequency range : 850.0 MHz - 950.0 MHz
[20:19:53] Max TX power : 17 dBm
[20:19:53] Manufactured : 2023-12-25 15:51:59
[20:19:53] Device mode : Normal (host-controlled)

"please wait substantiating reticulum", stuck on launch page

I hope I am correct in starting a new thread. I read over the other open issues but could not acertain a resolution. Upon launch, sideband will not proceed past the launch/landing, as quoted in the title.

I have left it installed and cleared app data, no change. Uninstalled and re installed, allowed unrestricted battery use/optimization.

Device is a pixel 3 xl, OEM android build version 12. I did successfully install and open the software on an inexpensive "U318AA" running android 10. So this issue seems specific to my device, whether that be the Pixel model, or my personal device.

Let me know if there is any specific logs I can pull to help! I am a novice, but this project seems very important, and I can't wait to get into it myself!

Thank you

Telemetry stops when application gets backgrounded,

This is likely unavoidable, but in an overnight test the collector and one sender were locked and left to sit while another sender was used as usual. Likely due to memory issues, the Sideband app was put in the background (and required a second pass through "initializing Reticulum") on the second sender and did not send telemetry. This occurred during the use period, not during the overnight hours.

Collector and first sender operated as intended.

Obviously if the program isn't running there's nothing to be done, but is there a possible solution to keep the program in memory or otherwise persist during periods of downtime?

Copy message text strange delay.

Hi Mark,

I tested it again. It's not that it doesn't work.
It is only a little bit strange behaviour:
When I click on copy and after this direct paste it there is only the beginning of the text. When I wait some seconds then I have the whole text.

It looks like the copy function is very slow and need some time to send all characters to the clipboard.

I think it's an android issue and has nothing to do with your code.

I used Sideband 0.2.1beta on Android 12.

Telemetry SQL error

Describe the Bug
Telemetry eventually causes SQL failures.

To Reproduce
Have not tried a fresh start, but this was a repeating issue.

Expected Behavior
No SQL errors

Logs & Screenshots

Final log:

[2024-05-31 05:38:09] [Error] An error occurred during persistent setstate database operation: cannot commit - no transaction is active
[2024-05-31 05:43:11] [Error] A <class 'sqlite3.OperationalError'> occurred while saving telemetry to database: cannot commit - no transaction is active
[2024-05-31 05:43:11] [Error] Traceback (most recent call last):
  File "c:\users\michael\appdata\local\programs\python\python38\lib\site-packages\sbapp\sideband\core.py", line 1829, in _db_save_telemetry
    db.commit()
sqlite3.OperationalError: cannot commit - no transaction is active

[2024-05-31 05:46:13] [Error] An error occurred during persistent setstate database operation: cannot commit - no transaction is active
[2024-05-31 05:47:13] [Error] An error occurred during persistent setstate database operation: cannot commit - no transaction is active
[2024-05-31 05:50:15] [Error] An error occurred during persistent setstate database operation: cannot commit - no transaction is active
[2024-05-31 05:51:15] [Error] An error occurred during persistent setstate database operation: cannot commit - no transaction is active
[2024-05-31 05:53:16] [Error] An error occurred during persistent setstate database operation: cannot commit - no transaction is active
[2024-05-31 05:54:17] [Error] An error occurred during persistent setstate database operation: cannot start a transaction within a transaction
[2024-05-31 05:54:17] [Error] A <class 'sqlite3.DatabaseError'> occurred while saving telemetry to database: no more rows available
[2024-05-31 05:54:17] [Error] Traceback (most recent call last):
  File "c:\users\michael\appdata\local\programs\python\python38\lib\site-packages\sbapp\sideband\core.py", line 1829, in _db_save_telemetry
    db.commit()
sqlite3.DatabaseError: no more rows available

Some previous highlights:

[2024-05-31 04:56:47] [Error] A <class 'sqlite3.OperationalError'> occurred while saving telemetry to database: cannot commit - no transaction is active
[2024-05-31 04:56:47] [Error] Traceback (most recent call last):
  File "c:\users\michael\appdata\local\programs\python\python38\lib\site-packages\sbapp\sideband\core.py", line 1829, in _db_save_telemetry
    db.commit()
sqlite3.OperationalError: cannot commit - no transaction is active
[2024-05-31 03:06:53] [Error] A <class 'sqlite3.OperationalError'> occurred while saving telemetry to database: cannot commit - no transaction is active
[2024-05-31 03:06:53] [Error] Traceback (most recent call last):
  File "c:\users\michael\appdata\local\programs\python\python38\lib\site-packages\sbapp\sideband\core.py", line 1829, in _db_save_telemetry
    db.commit()
sqlite3.OperationalError: cannot commit - no transaction is active

[2024-05-31 03:08:54] [Error] A <class 'sqlite3.OperationalError'> occurred while saving telemetry to database: not an error
[2024-05-31 03:08:54] [Error] Traceback (most recent call last):
  File "c:\users\michael\appdata\local\programs\python\python38\lib\site-packages\sbapp\sideband\core.py", line 1828, in _db_save_telemetry
    dbc.execute(query, data)
sqlite3.OperationalError: not an error

[2024-05-31 03:11:56] [Error] A <class 'sqlite3.OperationalError'> occurred while saving telemetry to database: not an error
[2024-05-31 03:11:56] [Error] Traceback (most recent call last):
  File "c:\users\michael\appdata\local\programs\python\python38\lib\site-packages\sbapp\sideband\core.py", line 1828, in _db_save_telemetry
    dbc.execute(query, data)
sqlite3.OperationalError: not an error

This may be a race condition, unhandled error, or logic error. Database appears well formed, with 204k telemetry entries and a file size of less than 30 megs. IDs go to 206k but start at 1. This may imply 2,000 lost entries (or ~1%).

I may dig into this further if nothing is obviously wrong.

please remember increasing versionCode

Despite of multiple releases already having been published, the latest APK still identifies as versionCode: 1. This makes automated updates hard, as Android uses versionCode to tell versions apart – so it considers your latest release being the same version as the initival one and doesn't offer it for update (versionName is just for humans to read).

May I hence suggest you increase `versionCode' with each new release?

Android activity is not removed from recents on shutdown

When you click on "Shutdown" in the menu, the exit screen "Reticulum Dissolving" is displayed. Then also closed and the app is no longer displayed. So it looks like Sideband is really finished. However, if you switch to the view of all running apps. Sideband is still displayed. If you select the app there, Sideband starts again.

This is probably only a small, insignificant issue. Nevertheless, I have created an issue for it.

Tested on Samsung S20FE Android 12 & Samsung Note 9 Android 10.

Sideband 0.8.1 crashes on startup on Windows

Describe the Bug

Sideband 0.8.1 immediately crashes on startup prior to UI initialization.

To Reproduce

Update Sideband to 0.8.1 (from 0.7.3). Attempt to start from command line using Python 3.8.6.

Expected Behavior

Sideband boots as normal

Logs & Screenshots

No screenshot available. Logs are generally useless, but included below.

[INFO   ] Logger: Record log in C:\Users\(user)\.kivy\logs\kivy_24-03-26_5.txt
[INFO   ] deps: Successfully imported "kivy_deps.angle" 0.4.0
[INFO   ] deps: Successfully imported "kivy_deps.glew" 0.3.1
[INFO   ] deps: Successfully imported "kivy_deps.sdl2" 0.7.0
[INFO   ] Kivy: v2.3.0
[INFO   ] Kivy: Installed at "c:\users\(user)\appdata\local\programs\python\python38\lib\site-packages\kivy\__init__.py"
[INFO   ] Python: v3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)]
[INFO   ] Python: Interpreter at "c:\users\(user)\appdata\local\programs\python\python38\python.exe"
[INFO   ] Logger: Purge log fired. Processing...
[INFO   ] Logger: Purge finished!

System Information

Windows 10
Python 3.8.6
Sideband 0.8.1
RNS 0.7.3

Additional context

I'm hoping there are other logs I am unaware of.

Transport instance not working? - Sideband β 0.2.4

I have just tested the new feture. However, it does not seem to work for me.

Here is the scenario:
Android-A: TCP testnet + RNode (Enable Trabsport)
Android-B: RNode

The traffic/comunication is not routed between the TCP testnet and Android-B.

Android-A reaches the testnet and Android-B

Keyboard suggestions don't seem to work on message input

I looked into this a bit and this seems possibly related to a change in kivy's TextInput widget: "Changed in version 2.1.0: keyboard_suggestions is now inherited from FocusBehavior."

I notice that you're using KivyMD, so I looked into how they handle FocusBehavior but I see no mention of the keyboard_suggestions property there, and I'm having a heck of a time getting my attempted patched version of Sideband to run on MacOS to test it (it just pretends to start then immediately exits).

Add UDP interface

Since ipv6 has not yet become widespread in primitive home-level local area networks and equipment used in such networks, it would be useful to add the ability to use a UDP interface for communication in such networks.

Sideband on iOS

I get that this is no small feat, and I'm almost afraid to ask since it's not mentioned anywhere.

I did a kivy-ios build here and got it installed on my device, but it fails to finish launching because of an issue loading a module (multiprocessing). I'm a bit out of my depth--I've not worked with kivy before. But from the little bit of research I did, the issue is probably a limitation of the platform, possibly requiring either a custom recipe or an overhaul of some of the app internals.

Looking under the hood, both Sideband and RNS have a fair amount of conditional behavior for Android. I imagine iOS would likely require at least that much effort again.

I guess this is mostly a conversation starter--what would a road to iOS look like?

Sideband as interface for NomadNet in Android (Termux)

Hi! 👋

I notice that when starting nomadnet from termux it can't run since it can't talk to the native part of the android/usb/bluetooth, but launching nomadnet after starting Sideband does the trick.

This would mean that there are two profiles running. Sideband Client and NomadNet client. Even if the ids are different.

Is there any way to run sideband just to use as a interface for nomadnet? without using it as a client?

ps: For clarification, the idea is maybe have a light sideband without the whole messaging part.

edit: fix typo

Sideband not working on Motorola One 5G Ace

Since v0.1.9 I am unable to run Sideband on my Motorola One 5G Ace. The app side-loads successfully, but when I try to open the app it stops on the "Please Wait, Substantiating Reticulum" screen. The "Sideband Active" notification also goes away after about 3 seconds.

I have tried reinstalling the app several times, as well as clearing storage and cache several times. I have had this issue with versions 0.1.9, 0.2.0, and 0.2.1.

I am able to run v0.2.1 on my Samsung Galaxy S9, so it appears to be an issue with my Motorola phone.

Has anyone else experienced this issue? Any ideas on how to troubleshoot this further?

Android app: uploading attachment freezes the interface

Hello,

When uploading a file for sharing through the Android app (0.8.4) the interface will freeze while the operation is ongoing.

There is no progress indicator to know how much the upload has moving, nor a button to stop the upload if needed.

When sending the actual file across the network there is a progress indicator, but not on the first stage. Several minutes might pass with an unresponsive UI on android.

Dependency problem with P4A

Trying to compile Sideband has been problematic, mostly because this is way above my Python paygrade. I have found and solved one major issue that I don't believe is my fault.

The current system attempts to build referencing NDK 23b, while Kivy pushed the minimum version to 25. I tried faking it, but that failed. I finally found the incompatibility and tracked down the configuration in ./sbapp/venv/lib/python3.9/site-packages/buildozer/targets/android.py (This is a runtime file, and I have no idea where it pulls in the data)

By defining the branch name as "release-2022.09.04" the previous release is pulled and the system functions as intended.

I have absolutely no idea how to definitively fix this, but with this information it's likely to be a straightforward fix to someone familiar with buildozer etc.

As a warning, it's still not compiling entirely, but I believe this shouldn't have knock-on effects, and simply restores functionality to intended levels.

WSL Sideband

I am using WSL on Windows 11 to run Ubuntu and ran into two issues to get sideband running.

  1. "MTDEV not supported by your version of linux" which I solved with sudo apt-get install libmtdev-dev

  2. "Unable to find any valuable Cutbuffer provider" which was solved with sudo apt-get install xclip

Works fine with those packages installed so far. This is my first time participating with a project like this - so if I've done this wrong please let me know!

Quite slow (10-15) seconds loading time.

Application tooks 10 to 15 seconds to load up.
Shut down took shorter time but also not to much satisfying ammount.

Can guees its issue of app egine but on my phone and tablet moving acros app is also quite lagging.

Add to official F-Droid Repo / Website

Currently this Android App is not in F-Droid. It seems to be free software and i cant find a technical reason why its not in F-Droid. Could you add it to official f-droid so it get public build logs from public servers?
Having to download a apk somewhere from the internet or add custom repo like https://android.izzysoft.de/repo/info described here https://unsigned.io/website/sideband/ is not really recommended way for installing software.

The Idea behind https://reproducible-builds.org/ is good and important and F-Droid makes a simple to use solution for such things.

Missing access to Android WiFiManager on Sony Xperia 1 II, Android 12

Describe the Bug
On the first startup, the app is stuck on the "Please Wait Substantiating Reticulum" screen.

To Reproduce
Start the app on a clean install.

Expected Behavior
I expect the app to start.

Logs & Screenshots
Logcat grep sideband

03-19 09:10:49.666  1759  4986 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=io.unsigned.sideband/org.kivy.android.PythonActivity bnds=[229,79][442,372]} from uid 10189
03-19 09:10:49.679  5154  5154 I Freeform: onTaskCreated taskId=790 cmp=ComponentInfo{io.unsigned.sideband/org.kivy.android.PythonActivity} target=null
03-19 09:10:49.680  1327  1575 E ANDR-PERF-LM: GamePerfEngine: runAsync() 477: Hint is for io.unsigned.sideband/org.kivy.android.PythonActivity/20240214 = 0x1003 PID=1759
03-19 09:10:49.694  1759  2049 I ActivityManager: Start proc 27825:io.unsigned.sideband/u0a690 for pre-top-activity:com.sonymobile.launcher {io.unsigned.sideband/org.kivy.android.PythonActivity}
03-19 09:10:49.720 27825 27825 D nativeloader: Configuring clns-4 for other apk /data/app/~~RUvQA6yLJRSRafPAKku85w==/io.unsigned.sideband-XSMQ0DSOwHSehpFUZhmRgw==/base.apk. target_sdk_version=30, uses_libraries=, library_path=/data/app/~~RUvQA6yLJRSRafPAKku85w==/io.unsigned.sideband-XSMQ0DSOwHSehpFUZhmRgw==/lib/arm64:/data/app/~~RUvQA6yLJRSRafPAKku85w==/io.unsigned.sideband-XSMQ0DSOwHSehpFUZhmRgw==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/io.unsigned.sideband
03-19 09:10:49.725 27825 27825 V GraphicsEnvironment: ANGLE Developer option for 'io.unsigned.sideband' set to: 'default'
03-19 09:10:49.810  1759  2030 I ActivityTaskManager: Displayed io.unsigned.sideband/org.kivy.android.PythonActivity: +140ms
03-19 09:10:50.130 27825 27852 V python  : extracting services/sidebandservice.pyc
03-19 09:10:50.163  1759  4958 W InputManager-JNI: Input channel object 'de20edd Splash Screen io.unsigned.sideband (client)' was disposed without first being removed with the input manager!
03-19 09:10:50.189 27825 27852 V python  : extracting share/mirrors/reticulum.network/manual/_images/sideband_devices.webp
03-19 09:10:50.212 27825 27852 V python  : extracting share/mirrors/unsigned.io/guides/2023_01_19_RNode_Bluetooth_Setup_In_Sideband_On_Android.html
03-19 09:10:50.300 27825 27852 V python  : extracting share/mirrors/unsigned.io/rnode_bootstrap_console/gfx/sideband.webp
03-19 09:10:50.308 27825 27852 V python  : extracting share/mirrors/unsigned.io/rnode_bootstrap_console/m/_images/sideband_devices.webp
03-19 09:10:50.327 27825 27852 V python  : extracting share/mirrors/unsigned.io/rnode_bootstrap_console/s_sideband.html
03-19 09:10:50.330 27825 27852 V python  : extracting share/mirrors/unsigned.io/sideband/
03-19 09:10:50.330 27825 27852 V python  : extracting share/mirrors/unsigned.io/sideband/index.html
03-19 09:10:50.331 27825 27852 V python  : extracting share/mirrors/unsigned.io/software/Sideband.html
03-19 09:10:50.341 27825 27852 V python  : extracting sideband/
03-19 09:10:50.341 27825 27852 V python  : extracting sideband/__init__.pyc
03-19 09:10:50.341 27825 27852 V python  : extracting sideband/core.pyc
03-19 09:10:50.342 27825 27852 V python  : extracting sideband/geo.pyc
03-19 09:10:50.342 27825 27852 V python  : extracting sideband/res.pyc
03-19 09:10:50.342 27825 27852 V python  : extracting sideband/sense.pyc
03-19 09:10:50.349 27825 27852 V pythonutil: Unpacking /data/app/~~RUvQA6yLJRSRafPAKku85w==/io.unsigned.sideband-XSMQ0DSOwHSehpFUZhmRgw==/lib/arm64/libpybundle app
03-19 09:10:50.349 27825 27852 V pythonutil: Extracting /data/app/~~RUvQA6yLJRSRafPAKku85w==/io.unsigned.sideband-XSMQ0DSOwHSehpFUZhmRgw==/lib/arm64/libpybundle assets.
03-19 09:10:50.621 27825 27865 V SDL     : Running main function SDL_main from library /data/app/~~RUvQA6yLJRSRafPAKku85w==/io.unsigned.sideband-XSMQ0DSOwHSehpFUZhmRgw==/lib/arm64/libmain.so
03-19 09:10:50.621 27825 27865 I python  : /data/user/0/io.unsigned.sideband/files/app
03-19 09:10:50.622 27825 27865 I python  : /data/user/0/io.unsigned.sideband/files/app/_python_bundle/stdlib.zip:/data/user/0/io.unsigned.sideband/files/app/_python_bundle/modules
03-19 09:10:50.641 27825 27865 I python  : Android path ['.', '/data/user/0/io.unsigned.sideband/files/app/_python_bundle/stdlib.zip', '/data/user/0/io.unsigned.sideband/files/app/_python_bundle/modules', '/data/user/0/io.unsigned.sideband/files/app/_python_bundle/site-packages']
03-19 09:10:50.641 27825 27865 I python  : os.environ is environ({'PATH': '/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin', 'ANDROID_BOOTLOGO': '1', 'ANDROID_ROOT': '/system', 'ANDROID_ASSETS': '/system/app', 'ANDROID_DATA': '/data', 'ANDROID_STORAGE': '/storage', 'ANDROID_ART_ROOT': '/apex/com.android.art', 'ANDROID_I18N_ROOT': '/apex/com.android.i18n', 'ANDROID_TZDATA_ROOT': '/apex/com.android.tzdata', 'EXTERNAL_STORAGE': '/sdcard', 'ASEC_MOUNTPOINT': '/mnt/asec', 'DOWNLOAD_CACHE': '/data/cache', 'BOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/apex/com.android.i18n/javalib/core-icu4j.jar:/system/framework/tcmiface.jar:/system/framework/telephony-ext.jar:/system/framework/qcom.fmradio.jar:/system/framework/QPerformance.jar:/system/framework/UxPerformance.jar:/system/framework/WfdCommon.jar:/apex/com.android.appsearch/javalib/framework-appsearch.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.ipsec/javalib/android.net.ipsec.ike.jar:/apex/com.android.media/javalib/updatable-media.jar:/apex/com.android.mediaprovider/javalib/framework-mediaprovider.jar:/apex/com.android.os.statsd/javalib/framework-statsd.jar:/apex/com.android.permission/javalib/framework-permission.jar:/apex/com.android.permission/javalib/framework-permission-s.jar:/apex/com.android.scheduling/javalib/framework-scheduling.jar:/apex/com.android.sdkext/javalib/framework-sdkextensions.jar:/apex/com.android.tethering/javalib/framework-connectivity.jar:/apex/com.android.tethering/javalib/framework-tethering.jar:/apex/com.android.wifi/javalib/framework-wifi.jar', 'DEX2OATBOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/apex/com.android.i18n/javalib/core-icu4j.jar:/system/framework/tcmiface.jar:/system/framework/telephony-ext.jar:/system/framework/qcom.fmradio.jar:/system/framework/QPerformance.jar:/system/framework/UxPerformance.jar:/system/framework/WfdCommon.jar', 'SYSTEMSERVERCLASSPATH': '/system/framework/com.android.location.provider.jar:/system/framework/services.jar:/system/framework/ethernet-service.jar:/apex/com.android.appsearch/javalib/service-appsearch.jar:/apex/com.android.art/javalib/service-art.jar:/apex/com.android.media/javalib/service-media-s.jar:/apex/com.android.permission/javalib/service-permission.jar', 'STANDALONE_SYSTEMSERVER_JARS': '/apex/com.android.os.statsd/javalib/service-statsd.jar:/apex/com.android.scheduling/javalib/service-scheduling.jar:/apex/com.android.tethering/javalib/service-connectivity.jar:/apex/com.android.wifi/javalib/service-wifi.jar', 'ANDROID_SOCKET_zygote': '22', 'ANDROID_SOCKET_usap_pool_primary': '24', 'ANDROID_ENTRYPOINT': 'main.pyc', 'ANDROID_ARGUMENT': '/data/user/0/io.unsigned.sideband/files/app', 'ANDROID_APP_PATH': '/data/user/0/io.unsigned.sideband/files/app', 'ANDROID_PRIVATE': '/data/user/0/io.unsigned.sideband/files', 'ANDROID_UNPACK': '/data/user/0/io.unsigned.sideband/files/app', 'PYTHONHOME': '/data/user/0/io.unsigned.sideband/files/app', 'PYTHONPATH': '/data/user/0/io.unsigned.sideband/files/app:/data/user/0/io.unsigned.sideband/files/app/lib', 'PYTHONOPTIMIZE': '2', 'P4A_BOOTSTRAP': 'SDL2', 'PYTHON_NAME': 'python', 'P4A_IS_WINDOWED': 'True', 'KIVY_ORIENTATION': 'Portrait', 'P4A_NUMERIC_VERSION': '20240214', 'P4
03-19 09:10:50.774 27825 27865 I python  : [INFO   ] [Logger      ] Record log in /data/user/0/io.unsigned.sideband/files/app/.kivy/logs/kivy_24-03-19_0.txt
03-19 09:10:50.774 27825 27865 I python  : [INFO   ] [Kivy        ] Installed at "/data/user/0/io.unsigned.sideband/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
03-19 09:10:51.389 27825 27865 I python  : [2024-03-19 09:10:51] [Notice] Creating new Sideband configuration...
03-19 09:10:51.744  1759  2049 I ActivityManager: Start proc 27870:io.unsigned.sideband:service_sidebandservice/u0a690 for service:io.unsigned.sideband {io.unsigned.sideband/io.unsigned.sideband.ServiceSidebandservice}
03-19 09:10:51.749 27870 27870 I sidebandservic: Using CollectorTypeCC GC.
03-19 09:10:51.751 27870 27870 E sidebandservic: Not starting debugger since process cannot load the jdwp agent.
03-19 09:10:51.760 27870 27870 D nativeloader: Configuring clns-4 for other apk /data/app/~~RUvQA6yLJRSRafPAKku85w==/io.unsigned.sideband-XSMQ0DSOwHSehpFUZhmRgw==/base.apk. target_sdk_version=30, uses_libraries=, library_path=/data/app/~~RUvQA6yLJRSRafPAKku85w==/io.unsigned.sideband-XSMQ0DSOwHSehpFUZhmRgw==/lib/arm64:/data/app/~~RUvQA6yLJRSRafPAKku85w==/io.unsigned.sideband-XSMQ0DSOwHSehpFUZhmRgw==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/io.unsigned.sideband
03-19 09:10:51.765 27870 27870 V GraphicsEnvironment: ANGLE Developer option for 'io.unsigned.sideband' set to: 'default'
03-19 09:10:51.771  1759  2048 I ActivityManager: Deferring FGS notification in legacy app io.unsigned.sideband/u0a690 : Notification(channel=io.unsigned.sideband.reticulum shortcut=null contentView=null vibrate=null sound=null defaults=0x0 flags=0x40 color=0x00000000 vis=PRIVATE)
03-19 09:10:51.780 27870 27885 I python  : /data/user/0/io.unsigned.sideband/files/app
03-19 09:10:51.780 27870 27885 I python  : /data/user/0/io.unsigned.sideband/files/app/_python_bundle/stdlib.zip:/data/user/0/io.unsigned.sideband/files/app/_python_bundle/modules
03-19 09:10:51.798 27870 27885 I sidebandservice: testing python print redirection
03-19 09:10:51.798 27870 27885 I sidebandservice: Android path ['.', '/data/user/0/io.unsigned.sideband/files/app/_python_bundle/stdlib.zip', '/data/user/0/io.unsigned.sideband/files/app/_python_bundle/modules', '/data/user/0/io.unsigned.sideband/files/app/_python_bundle/site-packages']
03-19 09:10:51.798 27870 27885 I sidebandservice: os.environ is environ({'PATH': '/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin', 'ANDROID_BOOTLOGO': '1', 'ANDROID_ROOT': '/system', 'ANDROID_ASSETS': '/system/app', 'ANDROID_DATA': '/data', 'ANDROID_STORAGE': '/storage', 'ANDROID_ART_ROOT': '/apex/com.android.art', 'ANDROID_I18N_ROOT': '/apex/com.android.i18n', 'ANDROID_TZDATA_ROOT': '/apex/com.android.tzdata', 'EXTERNAL_STORAGE': '/sdcard', 'ASEC_MOUNTPOINT': '/mnt/asec', 'DOWNLOAD_CACHE': '/data/cache', 'BOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/apex/com.android.i18n/javalib/core-icu4j.jar:/system/framework/tcmiface.jar:/system/framework/telephony-ext.jar:/system/framework/qcom.fmradio.jar:/system/framework/QPerformance.jar:/system/framework/UxPerformance.jar:/system/framework/WfdCommon.jar:/apex/com.android.appsearch/javalib/framework-appsearch.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.ipsec/javalib/android.net.ipsec.ike.jar:/apex/com.android.media/javalib/updatable-media.jar:/apex/com.android.mediaprovider/javalib/framework-mediaprovider.jar:/apex/com.android.os.statsd/javalib/framework-statsd.jar:/apex/com.android.permission/javalib/framework-permission.jar:/apex/com.android.permission/javalib/framework-permission-s.jar:/apex/com.android.scheduling/javalib/framework-scheduling.jar:/apex/com.android.sdkext/javalib/framework-sdkextensions.jar:/apex/com.android.tethering/javalib/framework-connectivity.jar:/apex/com.android.tethering/javalib/framework-tethering.jar:/apex/com.android.wifi/javalib/framework-wifi.jar', 'DEX2OATBOOTCLASSPATH': '/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/apex/com.android.i18n/javalib/core-icu4j.jar:/system/framework/tcmiface.jar:/system/framework/telephony-ext.jar:/system/framework/qcom.fmradio.jar:/system/framework/QPerformance.jar:/system/framework/UxPerformance.jar:/system/framework/WfdCommon.jar', 'SYSTEMSERVERCLASSPATH': '/system/framework/com.android.location.provider.jar:/system/framework/services.jar:/system/framework/ethernet-service.jar:/apex/com.android.appsearch/javalib/service-appsearch.jar:/apex/com.android.art/javalib/service-art.jar:/apex/com.android.media/javalib/service-media-s.jar:/apex/com.android.permission/javalib/service-permission.jar', 'STANDALONE_SYSTEMSERVER_JARS': '/apex/com.android.os.statsd/javalib/service-statsd.jar:/apex/com.android.scheduling/javalib/service-scheduling.jar:/apex/com.android.tethering/javalib/service-connectivity.jar:/apex/com.android.wifi/javalib/service-wifi.jar', 'ANDROID_SOCKET_zygote': '22', 'ANDROID_SOCKET_usap_pool_primary': '24', 'ANDROID_PRIVATE': '/data/user/0/io.unsigned.sideband/files', 'ANDROID_ARGUMENT': '/data/user/0/io.unsigned.sideband/files/app', 'ANDROID_APP_PATH': '/data/user/0/io.unsigned.sideband/files/app', 'ANDROID_ENTRYPOINT': 'services/sidebandservice.py', 'PYTHONOPTIMIZE': '2', 'PYTHON_NAME': 'sidebandservice', 'PYTHONHOME': '/data/user/0/io.unsigned.sideband/files/app', 'PYTHONPATH': '/data/user/0/io.unsigned.sideband/files/app:/data/user/0/io.unsigned.sideband/files/app/lib', 'PYTHON_SERVICE_ARGUMENT': '/data/user/0', 'P4A_BOOTSTRAP': 'SDL2', 'ANDROID_UNPACK': '/data/user/0/io.unsigned.sideband/files/app', 'P4A_IS_WINDOWED'
03-19 09:10:51.798 27870 27885 I sidebandservice: Android kivy bootstrap done. __name__ is __main__
03-19 09:10:51.933 27870 27885 I sidebandservice: [INFO   ] [Logger      ] Record log in /data/user/0/io.unsigned.sideband/files/app/.kivy/logs/kivy_24-03-19_1.txt
03-19 09:10:51.933 27870 27885 I sidebandservice: [INFO   ] [Kivy        ] v2.2.1
03-19 09:10:51.933 27870 27885 I sidebandservice: [INFO   ] [Kivy        ] Installed at "/data/user/0/io.unsigned.sideband/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
03-19 09:10:51.933 27870 27885 I sidebandservice: [INFO   ] [Python      ] v3.10.10 (main, Jul 10 2023, 18:28:31) [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0
03-19 09:10:51.933 27870 27885 I sidebandservice: [INFO   ] [Python      ] Interpreter at ""
03-19 09:10:51.933 27870 27885 I sidebandservice: [INFO   ] [Logger      ] Purge log fired. Processing...
03-19 09:10:51.934 27870 27885 I sidebandservice: [INFO   ] [Logger      ] Purge finished!
03-19 09:10:52.238 27870 27885 I sidebandservice: [2024-03-19 09:10:52] [Error] An unhandled <class 'jnius.jnius.JavaException'> exception occurred: JVM exception occurred: Class not found using the boot class loader; no stack trace available java.lang.NoClassDefFoundError
03-19 09:10:52.238 27870 27885 I sidebandservice: [2024-03-19 09:10:52] [Error] Traceback (most recent call last):
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "/home/markqvist/Information/Source/Sideband/sbapp/.buildozer/android/app/services/sidebandservice.py", line 454, in <module>
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "/home/markqvist/Information/Source/Sideband/sbapp/.buildozer/android/app/services/sidebandservice.py", line 212, in __init__
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "jnius/jnius_export_class.pxi", line 1164, in jnius.jnius.JavaMultipleMethod.__call__
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "jnius/jnius_export_class.pxi", line 878, in jnius.jnius.JavaMethod.__call__
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "jnius/jnius_export_class.pxi", line 957, in jnius.jnius.JavaMethod.call_method
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "jnius/jnius_conversion.pxi", line 233, in jnius.jnius.convert_jobject_to_python
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "/home/markqvist/Information/Source/Sideband/sbapp/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/sideband/arm64-v8a/jnius/reflect.py", line 243, in autoclass
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "jnius/jnius_export_class.pxi", line 878, in jnius.jnius.JavaMethod.__call__
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "jnius/jnius_export_class.pxi", line 965, in jnius.jnius.JavaMethod.call_method
03-19 09:10:52.238 27870 27885 I sidebandservice:   File "jnius/jnius_utils.pxi", line 79, in jnius.jnius.check_exception
03-19 09:10:52.238 27870 27885 I sidebandservice: jnius.jnius.JavaException: JVM exception occurred: Class not found using the boot class loader; no stack trace available java.lang.NoClassDefFoundError
03-19 09:10:52.238 27870 27885 I sidebandservice:
03-19 09:10:52.290  1759  2589 I ActivityManager: Process io.unsigned.sideband:service_sidebandservice (pid 27870) has died: prcp FGS

System Information

  • OS: Android 12
  • Device: Sony Xperia 1 II
  • Sideband 0.7.9

Additional context
Working fine a Galaxy A13 running Android 14

Allow adding more than one interface for TCP

I am trying to use a more reliable node network and I would like to connect to more than one TCP server. The GUI in Sideband (on Android) only allows one TCP connection. If I understand it correctly, it is just a user-interface issue, I can have as many TCP interface configurations as I want.

MMAP API varies between OS types. Non-functional on Windows

Describe the Bug

MMAP in GeoID fails gracefully, allowing function but preventing accessing the telemetry from being displayed as text when selecting a node. (telemetry screen is blank)

To Reproduce

Select map marker on Situation Map

Expected Behavior

Telemetry properly displayed.

Logs & Screenshots

Not provided, solution below.

System Information
Windows 10
Python 3.8
Sideband 0.8.1

Additional context

MMAP has a different API for Windows vs Unix. https://docs.python.org/3/library/mmap.html#mmap.mmap

Solution is to edit geo.py: ~421 to read:

            if RNS.vendor.platformutils.is_windows():
                self.raw = mmap.mmap(fd, fullsize, access=mmap.ACCESS_READ)
            else:
                self.raw = mmap.mmap(fd, fullsize, mmap.MAP_SHARED, mmap.PROT_READ)

Tested and functional on Windows 10.

I cannot, for the life of me, get it to run from the repo. I'll try to make a pull request, but I had to modify my package, and I can't test in-situ.

Installation problems on Fedora

Building wheels for collected packages: kivy
  Building wheel for kivy (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for kivy (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [723 lines of output]
      [INFO   ] [Logger      ] Record log in /home/ooo/.kivy/logs/kivy_23-02-08_5.txt
      [INFO   ] [Kivy        ] v2.1.0
      [INFO   ] [Kivy        ] Installed at "/tmp/pip-install-vj7x_3t8/kivy_517a5bba2bf14100bc7a5e4ffadec816/kivy/__init__.py"
      [INFO   ] [Python      ] v3.11.1 (main, Jan  6 2023, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)]
      [INFO   ] [Python      ] Interpreter at "/usr/bin/python3"
      [INFO   ] [Logger      ] Purge log fired. Processing...
      [INFO   ] [Logger      ] Purge finished!
       <string>:370: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
       <string>:373: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
       <string>:377: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
       warning: kivy/graphics/common.pxi:9:4: 'const_char_ptr' redeclared
       warning: kivy/graphics/common.pxi:23:4: 'size_t' redeclared
      /tmp/pip-install-vj7x_3t8/kivy_517a5bba2bf14100bc7a5e4ffadec816/kivy/weakproxy.c: In function ‘__Pyx_AddTraceback’:
      /tmp/pip-install-vj7x_3t8/kivy_517a5bba2bf14100bc7a5e4ffadec816/kivy/weakproxy.c:438:62: error: invalid use of incomplete typedef ‘PyFrameObject’ {aka ‘struct _frame’}
        438 |   #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
            |                                                              ^~
      /tmp/pip-install-vj7x_3t8/kivy_517a5bba2bf14100bc7a5e4ffadec816/kivy/weakproxy.c:12479:5: note: in expansion of macro ‘__Pyx_PyFrame_SetLineNumber’
      12479 |     __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      /tmp/pip-install-vj7x_3t8/kivy_517a5bba2bf14100bc7a5e4ffadec816/kivy/_event.c: In function ‘__Pyx_PyBytes_Equals’:
      /tmp/pip-install-vj7x_3t8/kivy_517a5bba2bf14100bc7a5e4ffadec816/kivy/_event.c:19716:13: warning: ‘ob_shash’ is deprecated [-Wdeprecated-declarations]

------
[INFO   ] Kivy: v2.1.0
[INFO   ] Kivy: Installed at "/tmp/pip-install-vj7x_3t8/kivy_517a5bba2bf14100bc7a5e4ffadec816/kivy/__init__.py"
[INFO   ] Python: v3.11.1 (main, Jan  6 2023, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)]
[INFO   ] Python: Interpreter at "/usr/bin/python3"
[INFO   ] Logger: Purge log fired. Processing...
[INFO   ] Logger: Purge finished!
[WARNING] stderr: <string>:370: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
[WARNING] stderr: <string>:373: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
[WARNING] stderr: <string>:377: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
[WARNING] stderr: warning: kivy/graphics/common.pxi:9:4: 'const_char_ptr' redeclared 
[WARNING] stderr: warning: kivy/graphics/common.pxi:23:4: 'size_t' redeclared 
[WARNING] stderr: error: command '/usr/bin/gcc' failed with exit code 1
----
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-libstdcxx-backtrace --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-12.2.1-20221121/obj-x86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none --without-cuda-driver --enable-offload-defaulted --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --with-build-config=bootstrap-lto --enable-link-serialization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.1 20221121 (Red Hat 12.2.1-4) (GCC) 

0.7.7 not connecting via BT on Android 12 (Redmi Note 10 pro)

The same issue occurs on multiple RNodes. (Heltec, Lora32 v1 -- and my friend has several T-beams that appear to have the same issue with both a Pixel 5 XL and a 2 XL, although I haven't looked at his logs yet.)

12-18 00:37:12.243 31150 31168 I sidebandservice: [2023-12-18 00:37:12] [Notice] Configuring Reticulum instance...
12-18 00:37:12.243 31150 31168 I sidebandservice: [2023-12-18 00:37:12] [Notice] Not enabling Reticulum Transport
12-18 00:37:12.243 31150 31168 I sidebandservice: [2023-12-18 00:37:12] [Notice] Purging stale messages... /data/user/0/io.unsigned.sideband/files//app_storage/sideband.db
12-18 00:37:14.180 31150 31168 I sidebandservice: [2023-12-18 00:37:14] [Error] Could not open serial port for interface RNodeInterface[RNodeInterface]
12-18 00:37:14.180 31150 31168 I sidebandservice: [2023-12-18 00:37:14] [Error] The contained exception was: Could not connect to any Bluetooth devices
12-18 00:37:14.180 31150 31168 I sidebandservice: [2023-12-18 00:37:14] [Error] Reticulum will attempt to bring up this interface periodically

Pairing works. SB on either Linux or Windows can connect both via BT or USBserial; and on an older PH-1 running Android 10 everything works, so I don't think it's the RNodes.

Via BT serial terminal I can connect, this is the logcat output for the MAC address

12-18 01:12:09.889 25404 25437 D BluetoothRemoteDevices: aclStateChangeCallback: Adapter State: ON Connected: 30:AE:A4:56:15:22
12-18 01:12:09.908 1895 1895 D CompanionDeviceManagerService: onDeviceConnected(address = 30:AE:A4:56:15:22)
12-18 01:12:09.909 1895 1895 I CompanionDeviceManagerService: onDeviceNearby(justAppeared, address = 30:AE:A4:56:15:22)
12-18 01:12:09.920 3674 3674 I AIVS : BluetoothBase:onConnection Find device :30:AE:A4:56:15:22 not exist.
12-18 01:12:09.928 3674 3674 I AIVS : BluetoothBase:onReceive: ACTION_ACL_CONNECTED, device : BluetoothDeviceInfo{ mCurrentOpType: 1 Device Edr ='RNode B47E; 30:AE:A4:56:15:22 vid:0xffff pid:0xffff MandatoryUpgrade:false channelStatus:0bleStatus:0 sppStatus:0 authStage:0 PowerMode:0 mBackUpMode:-1 isDeviceInfoUpdated:false authCmd:false FailedReason:0x0}
12-18 01:12:09.929 25404 25404 I BluetoothPhonePolicy: processDeviceConnected, device=30:AE:A4:56:15:22
12-18 01:12:09.930 25404 25404 D BluetoothDatabase: setConnection: device=30:AE:A4:56:15:22 and isA2dpDevice=false
12-18 01:12:09.930 25404 25404 D BluetoothDatabase: Updating last connected time for device: 30:AE:A4:56:15:22 to 12
12-18 01:12:09.930 25404 25404 D BluetoothDatabase: updateDatabase 30:AE:A4:56:15:22
12-18 01:12:09.939 5282 5282 I GH.WifiBluetoothRcvr: Connection action: android.bluetooth.device.action.ACL_CONNECTED, device 30:AE:A4:56:15:22
12-18 01:12:09.946 5282 6413 I CAR.BTCapsStore: Checking device with address 30:AE:A4:56:15:22
12-18 01:12:09.972 25404 25437 D BluetoothRemoteDevices: Skip name update for 30:AE:A4:56:15:22
12-18 01:12:09.997 5282 6413 I CAR.BTCapsStore: Checking device with address 30:AE:A4:56:15:22
//disconnect
12-18 01:12:19.912 1895 1895 D CompanionDeviceManagerService: TriggerDeviceDisappearedRunnable.run(address = 30:AE:A4:56:15:22)
12-18 01:12:20.939 25404 25437 D BluetoothRemoteDevices: Battery level was never set or is already reset, device=30:AE:A4:56:15:22
12-18 01:12:20.939 25404 25437 D BluetoothRemoteDevices: aclStateChangeCallback: Adapter State: ON Disconnected: 30:AE:A4:56:15:22
12-18 01:12:20.956 1895 1895 D CompanionDeviceManagerService: 30:AE:A4:56:15:22 disconnected w/ reason: (1100) Local request
12-18 01:12:20.956 1895 1895 D CompanionDeviceManagerService: onDeviceDisconnected(address = 30:AE:A4:56:15:22)
12-18 01:12:20.979 25404 25404 I BluetoothMapService: sRemoteDevice :null device:30:AE:A4:56:15:22

All permissions for SB are granted and battery optimizations are off.
Not sure if I missed any step.

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.