Chromium 88 data leaking in kiosk mode - raspberry-pi

I am using Chromium 88 in kiosk mode connected cellular. Chromium is running the site as http://localhost with occasional data push from server. Even when a static page is on there is a constant data exchange around 470 bytes per second which is 1MB per hour. Since I am on a cellular with $0.10 per MB this adds up. Is there any way to completely stop chromium in sending any data when idle? Below are the command line inputs I've already tried but I am still not able to stop the data leak. Any thoughts on how to completely stop chromium sending data will be good. I cannot completely work offline mode, because I need to send some data from server once a day to keep it refreshed.
Any pointer will be helpul.
/usr/bin/chromium-browser
--disable-sync
--data-reduction-proxy-lo-fi
--enable-data-reduction-proxy-savings-promo
--disable-background-networking
--disable-component-update
--dns-prefetch-disable
--disable-plugins
--no-pings
--disable-background-mode
--disable-translate
--disable-session-crashed-bubble
--noerrdialogs
--disable-infobars
--kiosk http://localhost

I found the answer myself. Documenting answer for others. chromium-browser contains google services which starts automatically and connect to account.google.com, *.googleapis.com, safebrowsing.googleapis.com and many others which slowly leaks data around 1 mb per hour. This is not a big deal if connected to WiFi but is an issue when connected to cellular with data only plan. So I removed chromium-browser and added ungoogled-chromium https://github.com/Eloston/ungoogled-chromium which strips out all google services. They have the latest chromium version and it works exactly the same without google services.
I personally think if anyone using raspberry pi chromium without google services should install this.

Related

Solution to remote power cycle embedded devices

I am looking for a solution to remotely power cycle embedded devices that are connected via a USB hub to a server. I have a software solution (usbreset.c) that was posted in several responses in stack overflow - rebooting the usb port. This works if the device is still alive, can be detected by the server, but, it just fails to communicate with the server. I have had to use it a few times. however, sometimes the device could hang or freeze on a gui page and there is no serial communication. This requires physically power cycling the device using it's on-off switch. Someone suggested raspberry-pi solution. But as per that solution, I would need one raspberry-pi per device. It's as if using a raspberry-pi to serve as a relay. This is expensive and cannot scale. Could relays work in this situation i.e. the power pins of each device connect to a relay. So, one relay per device. There are remote IP power cycle solutions. so via a web interface it is possible to check which device is offline and power cycle just that one. Such solutions are common in IT. However, is such a solution viable to remote power cycle embedded devices connected at the other end?

Holographic Remoting breaks in play mode with XRInputSubsystem errors

I use Unity (2019.4 LTS) for developing an application for Microsoft HoloLens 2 as the target platform. To do so, I added MRTK (Version v2.5) to my project to use some of the libraries. I regularly get errors in the console that look like this:
[XRInputSubsystem] A device disconnection with the id 2000000037 has been reported but no device with that id was connected.
It seems to happen somewhat randomly. At first, I thought it was disconnecting or something, but then I realized it was just pausing Unity, and I can click 'play' several times to bypass them. This workaround is annoying and slows me down though. Does anyone have an idea for solving this issue?
I solved this error only by increasing the bandwidth of my Internet network. This error happened when my Internet bandwidth was 9MB per second. Now, I use a stronger bandwidth of about 70MB per second and I do not see the same error at all.

Asynchronicity between behavior and flows on Mitmproxy

I am trying to reverse engineer the API of an IoT device using mitmproxy. My setup is an iphone, computer running on MacOS 10.14, and an IoT device (watering pump) that can only access the wireless network after being plugged into the computer via USB connection, i.e. a not genuinely WiFi device. My phone is configured to point to the computer, which is running mitmproxy on a standard configuration.
When I send instructions from the app controlling the device on my phone to the device itself, presumably these instructions are sent to the computer, to the device cloud server, and then to the device. With these assumptions, one would think that they would see the flow of POST requests in mitmproxy before observing the results of those instructions. That is, if you send an instruction to turn on the pump, you'd think you'd see POST request containing that instruction show up in the mitmproxy flows before you see the pump turn on.
However that is not the case here. What happens is that, when I send instructions from the app, I observe the expected behavior from the IoT device, and then the flow of requests appear on the mitmproxy console seemingly at random. There seems to be no determinate relationship between the instructions I send and the requests that appear; they show up 5 seconds later, 5 minutes later, or 30 minutes later. Is this an intentional security feature? To somehow jam MITMproxies so that hackers cannot easily isolate the knowledge of which packet is performing which instruction? Or is it just something that I am doing wrong? Does anyone have any ideas as to what could be happening hear and potential solutions for making the flow of requests appear in real time? Ty

Kurento one2one sample runs smoothly on local but lags heavily on server

I installed Kurento 6.0 one2one video call sample on my local machine and tested in local network. Chat worked smoothly. After that I put it on my dedicated server and tried it over internet. It starts to lag and freeze 10 or 15 seconds after the start of call. The server has 16mbits download speed and 10 mbits upload speed. It seems enough for one conference.
And what's your connection speed? Please check also the CPU load, as if you've chosen a very small instance, or using a computer vision filter, you might find that it's eating up all your resources.
EDIT 1
It looks like the link quality of your client is not very good, and the lagging is not in the server, but in the client.

Keep StreamSocketListener running in background on Windows Phone 8

I want to run a server on Windows Phone 8. It is important that the server keeps running even if the user opens another app or the screen lock turns on. Relying on an internet connection is not an option. It should work in a local network.
UseCase: The server is needed for a multiplayer game. The idea is that one player starts a local server. After that, all players (including the player who starts the local server) can connect to this server using a webbrowser. The server delivers html and responds to ajax calls.
It seems that PeriodicTask and ResourceIntensiveTask do not fit my needs. Is that correct? How can I run an app in the background that is always listening for incoming tcp connections?
I don't know a clean way. But if you're happy with a hack: You could use the Geolocator. This blog gives a step by step guidance: How to create application which executes in the background on Windows Phone 8?
As most of the hacks, this brings some problems and questions (probably more than I mention here):
If the user turns off the GPS, your server won't be reachable anymore.
I don't know how strict Microsoft is with what you can publish on their store.
No way to do this on Windows Phone.