Re create B2G based on Android

As far as I understand the discussions until here, there is one questions in the room.

  • Do we keep alive gonk?
  • If so, do we need to fork gecko for b2gOS?

Gonk is the abstraction of HAL where gecko “paints” / renders its surface defined in markup on it.

In my eyes, we should keep that idea as it is.
This make the b2gOS worth it.
I dont want to have an OS where i can install that apps I can install in android.
We should follow that lightweight stack b2gOS is designed for.

What are the next steps in this discussion? I think we need some kind of decision or masterplan…

As far as i see for now we are more in a DoOcracy model.
So basically some people i think 1 or 2 for now are trying to validate if using fennec as uniq SystemUI en top of AOSP is a valid solution (kind of b2gdroid without the Android interface)

On the other and there is lots of people which believes that continuing the B2GOS project is the way to go be so far no one with the proper level of expertise believe this path is sustainable, which means, AFAIK in the people which believe we should continue on B2GOS we don’t have the expertise to maintain this OS, consequently nothing has been done to relaunch this project so far.

So to conclude if you are interested in any way you can just DO any share your outcomes.

On my side, i’m just frustrated as i don’t have the expertise to go one way or another :frowning:
So for now calling for contribution time to time as much as i can !

Matth

Hey Guys,
This might be a somehow silly question but would it be possible for Mozilla to add some module interfaces to servo, so that we can add external “B2G-API-modules” to Servo that provide the functions we need to run B2G. Other projects like Thunderbird, SeaMonkey, Palemoon or Sailfish OS may also profit from this interface as they would not have to provide their own fork of Gecko/Servo but just the API-modules they need to extend Gecko/Servo (we neither).
Does anybody have enough experience with Gecko and Servo to decide whether it’s possible or not. Sure this solution would be difficult to apply for us but this would only be work that had to be done once, not like a fork of Gecko. And with the support of the mentioned projects we could have a chance to convince Mozilla.
It would be too sad if “Boot to Gecko” or “Boot to Servo” (as it could be called later) would fail.
Sebastian

1 Like

Boot2Servo was already an existing project. The truth is that using only Servo is years behind on being able to daily use of rendering the web.

1 Like

In my opinion, the easiest way to achieve the B2G vision on Android (the web as a platform) is to let browsers run websites as an app. I am still using my Firefox OS phone, but I am using my Android, similarly:

  • I use all major services (Twitter, Facebook, Gmail, local news, etc.) in my browser;
  • I pin these to the home screen.

What I am really missing is a browser on Android that runs sites as an app. The problem here is: Firefox, the native Android browser, and Chrome all show the url bar. A second problem: they do not allow separate configs (so my Facebook cookies will be availble on all sites with a facebook button, Google analytics sites will all see I am logged into Gmail, etc.). A third problem: my “apps” are not available when I ‘scroll’ through my ‘apps’., etc.

On Ubuntu, running websites as an app, in a different “sandbox” is perfectly supported by Chromium (and Chrome) by the following command (to make a Twitter app):

chromium-browser --app=https://twitter.com/ --user-data-dir=.config/chromium-twitter

This is almost all we really need to make the “web as a platform” possible. I can make a .desktop file that configures my app further, for instance by assigning a proper icon. This app has its own space in the status bar, it runs in its own environment (so my login in my ‘gmail app’ is not shared with other websites). In fact, we have a web standard for such config files too, with the manifest.json file that was also used by FirefoxOS.

I never understood why Firefox (on Android, on Ubuntu, on Windows) does not support this (Firefox did it for a while in a clunky way). Why Firefox? This is the easiest way to use any platform as a “web as a platform” system. Maybe I am missing something?

1 Like

Hello, I can’t speak for Mozilla, but i can tell that now this is one of the target we want to achieve with the B2GOs Community driven.
So don’t hesistate to foloow up and participate to the project so we canmake quick progress on it.
Matth

Hi All,

For those who are interested you can find the progress of the hacking here:

https://discourse.mozilla-community.org/t/running-fennec-geckoview-on-aosp-without-systemui/11599?u=m.ducorps

Don’t hesitate to join and try !

Matth

1 Like

This fascinates me, so one more humble contribution to this thread. Volker said:

I agree with @astheroth in theory. But I’d prefer to stay practical. If there would be commercial interest in such a project, B2G and H5OS wouldn’t have died.

I think B2G failed for several reasons but two reasons are IMHO:

  • Too strict security model: B2G made it really hard for others to put a Twitter app (or Facebook app, or Dutch NOS news app, or Brazilian Globo.com app, or whatever app) in the market place, because the security model needs the manifest.json on the same domain. With this model, we needed all major sites to embrace FirefoxOS, or we would not have their app in the Market Place. Of course, I can pin web sites to my home screen, but people want apps.

  • No Whatsapp! (include your own favorite app instead of Whatsapp) Let’s face it: Some commercials for FirefoxOS even included the phrase “with WhatsApp clone” (OpenWapp or LoquiIm) and although the Openwapp and LoquiIm people did really awesome work(!), people want the original WhatsApp.

So, let’s no longer try to run our own OS, but run a standard Android with HTML apps and a Market Place that allows a more flexible app model (and an occasional 3rd party app like WhatsApp).

