Zefies kernel

Screen Capture showing the kernel version, and who compiled it

Zefie's Custom Kernel offers many features not available in the stock Samsung Kernel. Each version adds (or in rare cases, removes) features to increase the performance of the Samsung Moment system.

All custom kernels can be found here.

Android 1.5 KernelsEdit

Zefie's Custom Kernels for Android 1.5 use the ZE## naming scheme.


  • Netfilters Enabled (Still no wifi-tether out of the box, but its a start!)
  • Automatic Persistent Root
  • Working Recovery Mode
  • Updated System Drivers from CL14 Kernel
  • Tweaked CPU Frequency Scaling
  • Busybox included, and symlinks created
  • Other small optimizations that increase responsiveness
  • Other minor tweaks
  • Switched from Anticipatory I/O Scheduler to CFQ I/O Scheduler
  • My infamous remount script in /sbin
  • mkfs.yaffs2 in /sbin
  • Custom Logo featuring Zefie from .hack Manga


  • Fixed persistant root, I think. Alternative approach.
  • As requested, reverted back to default Samsung boot logo
  • Small patch to update source code
  • Switched from NWFPE math emulation to FastFPE math emulation [1]
  • Added NTFS Read-only Support
  • Set Default NLS to UTF-8


  • Enabled ARMv6K Extensions
  • Switched back to VFP Compiler, since we have VFP hardware
  • Disabled Optimize for Size, thus giving more Platform Optimizations (-02 instead of -0s)
  • Reduced Kernel Log Buffer size to free up some RAM (256kB -> 64kB)
  • Switched from CFQ I/O Scheduler to Deadline I/O Scheduler
  • Added Network File Systems (NFS already enabled, but I enabled CIFS/Samba)
  • Added ISO9660 and UDF support


  • Recompiled Busybox v1.14.1, enabling a crapton of new utils, and cpu specific tuning
  • Busybox is now setuid root
  • Hacked kernel compile system for cpu specific tuning[2]


  • Upgraded Busybox to v1.15.3
  • Recompiled Busybox to remove internal SUID/GUID detection[3]
  • Removed CIFS support from kernel due to no mounting utility currently able to handle it
  • Removed ISO9660 and UDF support to conserve space, may re-add it if requested.
  • Replaced "Factory Test" mode with recovery mode, so those still trying to use Factory Test will now just get recovery mode
  • Create a few (3) loop devices for ease of loopback mounting on boot (loop0, loop1, loop2)
  • Small tweaks to Battery Monitor[4]
  • Removed reboot from busybox, so it no longer conflicts with /system/bin/reboot (now can just use reboot without full path)
  • Created /data backup script (run datatool from /system) (Not fool proof, has basic sanity checks but will fail if /sdcard does not have enough free space)


  • Recompiled DHD (Wifi) Module[5]
  • Enabled NAT in Netfilters as required by wifi-tether[6]
  • Compiled new sound driver from Spica source code[7]
  • We can now display the Zefie Kernel Version under About Phone
  • Disabled ability to update Touchscreen Firmware to prevent accidental disabling of the touchscreen
  • Reduced Horizontal screen resolution[8] from 800 to 320[9]
  • Enabled all Bluetooth protocols available in kernel (will this allow file transfer? someone confirm on the forum)


  • Enabled remaining Netfilters, including conntrack state
  • Included fdump from Spica init.rd[10]
  • Added battery debug info from TBone


  • Added SquashFS-LZMA Support
  • Utilizing unused flash space on /dev/bml8 (6.25mB "temp"), moved extra binary utils to there in SquashFS[11]
  • Recompiled Busybox to support new path (/sbin/busybox -> /extra/busybox)
  • Removed /sbin/adbd_recovery and changed recovery to /sbin/adbd recovery (no consequence, smaller zImage)
  • ffdisk and ferase now available again, in /extra (If you trash your flash chip, don't blame me ...)
  • Added fat.format from Spica /sbin to /extra
  • Added symlink to /system/bin/reboot at /bin/reboot in recovery mode, so you can reboot without full path
  • Disabled Disable branch prediction
  • Enabled FUSE Support
  • Replaced NTFS Read Only support with ntfs-3g (Use /extra/ntfs-3g to mount)
  • More battery tweaks[12]
  • Enabled HCI SDIO driver under Bluetooth (apparently I missed this before)
  • Switched IO Scheduler back to Anticipatory[13]
  • Recompiled all non-proprietary modules (btgpio, s3c_camera, s3c_cmm, dpram, s3c_g2d_driver, s3c_g3d, s3c_jpeg, s3c_mfc, s3c_pp, s3c_rotator, vibrator)
  • Updated YAFFS2 Module to latest CVS Version
  • Switched back to conservative CPUFreq scaling, in the interest of battery life.
  • Removed unused Xtables Netfilter support
  • Enabled Universal TUN/TAP device driver support
  • Created symlink: /lib/modules -> /lib/modules/2.6.27 for busybox rmmod
  • Updated kernel to (version reports 2.6.27 to retain compatibility with proprietary modules)
  • Applied a few mainline patches (not BFS, won't work)[14]
  • Renamed /extra/fat.format -> /extra/stl.format
  • Symlink in recovery.rc for /extra/stl.format > /sbin/stl.format (Proper formating of device)
  • Updated datatool to format /data instead of rm


  • Fixed broken /extra/datatool


  • Added /extra/sfdisk
  • Enabled 'mac' netfilter


  • Restored adbd_recovery to initramfs (allows us to adb shell when /system is corrupted)


  • New awesome logo! SDXDevelopers Logo added!
  • Fixed permissions on /extra/sfdisk
  • Added sqlite3, parted, nano, dropbear, dropbearkey to /extra
  • Automatically start SSH shell on port 2200 (user=root, passwd=momentdev) with persistent keys. Screen must be awake or else wifi sleeps.[15]
  • Dropbear can be started and stopped using /extra/dropbear-ctl [start|stop] .. Someone can make a widget :)[16]


  • Removed /extra/customize.tar (leftover from testing, sorry)
  • Edited dropbear-ctl to not remount as much (hopefully will fix cases of boot hang in ZE09)


  • Disabled dropbear autostart on boot


  • Updated to use CL14 code released by Samsung on February 3rd, 2010 (Kernel and Modules)
  • All existing features from ZE09.2
  • Busybox updated to v1.16.0


  • Replaced stl.format with fformat from SCH-i899 (upgraded version of same util)
  • Added clear-dalvik-cache command to /extra/datatool, for ease of migrating roms from your datatool backup. (usage: datatool clear-dalvik-cache before a backup or after a restore)
  • Added maxdamage2122's Custom Recovery
  • Compiled and included multipdp kernel module (not used, crashes system? Wonder why its in the src then)
  • BFS support patched into kernel, but disabled (Seems to crash due to video driver. If you want to test and work on this source code, backup /data because it will be corrupted too.)


  • Cleaned up recovery.rc
  • Recompiled Busybox to disable ls colors by default (now recovery shell won't be nasty on Windows, linux users can use ls --color to reproduce the effect)
  • Re-enabled Anticipatory Scheduler (somehow 10.1 got set to "No-op", or basically no scheduler)
  • Enabled CompCache (32MB) (Android Mode Only)
  • Clean /data/tombstones on boot (Android Mode Only)
  • New version of max's custom recovery. Confirmations before dangerous operations, as well as fixed wipe/factory reset.
  • Cleaned up some of Sammy's failing init.rc stuff
  • Added deodexerant and deodexerant-2.0 (-2.0 version for Android 2.0 odex)
  • Removed symlink factorytest.rc -> recovery.rc
  • Changed factorytest.rc to special recovery that notifies users that are trying to access recovery incorrectly. However, this mode enables QPST/Modem mode for ease of using QPST, CDMA Workshop, and/or QDXM. [17]


  • Implemented Numus' Battery Code Fix for CL14
  • Rebuilt Busybox and Kernel with new custom toolchain, fully optimized for the S3C6410 CPU, with uClibc
  • Disabled CompCache (still enabled in kernel but not activated on boot, use /extra/ramzswap-on to manually activate)
  • Many new features to datatool: wipe, mount, unmount, timestamped backups. Will accept a file parameter to restore from, or automatically choose latest. If you request to restore, and only an old non-timestamped file is found, it will restore it, then delete it, and re-create it as a timestamped backup. We also now automatically clean any tombstones before making a backup.
  • New version of recovery, does not support choosing datatool backup date yet, maxdamage will implement when he gets time next weekend and will be in small 10.4 patch


  • App2SD variant of kernel available, along with the normal non-App2SD release
  • datatool modified for new App2SD variant
  • Reverted to Samsung Recovery due to maxdamage2122's request that his recovery be removed


  • Datatool can now remove App2SD partition (datatool partition 0)
  • ReiserFS and Minix modules included (requires working /extra)
  • Datatool now remounts /sdcard when done partitioning
  • Removed SDX-Developers logo
  • Custom recovery based on LeshaK's, to replace MaxDamage's
  • Now using UnionFS to merge both SD Card and OneNAND /data partitions, size reported to df and android may be inaccurate due to UnionFS size reporting, but size should be internal+sd

Android 2.x KernelsEdit

Zefie's Custom Kernels for Android 2.x will use the ZF## naming scheme.

Zefie does not plan to stop when Samsung upgrades the Moment to Android 2.x. As soon as Samsung releases the new kernel sources, reflecting changes for Android 2.x, development will continue on the new platform.


  • New naming scheme to easily tell which kernel is which.


  1. FPU Emulator, from kernel config: It is very simple, and approximately 3-6 times faster than NWFPE
  2. Tuning info: "armVFP-linux-gcc -mcpu=arm1176jzf-s -mfpu=vfp -mtune=arm1176jzf-s"
  3. Allows us to run Busybox commands such as mv and cp with root permissions
  5. Necessary to enable Netfilters NAT
  7. Moment-specific code still from Moment sources, but most of the sound system is from Spica sources. No noticeable difference unfortunately
  8. Touchscreen/Mouse resolution setting, not actual display resolution
  9. This appears to improve touchscreen response, may just be placebo
  10. Allows us to dump bml partitions properly.
  11. Using gzip, until we NEED LZMA, due to speed
  13. According to Samsung[1] this is required for RFS. It worked before with our other settings, but better safe than sorry.
  14. Patches can be found here[2]
  15. (Android mode only, no network in recovery)
  16. Once a widget is made, I will disable autostart on boot
  17. Proper method for recovery is VolDown+Call+Power, and I am disabling the redirect from Call+Trackpad+Power, because you need to learn the proper method :P
Community content is available under CC-BY-SA unless otherwise noted.