What does HackerNews think of servonk?

Servo on Gonk

Language: JavaScript

#8 in Mobile
The sad state behind KaiOS is that the dev docs are basically useless.

There is this guy who maintains bananahackers.net which was a google page for most of the time with all kinds of instructions to get debugging other webapps going, but if you have a device without the GSM code unlock support then it's kind of useless.

The Firefox debugging support from old ESR versions (pre ~42 versions) are super outdated and don't work anymore if the rest of the system is updated, because they heavily rely on the android-tools, so making them work with a snapshot of an 8 years outdated linux distro is also very painful.

I had a nokia 800 tough for a while, and I was having a gaia fork which you could install on it, together with the system apps.

Backups of it still there in case anyone is interested to reboot a fork, I gave up fighting against the DMCA bullshit takedown requests coming from everywhere, because it's just not worth my time anymore.

WhatsApp support was kind of weird because they built a custom web client which somehow worked, but not inside Europe and only globally (e.g. when traveling abroad), so I'd assume there was some kind of geo-regional deal with them being allowed to support KaiOS while maintaining their own web app for it.

Oh, before I forget it: most unlock procedures rely on the Android kernel rooting technique that has a MediaTek chipset, because the SDK app and root backdoor was leaked a while back. So if you plan on developing anything, you should choose a MediaTek chipset which is a little older (pre-2018 ish).

Note that all the FirefoxOS based WebIDE-reliant workflows require a Mozilla Firefox from before the Certificate Authority fuckup in 2020 when they bricked _all_ extensions irreversibly, including the ADB helper extension which you have to fork and modify to get it to run again. This also means that any time your system is having a date time set to post 2020, you're done and nothing works again. I wrote them together on the blog, not gonna link it though because of DMCA bots.

As feasible alternatives there's a bunch of other projects which started using WebKit, Servo and others; but either are dead by now or are unmaintained. I'm gonna link them here just in case you're interested in those.

I did my own fork called RetroKit a while back, with a different focus on Privacy; which was coupled on my Pinephone with an ArchLinuxARM kernel and autostarted to host the webapp/"app screen" of my pentesting tools. This was done using a simple systemd service that autostarts the web service for controls and the UI as a fullscreen GUI window process with Restart=always.

[1] (unmaintained boot2servo) https://github.com/fabricedesre/servonk

[2] (electron based) https://github.com/webianproject/shell

[3] (unmaintained boot2gecko based) https://gitlab.com/nuinalp/open-source/icewolfos

[4] (KaiOS hacking page of Ivan) https://sites.google.com/view/bananahackers/home

[5] (Not maintained on GitHub anymore due to 4/8chan raids, moved my stuff to my own local instance) https://github.com/tholian-network/retrokit

Servo has always been easy to embed. Basically the host needs to provide a GL surface and input events, and gets some callbacks from Servo.

Maybe I should revive the Gonk port[0]...

[0] https://github.com/fabricedesre/servonk/

Servo produced a very fast CSS rules matching engine now used in Firefox (see https://nolanlawson.com/2022/06/22/style-scoping-versus-shad...), and WebRender which underpins Gecko's rendering. That's not nothing.

About embedding Servo, I have some experience around that (https://github.com/fabricedesre/servonk/) and it's been easy to embed: you just need to provide a GL surface and hook up your input events into their event loop. Clearly there were not zero integration points, and a some other examples exist (like https://github.com/paulrouget/servoshell).

Please, KaiOS -- make a high end phone and hit the market that Mozilla never did with FFOS -- wealthy developers who want a platform completely unburdened with apple or google.

I'm not sure what's actually interesting about this partnership, it seems obvious, but one thing I think is a huge problem is that they're mentioning Gecko so much -- they should be trying to move to Servo as fast as possible.

There is already a project called servonk[0] that shows this might be very possible.

[0]: https://github.com/fabricedesre/servonk

About a Servo based browser: I plan to get my in progress-but-really-unusable-so-far Servo based phone UI (https://github.com/fabricedesre/servonk) working on the Librem 5. But honestly it's frustrating to see how little general web compat work is happening in Servo right now, where most of the team effort is directed to VR/AR use cases. I'm not blaming the team, but it's hard to believe in Servo outside of niche use cases right now.