Jolla Tablet in 2026 - Update path to 4.6.0.15 and fixes for brightness, WiFi, GPS, Bluetooth

Hey all!

tl;dr: i found my Jolla Tablet in a drawer when i needed a POS. Found a safe upgrade path from 4.0ish to 4.6.0.15 and fixed up all the apparent issues on 4.6 with LLM help. Its all in one repo, one folder per fix, each with an install and an uninstall script:

To be honest, most of the work was done by the LLM poking at the tablet over ssh tirelessly, while i was the periodic button monkey and pair of eyes in front of the screen for the ground truth. The advantage being that this was all done on a saturday while i was in the garden. The repo is written for people who are at home on the command line. Nothing in it touches the kernel or the boot image.

So here is what works now:

Display brightness. The one that bugged me since delivery: the lowest setting was still way too bright, because the kernel driver never lets the backlight go below 20%. Now the slider goes from barely visible (0.4%) up to 64%, automatic brightness still works, and at the low end the battery lasts 8.6h with the screen on instead of 7.3h. fixes/brightness

Update to 4.6.0.15. The updater in Settings is a dead end on the tablet. With ssu re and zypper dup on the command line mine went from 4.0.1.48 to 4.6.0.15 in one evening, one stop release at a time, without resizing the root partition. docs/update-to-4.6.0.15.md

Stuck on the logo. The tablet’s own zram units are ordered into a loop and systemd breaks that loop differently on every boot, sometimes by dropping the Android side and with it WiFi and GPS. One override file removes the loop and brings the zram swap back too. fixes/boot

WiFi is on after boot but finds no networks. connman powers up WiFi while Android’s wlan_prov still holds the chip in reset, and it never tries again. A small service waits for wlan_prov and gives WiFi a kick. fixes/wifi

WiFi forgets the passwords. The adapter comes up with one of two MAC addresses and connman files the saved networks under the one it sees. A script mirrors the saved networks to both before connman starts.

GPS is dead after the first sleep. The location provider uses a clock that stops during sleep, so after standby the GPS engine gets a wrong time and restarts every 54 seconds, forever. A tiny preload library hands it the right clock. fixes/gps

Bluetooth pairing. Pairing always ended with “the device did not answer”. The old 3.10 kernel only answers a pairing once a key list was loaded and BlueZ 5 loads none while nothing is paired, so a service now loads an empty list and pairing from Settings just works. fixes/bluetooth

Bluetooth audio and earbud buttons. A2DP plays and a tap on my earbuds pauses the Media app. bluetoothd was simply not allowed to open /dev/uinput.

Bluetooth tethering. The tablet gets internet through my phone over Bluetooth with WiFi switched off, through connman, DNS for apps included. There is a little bt-tether command for it.

What is not fixed: screenshots still come out empty, and GPS has no assistance data, so every start is a cold start. The list is in docs/open-issues.md.

Two warnings before you try any of it:

Never use “factory reset” in the recovery menu. It reflashes Sailfish OS 1.1.9 and the whole update path starts again.

A machine wrote these fixes on my detailed orders and i did only loosely (read, not really) read the code. What i did was use the tablet and judge every result by eye and ear and push back on obvious issues. Every fix was installed, removed and installed again from scratch. But that was on one tablet, mine, and a few first versions were wrong on the way, so expect faults nobody has hit yet. That is what the uninstall scripts are for. The repo is honest about all of that and grades itself as LLMGD-3, origin O0: docs/LLMGD.md

If you still have one of these tablets and try this, i would love to hear what happens on yours. One tablet is a small sample :smiley:

Cheers,
mosen / moWerk

The old threads

And now the wall of links, so that people who land in the old threads find their way here. “Likely the same fault” means the symptoms match what was measured on my tablet. It does not mean the fix was tried on the reporter’s tablet.

Likely the same fault, addressed in the repo

Related, but a different fault

Could not reproduce on 4.6.0.15

Not looked at

Nothing in the repo addresses these. Listed so nobody has to search twice.

Useful

15 Likes

Oh no, I got excited thinking there was a fix for the issues I reported, but they’re listed under ‘Not looked at’ :slight_smile: But good to know the brightness now works as it should (it annoyed me so much that I’d memory holed it entirely) and that it now boots properly. I might give it a try tomorrow, although I think part of the reason why I stopped using the tablet is because the battery had started swelling.

Speaking of startup bugs, a very similar boot process bug exists on (all?) other Sailfish devices as well, for example on the Xperia 10 II. However, there it at least moves past the Jolla logo and shows the pin code entry screen, but whether it will actually boot after entering the code is always a mystery. Maybe the fix is similar?

