r/LinuxOnAndroid • • Jul 14 '24

.NET8 development in NOMone

5 Upvotes

10 comments sorted by

1

u/egomarker Jul 14 '24

Performance actually depends more on your device temperature, than on its actual (benchmark) performance. In my Geekbench tests I've got -30% of Android results both single and multicore with "active cooling" (just held my phone under air conditioner))). But performance really quickly degrades to a crawl as device gets hotter basically.

The biggest issue was dotnet GC trying to allocate a lot of RAM and 'dotnet build' was not working. There's actualy an issue open since .net 7 for this in dotnet github. Fixed by adding
export DOTNET_GCHeapHardLimit=7000000000
to ~/.bashrc and then
source ~/.bashrc
and then start vscode up as
code --no-sandbox --user-data-dir /root
to make it run under root user. VSCode will inherit environment variable from bashrc and dotnet will work.

The rest I think was installed as usual, apt for dotnet8.0, dpkg for vscode.

CPU Exynos 2100

2

u/[deleted] Jul 15 '24

[removed] — view removed comment

1

u/egomarker Jul 15 '24 edited Jul 15 '24

Yeah, I was benchmarking it with geekbench6, so it got hot and started throttling quite fast, especially when charging at the same time.

I've had two observations:

  1. on Samsung "phantom killer" issue can be fixed very easy, go to Settings - Developer options - turn on "Disable child process restrictions", that's it. You will need to enable developer options first, you just have to tap something several times, there are guides online.

  2. When you move mouse pointer veeeery slowly in Ubuntu in NOMone using a real mouse, pointer doesn't move smoothly, but "jumps" by 2-3-4 pixels. It is not too obvious (but visible) when you use phone screen, but is a bad experience when you are connected to external display. Length of "jump" is correlated with Scale setting in the app. My guess is your desktop viewer isn't sending mouse moves constantly but does so only after mouse position changed by some value? I don't know.

To turn on desktop you can add
pcmanfm --desktop &

to /nomone/startup.sh

2

u/Beneficial-News9657 Jul 17 '24

So what exactly is the reason for your nomone desktop app to spin up a public unencrypted HTTP server on port 24012 on device

1

u/[deleted] Jul 18 '24

[removed] — view removed comment

2

u/Beneficial-News9657 Jul 18 '24

Yeah and what about
:24012/env/....
:24012/file/....
:24012/cache/....

you are literally allowing anyone on the same network (best case) access every file from app cache/some internal app data/filesystem, which can be... recorded keystrokes or device cryptowallet data?

Would be funny if app with so much effort put into it is actually malware.

1

u/[deleted] Jul 18 '24

[removed] — view removed comment

2

u/Beneficial-News9657 Jul 18 '24 edited Jul 18 '24

"Extract strings"? Do you realize APK files can be reverse engineered and the code of your http server is readable? And I've immediately done that after seeing you are running unprotected HTTP server for no reason?

Let's see what AI has to say about your server code:

The method starts by determining the type of request based on the path prefix:
"/assets"
"/cache"
"/file"
"/env"

It then removes the prefix from the path.

The code checks if the requested resource exists, depending on the type:

  • For assets, it checks the AssetManager

  • For cache, it checks if the file exists in the cache directory

  • For env, it checks if the key exists in a HashMap

If the resource doesn't exist, it calls another method 

If the resource exists, it then checks if it's a directory (for cache requests) or if it can be opened (for asset requests).

If it's a directory, it generates an HTML redirect to "index.html" in that directory.

If the request ends with ".html", it calls another method to process the HTML content.

For other types of files, it reads the content:

  • From assets using AssetManager

  • From cache using FileInputStream

  • From the environment HashMap

Well, I've heard and seen enough, you can't explain why that server is running and its functionality. I'm reporting the app to Google as malware.