Category Archives: Mobile

Tablets, phones, cameras, and other things one can carry.

The nightly is dark and full of terrors

Today, I am happy to announce the start of CyanogenMod 13 nightlies for Xperia Tablet Z (pollux) and Xperia Tablet Z Wifi (pollux_windy). This means CM13 is considered stable enough for daily use on these devices, so the terrors should be rather limited. Anyone interested can find the official downloads at the usual location. Active development on the fusion3 platform is ongoing, I will attempt to shift focus to the phones now.

Lollipop Fusion Complete

As of today, all Sony Xperia devices based on the Fusion3 board (Xperia Z, ZL, ZR, Tablet Z, Tablet Z WiFi) are getting official CyanogenMod 12.1! When I first started looking at these devices in December 2014, the CM12 source code would not even compile, let alone boot, and even the recovery was broken.

Well, here we are, hundreds of commits and quite a lot of annoyances later: F2FS is now supported, a plethora of kernel changes and the new BFQ scheduler made the user experience better than ever, the latest proprietary blobs are integrated, SELinux is properly set up, and a ton of reorganization and cleanup has been done – for all of Sony’s MSM8960 devices and beyond.

Still many things to do, but for today, I’m lighting a cigar! If you have one of these devices, check out GET.CM and give it a whirl. There is a truly fantastic team of developers at Cyanogen and CyanogenMod, and without them, none of us could enjoy mobile computing quite like we do.

Carpe Noctem #2

After a long, arduous development road, I’ve enabled CyanogenMod nightly builds for the Sony Xperia Z. This brings nightlies directly from CM11 to CM12.1, which hopefully all users will enjoy. Thanks to everyone at my XDA thread, especially Andy van der Steen, who lent me his phone for development. Without that, I would never have come this far.

Xperience F2FS

Starting with early March 2015, CyanogenMod for the whole original line of Sony’s Xperia Z devices support F2FS, a filesystem optimized for flash memory. Tests have shown it to outperform the default ext2/3/4 that we used previously, so definitely a nice thing to have.

However, if you want to benefit from F2FS, you need to manually convert your phone. Be aware that this needs some understanding of how to use ADB and the conversion process will DELETE all you user data/settings!

First, you need to have CyanogenMod 12 or higher installed on your phone, and be using the official recovery. Also, you need ADB installed and ready to use on your computer.

This is how you convert to F2FS:
– Connect your phone via USB and boot into recovery mode
– Open a command line and type “adb shell”
– Type “mkfs.f2fs /dev/block/platform/msm_sdcc.1/by-name/cache”
– Type “mkfs.f2fs /dev/block/platform/msm_sdcc.1/by-name/userdata”
– Reboot the device

CyanogenMod Fusion

In January, I’ve been added as a device maintainer for Sony’s fusion3 platform on CyanogenMod. That platform includes the original Xperia Z line of devices (Z, ZL, ZR, Tablet Z, Tablet Z Wifi). Most of my work went into the platform and the 2 tablets, since I actually own one of these. By now, I greenlighted the tablets for CM12, and they are now official CyanogenMod nightlies. , they are my main target of development. The phones will trail a bit, since I need to rely on others to test fixes and features for me, mainly through a thread on XDA.

Smart phone RIL

After tinkering with cameras and solar power systems, it was time to play around a bit with Android – in the form of CyanogenMod. After setting up a build environment for my i9100 (a Galaxy S2 in marketing terms), I decided to help figure out a problem with open-sourcifying one of the libraries for it, namely libril (part of the radio interface layer).

This device has a history of freaking out OSS people, and libril was no different, as can be seen in the code review for the library. While the same code would work perfectly fine on similar devices with similar radios, it kept crashing on the i9100 upon dialing out. After some debugging, I found out that the UUS (user-to-user signaling) handling was causing the crash – a MEMMAP SIGSEV error!

Namely, it was memset(&uusInfo, 0, sizeof(RIL_UUS_Info)); that caused the kernel to freak. Intermediate solution? Remove the UUS information, as it is not really mandatory. The question remains: why can’t the phone allocate the (little) memory required for this struct? Might have something to do with heap/stack allocation…


Today, the updated CHDK code for IXUS 970 has been uploaded to the project’s official source code repository. This new version fixes a problem with the detection of the play mode, and most prominently adds support for firmware revision F, so now all dumped revisions are covered. The firmware addon can be downloaded at the CHDK autobuild server.