We are moving! We are currently migrating our community to the new Bosch Connected Industry Online Portal. The community will be available latest in the new year again, until then it will be in read-only mode. Click here for more information.
01-25-2021 07:54 PM
Hi everyone,
my name is Clemens Wodtke, for my Bachelor Thesis in Computer Science at the University of Bremen, Germany I would like to analyze the functionality and the security of the Bosch IoT Remote Manager. The idea is to get an understanding of the software that is used to manage a large amount of devices and thus getting an small insight into the security of a program used for the IoT.
Now my professor received a license for the Bosch IoT Remote Manager 7.1 I can work with in the upcoming months. After setting up the RM I am confronted with the task of setting up a simple test device but have no idea how I could achieve this.
The quick start guide for the Cloud Based Remote Manager provides a "Demo IoT Runtime" I assume can be used to simulate a gateway or end device that can be accessed with the RM.
I am looking for advice on how I could set up or simulate a simple device I can control with the RM software.
Unfortunately I also have no prior knowledge of OSGi or IoT in specific but obviously I'm eager to learn.
So, is my understanding correct that the simplest device to set up would be a linux device with the OSGi framework?
And if that is true what are the steps necessary for this?
I apologize for the "stupid" questions but my research hasn't got me any further yet. Besides that I really hope that is the right place to ask this question, I will also try my luck on StackOverflow.
Thanks for reading and have a great day
01-26-2021 07:21 PM
Hello clemensw,
Answering as a member and not necessarily an expert, I believe the instructions to target/setup a hard device are directly below download section "Download a Demo IoT Runtime", and with the multiple platform options to download, the simplest is whatever IoT device you already have or are most comfortable with,
Or do you not wish to use a hard device?
01-31-2021 06:21 PM - edited 01-31-2021 06:25 PM
Hi pdo,
thank you so much for your reply!
I tried that but get the following errors. When I try to start the "mbsa_start.bat" in "target-image-iot-gateway-windows-x86_64\mbsa\bin" I get the following error:
[mBSA] Starting OSGi framework...
[mBSA] Plugins initialized.
[mBSA] OSGi framework can not be started
[mBSA] OSGi framework restart (1/6)
...
[mBSA] OSGi framework restart (6/6)
[mBSA] OSGi framework restarted 6 times in 700 s. Critical problem.
When I start the "server.bat" in "target-image-iot-gateway-windows-x86_64\osgi\bin\vms\jdk" I get the following error:
#0 ERROR > Error loading certificate ..\domain.crp
java.io.FileNotFoundException: ..\domain.crp (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at com.prosyst.mbs.impl.framework.FrameworkLauncher.loadCertificateFromBase(FrameworkLauncher.java:1090)
at com.prosyst.mbs.impl.framework.FrameworkLauncher.checkCertificate(FrameworkLauncher.java:972)
at com.prosyst.mbs.impl.framework.FrameworkLauncher.launchSystemBundle(FrameworkLauncher.java:282)
at com.prosyst.mbs.impl.framework.FrameworkLauncher.finishLaunch(FrameworkLauncher.java:534)
at com.prosyst.mbs.impl.framework.FrameworkLauncher.launch(FrameworkLauncher.java:527)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.prosyst.mbs.impl.framework.Start.processFrameworkLaunch0(Start.java:280)
at com.prosyst.mbs.impl.framework.Start.processFrameworkLaunch(Start.java:191)
at com.prosyst.mbs.impl.framework.Start.main(Start.java:133)
#0 ERROR > Cannot Start Framework! Certificate file is missing!
Both errors seem to be fixable. First error could maybe be fixed by installing the OSGi Framework but I already did that and have no clue what I need to setup in order for the Demo Runtime to recognize it.
Second error could be fixed by generating a certificate file but I have no clue at all why I would even need a certificate file.
The biggest problem is simply that I dont understand the setup at all, especially the OSGi Runtime. I also have no idea what the demo runtime really is supposed to be. I assume the demo runtime is emulating an OSGi device, right?
The basics of OSGi are somewhat clear to me. My next step will be to try to understand OSGi more and see if I can implement a OSGi runtime with HTTP access because that's probably exactly what I need in order to control a device with the remote manager. At least thats what I assume from the Remote Manager GUI.
I will also try my luck in contacting the Bosch support again but I already tried that last week and got no reply yet.
Im thankful for any advice. Also for advice on where I can ask questions like these. I'll see if I can find any good Java communities that might have an idea of OSGi Programming. It certainly must be possible to configure a simple OSGi device with HTTP access.
edit. Added question and code blocks (Markdown support would've been nice)
02-01-2021 10:16 PM
Sure, Support are the experts, if they respond try to copy status over here,
What is the IoT device you are using? When you registered it, you selected/checked IoT Demo Runtime, correct?
Did you have any problem installing the Connectivity Pack?
Did you see any warnings/prompts about JVM version?
02-15-2021 04:13 PM
What is the IoT device you are using? When you registered it, you selected/checked IoT Demo Runtime, correct?
The device Im using is my laptop with Linux Mint 20/Windows 10. The demo runtime doesn't start on either OS. I also tried to start the demo runtime on my desktop with Windows 10, doesnt work either with the same error message.
But I just found out something interesting. The missing "domain.crp" can be found in the installation folder of the Remote Manager, in my case on my Windows 10 desktop computer. I already copied it to my target device but I still get the error, that the certificate file domain.crp is missing.
Btw, Im talking about the "target-image-core-gateway-linux-x86_64" demo runtime here, Im trying to start via the "mbsa_start.sh" script.
I basically copy pasted the domain.crp into every (sub)folder within the base demo runtime folder but still get the same error. Any idea on how I could solve this?
Well, in the RM 7.1 in the Register OSGi Device there is no checkbox for IoT Demo Runtime so I couldnt select this. But besides that it wouldnt help since I cant even start the Demo Runtime currently.
Did you have any problem installing the Connectivity Pack?
Did you see any warnings/prompts about JVM version?
Once again, the connectivity pack apparently only gets installed once you register a device so I have no info on that on yet.
Also, no warning about the JVM version.
02-15-2021 05:56 PM
I now at least found out the location where the certificate file should be placed.
If I put my domain.crp from the Remote Manager folder into /osgi/lib/framework then I get the following error:
Cannot Start Framework! Certificate file is missing!
Now I tried to look into the Remote Manager Software and realized that there is a Certificate Management Tab where I can generate keypairs and export them. Unfortunately I see no way of even generating a file with a .crp file ending