Gaël Duval

@gael_duval

Leaving Apple & Google: a global eelo development status

Last year, I decided to leave Apple & Google: I want to free myself from the smartphone duopole, I want to regain control over my data privacy, I want to protect my freedom.

At first, I thought I would just fork Android, add a better design, remove any Google stuff, select a few privacy-compliant web services and add them to the system.

A little more than 6 months later, I realize that we’re building something really, really bigger than I had expected. This is made possible by the tremendous support I’m getting from many people around the world, and by a growing community of eelo contributors…

[Note: this is a long read, if you don’t have time you can watch the full demo video at the end of this article]

We’re in low budget mode, but things are going quite fast. And the main project’s bottleneck is presentely… myself! I have asked many volunteers to hold on because I don’t have enough time to manage too many projects at the same time (read “If I had an eelo co-founder…. ♫”).

Anyway, we plan to release the first eelo operating system and some web-services as a beta “MVP” (Minimal Viable Product) by the end of August.

Time has come to unveil eelo’s development status!

Building a team and a community

Since early February, just after the end of the eelo crowdfunding campaign on Kickstarter, I spent a lot of time to communicate with people: eelo is receiving many incoming requests from people who are offering some time as volunteers. I need to figure out their real motivation, the amount of time they can spend. For some of them, we discuss a compensation.

This is a long term process, and I’m very happy with the team that we have started to build: people from many places in the world, who are very smart and very talented.

Today, this makes aproximately 15 people full time equivalent on various projets, from infrastructure to design. I’m also discussing with some others about side projects, more long term, that won’t be integrated into eelo first releases. Like an AI-based assistant, and the eelo token feature.

Building a compilation farm

A smartphone operating system is a lot (really a lot) of source-code. When you want to build it for testing on a real device, it can take up to 1.5 hour to compile on a fast machine (Core i7 / 32GB RAM / SSD drives…). And this is the case for each supported device . At the moment, we are targetting 6 different test devices, and we plan to support dozens ones.

This means that we need:

  • several compilation machines
  • an automated setup to manage source code and builds

We have decided to go with GitLab (self-hosted) + docker containers. This brings us a lot of flexibility to manage source code, and to deploy new compilation servers easily.

We started to rent a first dedicated server, and I bought two refurbished IBM x3650 M3 that we have set up for compilation. We can now add as many servers as we need already. And we have a full compilation chain for the continuous integration of eelo, with automated daily builds and soon custom builds on demand.

An eelo operating system, in progress!

We started to work on the user interface of eelo from the begining. Therefore, we now have a great launcher, which makes icon grouping and application deletion intuitive.

The launcher also provides notification badges on icons. For now, these badges are green, because I think notifications should not be stressful.

Read below for a more comprehensive demonstration of the current eelo user interface.

The little details

eelo is about user’s data privacy and freedom, but my only certitude is that without a good user interface, it cannot be successful.

So we need to go into little details, and I’m very pleased that we were able to implement these ones:

  • our calendar icon shows the current date
  • our clock icon displays the current time! look at the clock needles moving below:

Applications…

The choice for default application has lead to many internal and public discussions!

I agreed to lower the number of preinstalled application at a “reasonable minimum”. This will leave users to install their prefered apps.

One discussion we had was about the default messaging app. I received many suggestions for messaging apps. It’s been a difficult choice.

Options were:

  • have no default messaging app: this means that people who don’t know will instantly install WhatsApp messenger or Facebook messenger, which is not really something we want to encourage!
  • install some great messaging apps such as Wire or DeltaChat (which is definately worth a try)… At the moment, they lack the a large number of users, which means you are likely to find nobody using it in your contacts.
  • put Telegram: I personally like Telegram and I think that it’s one of the most secure messaging application around (the attitude of certain countries with Telegram seems to prove that). And it has many users. But this makes Signal supporters unhappy.
  • put Signal: it’s not as good as Telegram in term of user experience, and has less users. But it’s probably extremely secure and is fully open source. And it can handle SMS / text messages.

Finally, I took a simple decision: have Telegram preinstalled as a messaging app, and Signal preinstalled as default SMS app (which includes instant messaging capabilities).

The choice for other default applications is important too, and I was worried about the default email application in AOSP, because it’s totally integrated with Google services.

Therefore, we decided to use K9-mail and work on its user interface. It still needs some improvement, but it’s already better than ever. K9-mail also has support for email encryption with PGP.

