I am running CyanogenMod 12.1 on my Samsung S4 i9500. It has been working very nicely for a while, albeit with a few quirks. One of the problems is that the phones 1080p video recording is not of very high quality and very pixelated. From what I understand this is because the CyanogenMod team can not legally distribute the proprietary video encoding libraries that come with the stock Samsung ROM.
Luckily, GearCM for the i9500 does come with the proprietary video encoding libraries.
To get back to stock quality video recording on your device, you'll need to download GearCM for the i9500 and extract the following file and folder:
/system/lib/libExynosOMX_Core.so
/system/lib/omx
Copy the file and folder to a location on the phone that you have write access to, such as the SD card. By default (for good reason) the /system
mount point is read only. It will need to be remounted as read and write. You can do so using the terminal emulator that can be enabled in the developer settings on the phone. You can also use adb but that is beyond the scope of this article.
In the terminal emulator on the phone enter the following:
su
mount -o remount,rw /system
Now, backup the existing libraries on the phone, incase anything goes wrong:
mv /system/lib/libExynosOMX_Core.so /system/lib/libExynosOMX_Core.so.bak
mv /system/lib/omx /system/lib/omx.bak
Finally, copy libExynosOMX_Core.so
and omx
to the correct locations, changing /path/to/
to the location on the phone where you copied the files.
cp /path/to/libExynosOMX_Core.so /system/lib/
cp -R /path/to/omx /system/lib/
The video recorded by the phone should now be as good as it was on when using the stock ROM.
Anything that will stretch more longevity out of this device is good in my books. CyanogenMod helps a lot in this regard. Now that video recording is working nicely again, I'm hoping to hang to this device for quite a while to come.