To me these are actually the reason I would go for, and trust B2G… I don’t want my data to be own by Facebook, Microsoft, Google or any big (or small) companies that make their business out of it (except if I decide to).
Maybe Mozilla was not that clear about this. Or maybe it was not their goal.

This is my personal view but I want B2G or what it will become as free, open, secured and independent as possible. The good thing seems that even if some apps (webapps) doesn’t comply to it, it seems easier to modify if the system just take care of what it needs to and not more, and if the permission system is fully transparent, trustworthy and modifiable per (web)app. If you find an app uses your gps when it’s not supposed to, you should be able to just remove this kind of permission. When the app is not compiled it seams a lot easier to check what’s going on.

I am also quite against the idea of a market place, which is some kind of other way to “close” things. At least if it doesn’t let you live outside of it, or allow you to modify what you get there (let’s say a kind of github could be a “good” “market place”).

Also if for example I don’t want the Notes app to use EverNote (because it owns my data, whatever it does with it) or even have related code to it in the app, I can remove all the code I don’t like in the js, quite easily.

I think people should really own their phone (at least the software, for starters) and have an hand on what’s going on “inside” it.

This is what we are trying to do now, work on an Android basis and get a full Web UI, in term of market place the Web will be the Market place ! As soon as we are running standard we don’t need a dedicated market place ! That’s the beauty of this project !

I liked the Firefox Martket Place: An (alternative) market place can bring the full Web UI to ordinary Android phones, but also to (jailbreaked) iPhones, to Windows phones, to Windows Desktop, to Ubuntu, etc. It’s the vendor lock-in and control of Android and iPhone that is damaging; not the platforms per se. Also, I believe people would like their phone to have some (web) app for installing apps.

If we develop an approach that turns a web site into an (Android) app, and replace the Google play store by that approach, then - voila- there you have the new B2G-like Android for the Web. From there on, supporting the full Web UI for (jailbreaked) iPones and desktop machines seems not that far fetched.

I know, this would give up the idea of developing our own full OS for mobile phones. That was such a brave thing to try by Mozilla! This time, let’s break the vendor lock-in of Android and iOS by hacking the full Web UI into their platforms; starting with Android.

Oh one more thing, mikmikmik wants a B2G that is:

Me too! but frankly, that’s too ambitious and it failed with Firefox OS. Let’s start with free and open, and leave the secured and independent for a future generation to solve. I really like to idea of the market place as a “a kind of github”!

I think we are shifting the discussion away from the subject of this post, and I found it has already started to being discussed on the manifesto proposal page.
By “secured and independent” I think I meant trying to avoid, by design, the possibility that the user (and its data) being used as a “product”, so giving back the power to the user. I hope we can achieve this while using Android as a base.

I heard Blackberry is running their devices using a modified version of Android focused on business asset security (emails, messaging…). Perhaps a motivation for B2G for Android could be targeting those who want a computing experience based on the world’s greatest shared resource, the Web.

Just a quick note to put it on the radar. Google has unveiled Fucshia, which looks like the next generation of Android + ChromeOS. Might be interesting to see, at some point, whether we can target that system.

Talking about the web server, I looked up on one of interesting Android custom ROMs: Maru OS (github.com/maruos/maruos).
In fact, Maru OS is a combination between Debian and Android. Android is used for the mobile interface, while Debian is used when a phone is connected to a TV/Desktop (similar to Ubuntu Convergence and Microsoft Windows 10 Continuum).
I suggest this because it may be difficult to implement localhost on Android (as good as Apache/Nginx), and some other problems of developing it.
I think this may make advantage for B2G OS in some ways including focusing Debian on Web Server while Android for Gecko/Client, better hardware support (thanks to Debian for PC and Android for Mobile drivers), efficient updates and development (One develops the Gecko in Android, while another one hacks with Debian side for web apps hosting). I think that the problem could be resource hungry, Maru OS is in development (and may not be compatible with CyanogenMod), as well as telephony service problem.

Hello , I was really fascinated when I was really shocked when I knew that mozilla has stopped working on B2G … I really want this project to go on …
Anyway … It took me while to get a good view of what is going on in this discourse .
I want to suggest something . it may help in someway …
if you look at this page https://source.android.com/devices/ you will that the very important parts are really need are kernel+HAL interface so why don’t why use them and we start writing our own replacement for android system service interface or messing up with gonk to make it suitable for our needs and from this point we can make our fork of gonk and take it away of mozilla and keep developing it specially for resurrection of B2G . Throughout this way we can assure that mozilla won’t make changes which conflict with our work and then write an application layer or use gaia …
the real worries is how to hook the graphics HAL with the gonk … I’ve a little suggestion … we can throwaway android graphics HAL and vendor’s one too and write our own universal graphics HAL which communicates directly with the graphics driver in kernel but this will be very painful to do and at least every developer will have to write a graphics HAL from scratch for his device under certain rules which guarantee that gonk will be able to communicate with that hal …

I am afraid we don’t have enough people with the time/motivation/skill-set to go with this at the moment, that is why B2G is continuing a lower “own” codebase to maintain

Small update: @vmx is currently working on getting the telephony stack work

Google just announced Android Things, which is a version of Android for connected devices that only run one Android app https://developer.android.com/things/sdk/index.html

Just a thought.