Regarding the default web-browser, we chose the default web browser from LineageOS: it’s fast and slick, but we had to modify its settings to have it provide a different list of default search engines. By default, it’s now using our new eelo meta-search engine, but users can choose to configure Qwant or DuckDuckGo.

We’re also still evaluating default applications for calendar, notes, …

… and widgets

The launcher left view can host some widgets. The first one we have been able to implement is the “most used apps”, and a search field that is using eelo’s meta search engine online (watch the video below). And we are working on a weather widget.

A huge application repository

One of the big challenge of eelo is to offer a unique place where users can download and install applications, easily and without having to use a user account.

We’re starting with free Android applications, and F-droid (open source) applications.

We have built a big database of theses applications, that is now updating continuously 24/7.

Lots of Android apps

Now, we still have to build an Android application that can connect to our database and manage installed application on the user’s eelo operating system + a public repository.

Operating system services

One of the most important aspect of eelo OS, is to be totally free from Google software that is leaking our personal data.

Therefore, we have removed Google Play Services, which are used by many applications and provide some services such as geolocation using wifi networks or GSM networks.

We have replaced Google Play Services with the open source microG component. microG offers a nice alternative to Google Play services (it’s not addressing all features yet though).

An important feature is also to offer instant synchronization and backup capabilities. Therefore, we’re implementing an “eelo synchronizer” service, that users can chose to use to have their pictures, videos, device settings, backuped to the cloud. For now, they can use a public OwnCloud/NextCloud instance, or a self-hosted one. eelo will also provide an online drive.

We also already have an “Over The Air” (OTA) mechanism in place for upgrading the whole system.

Web services

Take the most secure and data privacy-compliant smartphone: you can still ruin your privacy if you are using email or search or drive from online services that are using your data for their business.

Therefore, we had to work on alternatives for those services.

We already have an eelo email service implementation, that eelo backers can soon access, as well as a drive service implementation. It still lacks some consistency on the user interface, but it’s in progress.

The challenge is going to make it scalable, we’re discussing with some hosting partners for that.

eelo search, webmail, and drive

One of the web service I’d like to offer with eelo is a good maps application. OpenStreetMap is working great, but for now, I don’t find a good enough mobile (and open source) application that can display maps from OpenStreetMaps.

We could hack some apps, but this is a big project I don’t want to start for now. (I’m open to ideas/suggestions!)

A demo of the current status…

Icon grouping, ungrouping, application deletion, launch some apps, do a search… watch the video!

Another feature I wanted to show is media synchronization, but it was a little too complicated as a movie, so I took some pics:

First, take some pictures of a lovely Raspberry-pi:

Then, wait a little, and you can see that the pictures have been synchronized to the eelo drive:

And if you have another device connected to the same eelo drive account, you see the same pictures appear:

Deletion is supported, edition as well. Multimedia contents, including images, videos, sounds, are synced, and we’re working on backuping the device settings.

What remains to do before eelo’s first public beta “MVP”?

There is a lot to do yet, but here is a a list of main things to be implemented:

  • integrate the synchronization service: it must run as a system daemon
  • add an eelo indentity mechanism so that users don’t have to authenticate for each eelo service (mail, drive…). We already have set up a keycloack server for that, work in progress
  • customize the first-time usage wizard, especially to include the eelo identity part, and to ask users about their choices (sync, do not sync, …) and have the same in general settings
  • tweak some default settings in the ROM
  • user interface: improve some default apps look&feel, improve settings look & feel
  • complete the choice of default apps and integrate them
  • maybe integrate XPrivacy
  • complete the application repository and developer installer application
  • test! debug! test! debug! test! debug!….

Roadmap for next months

I’m often asked “when is it going to be released?”

Our target has not changed: we plan to release the first eelo “MVP” as a beta software by the end of August. Then, we will open the eelo source code repository. This should probably bring more contributors aboard.

eelo Version 1.0 can be expected by the end of 2018 or early 2019.

Last but not least: “e Foundation”

I said that I wanted core eelo assets to be hosted into a non-profit organization. This is now a reality: “e Foundation” is now a legal entity (and is starting collecting donation and contributions from backers through eelo’s website.

More than ever, eelo needs everyone’s support: talk about the project to friends, to the medias, contribute!

And we’re now looking for partners: smarthpone makers who would like to distribute eelo, telcos, hosting corporations…

Let’s free us from the net giant duopole, our data is OUR data!

— Gaël (follow me on Twitter / on Mastodon)

PS

More by Gaël Duval

Topics of interest

More Related Stories