Based on the remarkable work of the Xamarin team, that created the XobotOS research project, we want to continue this path to its logical conclusion: A up-to-date fork of Android that is running not on Java/Dalvik, but on C#/.Net.
But lets not get ahead of ourselves and start with the beginning ...
In 2012 I learned about the XobotOS project undertaken by Xamarin. The goal of their R&D project was to try converting the Java based Android into C#, which runs on the Microsoft .NET / Mono Framework.
Their project was based on Android 4.0 which had its perfromance issues that were related in part to Androids Java Virtual Machine, the Software that basically runs all the Apps on Android. Converting this system to C#/Mono resulted in much better perfromance, as you can read in their original blog post of May 1st, 2012.
Using the experience and knowledge gained Xamarin used parts of the XobotOS project in order to improve their C#/Mono based Android application stack and published the initial project as open source on GitHub.
Since that time I was thinking about using the XobotOS project as a starting point for creating a fork of Android that runs not on Java/Dalvik, but on C#/Mono. Although due to other projects I lost track of what was going on with XobotOS, until I re-discovered it early 2016. I was astounded when I recognized that more or less no one had picked up the project. - Bastian Noffer
And here we are! LiberateOS strives to reach the goal of a complete and working port of Android's Java code to C# that is able to run on all phones supported by the Android Open Source project.
Thanks to the remarkable work done by the Xamarin team we do not have to start from scratch, but the XobotOS project is far from complete. The project is intended to run sample applications on a desktop environment. Therefore not all the Android code has been converted. Another issue is that the calls to the native C libraries are not fully implemented as well and if they are issues remain.
As a result the projects goals for its first stage are as follows:
- Get a working build environment for XobotOS
- Get all the XobotOS samples running without crashes
- Get Android 4.0 converted and running on Mono (still on Desktop)
- Get the converted Android 4.0 running on a device like the Galaxy Nexus
- Release LiberateOS Alpha 1
This would conclude the initial research and development phase and we would continue with the second stage, which will be focussed on:
- Optimizing the converted Android
- Optimizing the Android conversion toolchain based on the applied optimizations
- Applying the optimized conversion process to newer Android releases and enhanding it as we go
During that stage several Alpha and Beta releases of LiberateOS will be released.
After this stage we should have a working fork of the most current Android release that is running on C#/Mono instead of Java/Dalvik. The third phase would then focus on the community side of things:
- Create a LiberateOS SDK based on MonoDevelop
- Create a Toolchain for converting Android Apps for LiberateOS
- Develop and integrate customizations (for example inspired by 3rd party Android ROMs)
- Release LiberateOS 1.0
The final release of LiberateOS 1.0 will not mark the end of the project. The goal is to keep LiberateOS in par with the Android Open Source project. Which means that we will have API compatability with every new release. That of course does not mean that we will stop optimizing and innovating ourselves.
Behind the scenes
You also want to know who is behind this effort? - Currently this project is operated by BNO Technology Solutions e.K. ( bnotech.com ) which is based in Erkelenz near Cologne, Germany. Our company is a small software vendor owned and operated by its founder Bastian Noffer who is quoted above.
Our goal is, as the project matures and gains influence, to create a foundation that will take over the project while ensuring its independance. This hopefully will ensure that LiberateOS will keep providing a reliable, secure and open source operating system that provides peek performance.
Call to arms
If all this sounds interesting to you, concider signing up on liberateos.org! We will not only need capable Java, C/C++ and C# developers, but also a lot of Alpha and Beta testers!
We want to run this project with a high community involvement, as a result we want to invite you to make use of our Community section.