2 Likes

Aww, those where just not falling to my feet when i set up the tablet as POS for my shop. Mine is doing great still. I had it stored with full charge and it still showed 100% after years when i went to off_mode charge screen, lol.
I guess the gauge was not really calibrated tho.
So, the 7,3hours is what the measurements of one hour screentime prospected after some charge cycles of calibration. i guess i am lucky.
The Jolla Tablet will accompany an even older 2010 s10-3t Lenovo netbook/tablet the LLM sped up with a custom slim debian that only brings up wifi and touch and a bowser. The ESR 78 (?) on the tablet is sufficient for my inhouse CRM for some time. i only needed to adapt some recent CSS tricks back to older versions.

So, lets see if i run into your issues during use or find an evening again to point the wobbly LLM sword to the issues i skipped.

This is all a nice training to get back into SFOS now that i finally ordered in Batch #3 :stuck_out_tongue:

2 Likes

On the boot cycle, a check to identify that class of issue (shortly after boot):
dmesg | grep -i "ordering cycle"

“Found ordering cycle” or “Job … deleted to break ordering cycle” is the pointer.

1 Like

This cracked me up :rofl:
Pretty accurate though.

2 Likes

Seems to work, except for my battery, which is indeed dead. I wanted to post this from the tablet, but the browser is too old to even log in.

2 Likes

Would it be possible to create some sort of up-to-date community port for the tablet? This old android 4 support is not worth it in 2026 but having an up-to-date browser and full sailfish app support would be very helpful.

2 Likes

Wow…it seems I need to take out mine from the drawer. Once, I replaced the battery. It wasn’t the easiest thing but possible and a replacement battery was available but one needs to interchange the wiring of the battery connector. Well, I could give it a try to upgrade to 4.6.0.15. Thank you @mosen!

2 Likes

I was thinking that too shortly. But imho its too much effort for the gain. Personally i have what i needed. a tablet with more than 6 hours screentime and a browser that shows my dogfood company backend website.
For actual daily usage, 10 times more work would have to be put in than has been done here.

The realistic expectation could be that Jolla reads this and bakes a special 4.6-tablet-only release with the fixes. But even that is highly unlikely.

1 Like

Search and you’ll find.

As in there’s nothing to find so the answer is no?

So I ordered a new battery, swapped the wires, and now the tablet is up and running again.

I’ve noticed the screen seems to flicker at max brightness when you turn it on or off. I wonder if this is related to your brightness fix. Do you notice the same thing?

Edit: Hmm, looks like there’s something wrong with the new battery, too. It was completely empty upon receiving it, I let it charge overnight, but now it suddenly dropped to 0% after going below 75%. Hopefully I can manage to fix it.

2 Likes

Yes! Now that you are mentioning it, i see the same when observing. I was only testing the lower range end for flicker, since that’s what the change was supposed to alter.
Will get back to this over the WE.

Re: battery, mine needed more than one recharge cycle to correct the gauge. On first drain test on the charge i found in the drawer, it claimed 100% for like an hour, then dropped to 60ish over the next hour and then went off.

2 Likes

Great, glad it’s not just me! And right now, upon rebooting the tablet (the battery is magically back at 77%), WiFi was broken again, but I could disable and re-enable it, then I got a list of available networks, and had to enter the password for my WiFi again to make it work.

Edit: yeah, seems the WiFi fix just doesn’t work, because I keep running into broken WiFi on boot again. And now the tablet also keeps suddenly turning itself off at 89% battery, I wonder if the new battery is also defective.

2 Likes

The brightness glitch is diagnosed and fixed in the repo:
After mce fade out reached 0, the backlight stayed on at the darkest level for another 100 ms or so while the panel shut down, and the panel showed a few frames of the half-faded picture. Now the helper switches the backlight off at mce 0. So all of that happens in the dark.

WiFi: we had only proven the fix on two boots, that was way too thin. I then ran 15 reboots in a row and found a third case: on about 1 boot in 5 the WiFi chip comes up with a random address, new each time. connman files your saved networks under whatever address it sees at its start, so on those boots it doesn’t know any of them and asks for the password. The fix now reads the address right before connman starts and copies your networks there. 24 reboots in a row connected after that.

To update: git pull in your clone, then as root run sh install.sh in fixes/brightness and in fixes/wifi, and reboot.

If WiFi still fails on a boot, please post these two before toggling anything, as root:
cat /run/wifi-mirror.status /run/wifi-boot-kick.status
They show which address the chip came up with and what the fix did. No MAC addresses in there, so safe to post.

Sending good thoughts to your battery, ahhh

2 Likes